entwicklercamp 2015 entwicklung für inotes: best practices ... · entwicklung für inotes: best...
TRANSCRIPT
Entwicklung für iNotes: Best Practices und typische AnforderungenMatthias Schneider
Leading Technical Sales Professional - IBM Social Business and Collaboration SolutionsIBM Deutschland GmbH
EntwicklerCamp 2015
© 2015 IBM Corporation
Wer bin ich?
© 2015 IBM Corporation
Agenda
Verse Wie anpassbar ist iNotes? Grundlagen iNotes umbauen – Wo fange ich an Anforderungsbeispiele:
─ “Ich brauch einen zusätzlichen Knopf in den Vorgaben!”
─ “Neue Mails sollen automatisch vorbefüllt werden!”
─ “Ich will das in Rot und mit meinem Logo!”
Best Practices
© 2015 IBM Corporation
Verse vs. iNotes?
5 © 2015 IBM Corporation
Verse
Domino als Dreh- und Angelpunkt – Der Zugriff erfolgt über den Client Ihrer Wahl!
© 2015 IBM Corporation
Verse ist perspektivisch die nächste Evolutionsstufe für Web-basierte PIM-Funktionen der IBM.
Verse bietet keine “klassische” Ordner-basierte Inbox sondern führt dynamisch, auf Basis von IBM Content Analytics und Anwender-Vorgaben, Informationen aus Mail und weiteren Kommunikationskanälen zusammen.
Verse kann als “Cockpit” für iNotes dienen – ähnlich wie der ActivityStream in Kombination mit Connections.
Verse und iNotes schließen sich nicht aus! Nicht alle Anwendungsfälle passen auf den Verse-Filteransatz. Nicht jeder iNotes-Anwender ist “Wissensarbeiter”.
Bis zur Verfügbarkeit von Schnittstellen / APIs für Verse wird es noch etwas dauern.
iNotes und Verse nutzen Domino, dessen Abwärtskompatibilität legendär ist.
Deshalb: iNotes bleibt – gerade auch mit dem Plugin für Anwendungen - weiter eine wichtige Client-Option.
Verse vs. iNotes?
© 2015 IBM Corporation
Alles was zum Browser geht, wird über Designelemente gesteuert – eigentlich wie bei Notes...
Aber... Es gibt grundlegende Unterschiede zu “normalen” Domino Webanwendungen oder XPages─ Die Verarbeitung erfolgt bei iNotes hybrid, d.h. nicht nur über das Template gesteuert
─ Nutzung einer eingeschränkten Liste an Domino Web-Kommandos und einigen speziellen URL-Argumenten
─ Verwendung von Tags zur Steuerung der Felder, die über ein POST von der jeweiligen Seite übertragen werden dürfen
─ Verwendung spezieller Server-seitiger Formeln
─ Weitgehender Verzicht auf Agenten (Wie wir sehen werden, kann ich die aber verwenden.)
Wie anpassbar ist iNotes?
© 2015 IBM Corporation
Wie anpassbar ist iNotes?
Unser Ziel vom letztjährigen Workshop: Verstehen, was ich anfassen muss, um das gewünschte Verhalten zu erzielen
Unsere Ziele diesmal: ─ Wie fange ich an?
─ Welche Fallstricke muss ich kennen, damit ich Aufwände sauber planen kann?
─ Wie schinde ich mit simplen Änderungen schnell Eindruck?
─ Wo sage ich besser nein?
© 2015 IBM Corporation
Unser Beispiel aus dem letzten Jahr
© 2015 IBM Corporation
Unser Beispiel aus dem letzten Jahr
© 2015 IBM Corporation
Was machen wir diesmal?
Umgang mit “Classic” FormsKomplexitätmittel
© 2015 IBM Corporation
Was machen wir diesmal?
Vorbefüllungen von Mails – plus Eingriff in StandardfunktionenKomplexitätmittel
© 2015 IBM Corporation
Was machen wir diesmal?
Anpassungen von Logo und Farben Komplexitätgering
© 2015 IBM Corporation
mail\JUser.nsf
iNotes\Forms9.nsf
Domino ServeriNotes\Forms9_x.nsf
Browser
Referenzen
mail9.ntfForms9_x.ntf
Design-Container in iNotes
15 © 2015 IBM Corporation
Muss ein Extension Forms-Template verwenden, das der Dienst bereitstellt Anpassungen sind limitiert
Extension Forms Files in IBM SmartCloud Notes
© 2015 IBM Corporation
Generelle Anpassungswege für iNotes
Policies Aktivieren/Abschalten von Funktionsbereichen Anpassen spezieller Masken (Custom_*), die genau dafür gedacht sind
─ Anpassen von Einträgen in der Menüleiste
─ Anpassen von Spalten in Ansichten
─ Hinzufügen zentraler Header-Bereiche
─ Anpassen des Banner-Logos
─ Hinzufügen von Fonts zum Richtext-Editor
Bearbeiten von Skins und Stylesheets Anpassen weiterer Masken
© 2015 IBM Corporation
iNotes Mail Policies Shared Mail Policies Shared Des ktop Policies Other Policies
• User UI Mode• Functional Areas• Functional Area at Login• Maximum Attachment Size• Mail Threads• Remote Image Display• Browser Cache Management• Logout Scrubbing• Allowing Attachments• Instant Messaging Features• Default Spell Check Dictionary• iNotes ActiveX• Enabling Feeds• Widget Enablement• Lotus Quickr Integration• Calendar Subscriptions• Offline Settings• Refresh Inbox automatically• Enable Unread Count• Auto Update Unread Count• Enable Scroll Hints• Disable Warning on opening
Attachments• Filter out Images from Emails• Proxy Servlet Name/URL Pairs• Show Preferences• Allow Archiving on the Server• Allow local Archiving● Initial Sidebar Display State ● iNotes Display Language● Extensions Forms File● Docs / Connections integration
• Mail Basics• Follow up• Attention Indicators• Message Recall• Calendar Basics• Calendar Display• Notices• Scheduling• Automatic Processing• Rooms and Resources• Mail and Calendar• Disclaimer Text• Disclaimer Position
• Right Double-click to close• Mark Documents read on Preview• Save sent Mail• Sign sent Mail• Encrypt sent Mail• Mail Notification• Internet Mail Format• Prefix each Line with a Char• Wrap Lines at a certain Length• Widgets
Security Password ExpirationPassword QualityCertificate ExpirationNotes ID VaultiNotes Proxies
ArchiveServer-based
ArchivingProhibit ArchivingProhibit private
Archiving Criteria
© 2015 IBM Corporation
Aktivieren/Abschalten von Funktionsbereichen
Policies INI Parameter: iNotes_WA_Areas
─ Achtung: Falls die Policy abweichend gesetzt ist, greift diese!
─ Format: iNotes_WA_Areas = ABCDEF– A = Willkommen– B = Mail– C = Kalender– D = ToDo– E = Kontakte– F = Notebook
─ Beispiel:– iNotes_WA_Areas = 010010 deaktiviert alle Funktionen außer Mail + Kontakte
19 © 2015 IBM Corporation
Einige Einstellungen sind verfügbar in den SCN Administration Account Settings
System Settings – IBM SmartCloud Notes Manche Einstellungen für Profildokumente sind geschützt
Policies in der SmartCloud Notes
© 2015 IBM Corporation
Aktivieren/Abschalten von Funktionsbereichen
URL-Argumente─ &PresetFields
– Beispiel: http://nd85.pscbln.de.ibm.com/mail/dadminis.nsf/iNotes/Calendar/?OpenDocument&PresetFields=h_SkinTypeOverride;h_Blank,s_CalView;2,s_CalDate;20090301
http://nd85.pscbln.de.ibm.com/mail/dadminis.nsf/iNotes/Mail/?OpenDocument&PresetFields=h_SkinTypeOverride;h_Blank,s_ViewLabel;Sent,s_ViewName;%28$Sent%29
– Dokumentation:iNotes Web Access Deployment Guide (Google ist dein Freund...)
─ &Layout– Beispiel:
http://nd85.pscbln.de.ibm.com/mail/dadminis.nsf/iNotes/Contacts/?OpenDocument&layout=BN!H*MS!H*OF!H*LO!H*SW!H*LP!C
– Dokumentation:http://www-10.lotus.com/ldd/dominowiki.nsf/dx/iNotes_Programmatic_URL_Usage
© 2015 IBM Corporation
Seit 8.5 alles in Ajax?
Der “Full Mode” verwendet nun die mit 8.0.1 eingeführte “Lite”-Architektur Tabbed UI über Widgets Ausnahmen bestätigen die Regel: Einige Masken nutzen immer noch die
“Classic”-Architektur● “Full Mode”-Kalender, Kontakte, ToDo, Notebook-Einträge● “Lite Mode”-Kalender und Kontakt-Einträge● Homepage● Vorgaben
Masken etc., die die “Lite”-Architektur neu verwenden, haben ein “_Lite” im Namen
© 2015 IBM Corporation
“Echtes” Anpassen: Wie fange ich an?
Domino installieren – am besten 9.0.1 mit aktuellem Fixpack Werkzeugkasten installieren
─ Domino Designer
─ ggf. Tools wie TeamStudio oder Ytria
─ Firefox mit Firebug, Safari, IE
Forms9_x.nsf anlegen─ Änderungen hier lassen das Standard-Design unangetastet
Doku (Wiki) lesen Beispiele ausprobieren
─ Diese und die letzten EntwicklerCamp-Sessions...
Loslegen!
© 2015 IBM Corporation
Firefox─ Firebug
IE─ Developer Toolbar (in IE9 und später: F9) oder Visual Studio
Safari─ Develop-Menü
Chrome─ Developer Tools
“Obfuscation-Tabelle”─ ObfuscationList.txt in Shared Resources\Files
Debugging
© 2015 IBM Corporation
Log Messages für die iNotes Konsole● Beispiel: AAA.EVI.sr(level, “”,"message”);
– Level:● 0 = error● 1 = warning● 2 = info● 3 = detail
Logging
© 2015 IBM Corporation
Aufbau einer Webseite in iNotes
Alle Masken/Teilmasken verwenden Passthru-HTML Spezielle Tags werden durch den Server interpretiert:
─ Skin einfügen
─ Skin-Komponenten einfügen
─ Teilmasken einfügen
─ Berechnete Blöcke (@formulas)
─ Ermittlung persistenter und berechneter Items
“Full Mode” verwendet nun die die “Lite Mode”-Architektur─ Kombination von Skin-Komponenten (geladen durch den Server) und Widgets (Client)
─ mehr AJAX (“Lazy Loading” etc.)
© 2015 IBM Corporation
...oder vereinfacht dargestellt:
Backend-Code kümmert sich um die Domino-Welt
Frontend-Code baut die HTML-Seitenstruktur
Stylesheets machen alles bunt
Der Rest - gefühlte 80% von iNotes – sind weitgehend kryptisches JavaScript
© 2015 IBM Corporation
Der zentrale Einstieg: Teilmaske Custom_JS_Lite in der Forms9_x.nsf
Teilmaske mit jeder Menge (verständlichem) JavaScript: Hier lassen sich viele typische Anpassungen zentral einpflegen
Statische externe Script-Datei, die in alle wesentlichen Seiten eingebunden ist
Die Scriptseite wird im Server abgelegt – Änderungen erfordern mindestens ein “tell http inotes flushforms”
Hier können Sie auch eigene Funktionen, die von verschiedenen Seiten aus aufrufbar sein sollen, ablegen
– Hinweis: Code, der Anwender- oder Session-spezifischen Formeln enthält, gehört in die l_SessionInfo / f_SessionInfo / s_SessionInfo
© 2015 IBM Corporation
Custom_Scene_Actions_Lite Hinzufügen, Entfernen oder Anpassen von Aktionen
Custom_Scene_PostLoad_Lite Ausführung nach Initialisierung jedes Widgets
Custom_Scene_PreSubmit_Lite Ausführung, bevor eine Aktion an den Server zur Ausführung übergeben wird
API_TimeZones_Lite Hinzufügen von Zeitzonen
API_SetPortalMailViewColumns_Lite Festlegen der in Mail-Ansichten anzuzeigenden Spalten
API_GetWhoAndAltWhoColNamesForView_Lite
Festlegen der anzuzeigenden Spalte bei aktivierten alternativen Namen
Callbacks and Functions
Der zentrale Einstieg: Teilmaske Custom_JS_Lite in der Forms9_x.nsf
© 2015 IBM Corporation
API_GetSelectedDocs_Lite Rückgabe eines String-Arrays mit den UNIDs ausgewählter Dokumente
API_IsView_Lite “Ja” für Ansichten
API_GetMailfilePath_Lite Rückgabe des URL-Pfades mit “.nsf”
Helpers
addActionsLite Hinzufügen neuer Menüs oder Untermenüs zur Aktionsleiste
removeActionsLite Entfernen von Menüs oder Untermenüs
repositionActionsLite Positionsänderungen
checkActionIDs Anzeige der IDs von Menü-Elementen – sehr entwicklerfreundlich!
checkActionPositions Anzeige von Positionsnummern
Mehr in der Custom_ActionsHelper Teilmaske:_te
Sinnvolle Funktionen in Custom_JS_Lite
© 2015 IBM Corporation
Hilfreich für den Entwickler: Aufruf der folgenden Funktionen führt zur Anzeige von ID oder Position der Menü-Einträge
checkActionIDs( s_MenuID ) - Neue Architektur─ Anzeige der Menü-ID bei MouseOver
checkActionPositions(s_TopBranchId) - “Classic”-Masken─ Anzeige der Positionsnummer neben dem Menü-Eintrag
“Bau mir da mal bitte einen Knopf ein”
© 2015 IBM Corporation
Custom_Welcome Anpassbarkeit der Panel-Auswahl
Custom_JS_Edit Hinzufügen neuer Fonts zum Richtext-Editor
Custom_Masthead Hinzufügen eines zentralen Header-Bereiches
Custom_CSS Hinzufügen von CSS-Styles
Custom_Banner_Lite Banner anpassen
Custom_Page_Dictionary 1 NotesVariablen für die Nutzung in Custom_CSS
Custom_xxx_Dictionary 2 Einbinden neuer Notes-Felder und -Variablen
Custom_LazyLoad_Subforms 2 Hinzufügen von Code zur LazyLoad-Tabelle
Custom_Logout 2 Ausführbarer Code bei Logout
Custom_About 2
Custom_SessionInfo 3
Classic_Custom_SessionInfo 4
Anzeige der Version der Forms-Datei sowie weiterer Daten in der iNotes Konsole
Hinzufügen von Informationen zum SessionInfo-Objekt
1 Neu in 8.5.1 3 Neu in 8.5.32 Neu in 8.5.2 4 Neu in 9
Zusätzliche Masken / Teilmasken zum Anpassen
© 2015 IBM Corporation
8.5.2
Keine Design-Vererbung der Extension Forms-DatenbankAblage von Agenten in der Extensions Forms-Datenbank möglich
Neue Teilmasken: Custom_xxx_DictionaryCustom_LazyLoad_SubformsCustom_LogoutCustom_About
8.5.3
Aktualisieren von Menü-Einträgen möglichPolicy für Extensions Forms-DatenbankCustom_SessionInfoiNotes_WA_RunQOAgentsForNewLiteForm
9.0
Classic_Custom_SessionInfoCustom_Masthead verbirgt automatisch Standard-HeaderStandard-Header anpassbar über Custom_Scene_Actions_Lite
Änderungen in 8.5.x und 9.0
© 2015 IBM Corporation
Simples Überschreiben von Strings (statt Anpassen von Standard-Files):Einfach dwa_xx.properties zu den Extension Forms Ressourcen hinzufügen und den zu ersetzenden String dort aufnehmen
Simples Überschreiben von Teilmasken!!Gleichnamige Teilmasken in der Extension Forms werden anstelle der Standard-Quellen verwendet
Anpassung des Verhaltens bei Namens-LookupsHinzufügen einer Teilmaske “Template_NameLookupCard” (für On-Premises) oder “Template_NameLookupCard_SaaS” (für SmartCloud Notes Web). Hier kommt der HTML-Code rein, der das Format beschreibt. Beispiele finden sich in “Template_NameLookupCard” und “Template_NameLookupCard_SaaS” in der Forms9.nsf
Änderungen in 9.0.1
34 © 2015 IBM Corporation
Umbenennen von Forms85_x.nsf in Forms9_x.nsf Ausführung eines Agenten, der das Feld $FormsTemplateFile im Datenbank-
Icon ändert:– "iNotes/Forms9.nsf"
(http://www-10.lotus.com/ldd/nd85forum.nsf/5f27803bba85d8e285256bf10054620d/ed3a 7d9fde2383a28525754a006d6c39?OpenDocument )
Von 8.5 nach 9...
35 © 2015 IBM Corporation
Gut zu wissen...
http://www-01.ibm.com/support/docview.wss?uid=swg21659371
© 2015 IBM Corporation
Anpassungen des “Ultra-light Mode”
Styles:─ m_StyleSheet_xxx
─ iphone.css und standard.css – für 8.5 und älter
Keine Verwendung von Skins Layout und Code werden in m_xxx Masken und Teilmasken kombiniert Grafiken liegen in mxxx Dateien in Shared Resources\Files
© 2015 IBM Corporation
Neue Ressourcen referenzieren
Hinzufügen zur Extension Forms Datenbank─ Ablegen unter Shared Resources\Files
─ src="/iNotes/Forms9_x.nsf/LotusSoftware.png"
─ background-image:url(@{s_EFF}/act-hyper-hover-images.gif?OpenFileResource&MX);
Ablage auf dem Domino Server─ <Domino data directory>\domino\html
─ src="/file.html"
Ablage auf einem externen Server─ src=”http://www.server.com/file.gif'
© 2015 IBM Corporation
Noch mehr Anpassbarkeit...
Gradient Fills (=Vektorgrafiken bei modernen Browsern)─ Spezielle Parameter in dwa.properties
Konsolidierte Icons─ Eine Bilddatei enthält verschiedene Icons
─ Icons werden über die x, y-Koordinaten im Style ausgewählt
─ Dateien: basicicons.gif, commonactionicons.gif, commonactionicons.gif,mailoutlineicons.gif, viewactionicons.gif
© 2015 IBM Corporation
iNotes Code/Forms
Geladen durch InsertNotesSubForm Browser-spezifisch ;-((
─ xxxCode – IE
─ xxxCode_Gecko – Mozilla
─ xxxCode_Safari – Safari
f_xx – genutzt durch “Full Mode” l_xx – genutzt durch “Lite” und “Full Mode” INI-Einstellungen iNotes_WA_Debug_SubForms=1 – Namen der
Teilmasken werden auf der Serverkonsole beim Laden angezeigt
© 2015 IBM Corporation
<InsertNotesSubForm Name=SubFormName>─ Der Name kann ein berechneter Wert sein
– <InsertNotesSubForm Name=@{...}>
– Bedingungen über @If sind möglich– optional="yes" für optionale Teilmasken
<NotesDictionary>…</NotesDictionary>─ Block, der NotesVar und NotesField Tags enthalten kann
Spezielle Tags auf Serverseite
© 2015 IBM Corporation
<NotesField Name=ItemName>─ Definition von persistenten Feldern
– Type=Text|TextList|RichText|Mime|Number|NumberList| Time|TimeList
– InitialValue=
• Prüfung, falls das Item im Dokument nicht existiert– Value=
• Prüfung wenn die Seite generiert und gespeichert wird
─ Beispiel:
– <NotesField Name=Subject>
<NotesVar Name=ItemName>─ Definition eines nur zur Anzeige berechneten Items
─ Gleiche Element-Attribute wie bei einem Notes-Feld
Alle diese Tags unterstützen ein includeif={@formula} Attribut für Bedingungen
Spezielle Tags auf Serverseite
© 2015 IBM Corporation
...bringen Sie das neue NotesField in der Teilmaske xxxDictionary unter ...bauen Sie das HTML-Gegenstück in den Teilmasken xxxRead bzw. xxxEdit
ein ...mit Zuweisung des Feldwertes zum entsprechenden HTML-Item ...für Bearbeiten-Masken: Fügen Sie eventuell Initialisierungs- und Validierungs-
Routinen hinzu
Details hierzu im Wiki: ─ Manipulating Data in iNotes Lite forms
Manipulating Data in Domino Web Access (developerWorks)
Um ein neues Feld hinzuzufügen...
© 2015 IBM Corporation
QueryOpen/QuerySave Agenten
Lotus iNotes verwendet diese in der Kernanwendung nicht Für die Nutzung ist ein Eintrag in der NOTES.INI erforderlich:
iNotes_WA_QueryAgents=1 Zwei Notes Variablen steuern das Einbetten von Agenten:
─ $$QueryOpenAgent
─ $$QuerySaveAgent
─ Beispiel:
– <NotesVar NAME={$$QuerySaveAgent} INITIALVALUE={“YourAgent”}>
Ab 8.5.2 können Agenten auch in der Extension Forms-DB liegen
© 2015 IBM Corporation
Jetzt wird es konkret!
Was brauchen Sie für die folgenden Übungen?─ Domino 9.x
─ Designer 9.x
─ Browser
─ Übungsunterlagen + Code Snippets
© 2015 IBM Corporation
“Ich will die Vorgaben erweitern!”
Komplexitätmittel
© 2015 IBM Corporation
“Ich will die Vorgaben erweitern!”
Fallstricke: “Classic” Design – kein Ajax, keine Custom_JS_Lite Browser-spezifische Masken, d.h. im Extremfall wird alles 3 Mal eingebaut
(IE, Gecko, Safari) Vor 9.0.1 zwingend Anpassung des Standard-Designs (Forms9.nsf) nötig Mit 9.0.1 wird alles gut – oder zumindest besser
© 2015 IBM Corporation
Wo fange ich an?
© 2015 IBM Corporation
Das Domino Backend
Interne Signatur
Externe Signatur
Automatisch einfügen
Änderungen speichern
© 2015 IBM Corporation
Das Web Frontend
Interne Signatur Externe Signatur
Automatisch einfügenÄnderungen speichern
© 2015 IBM Corporation
Das Seiten-Design verstehen
© 2015 IBM Corporation
Alter Code
Neuer Code
Best Practice: Änderungen nachvollziehbar halten!
© 2015 IBM Corporation
© 2015 IBM Corporation
Textmuster anpassen und hinzufügen
© 2015 IBM Corporation
“Mein Mail soll automatisch - und auf Wunsch - vorbefüllt werden”
Komplexitätmittel
© 2015 IBM Corporation
Fallstricke: Ajax, Custom_JS_Lite als Einstieg Trotzdem: Browser-spezifische Masken, d.h. im Extremfall wird alles 3 Mal
eingebaut (IE, Gecko, Safari) Jede Menge JavaScript Aber: Mit 9.0.1 muss auch hier zumindest kein Standard-Design (Forms9.nsf)
mehr angefasst werden
“Mein Mail soll automatisch - und auf Wunsch - vorbefüllt werden”
© 2015 IBM Corporation
Wo fange ich an?
© 2015 IBM Corporation
Das Web Frontend
iNotes Signatur...für den Fall dass Notes und iNotes unterschiedliche Signaturen verwenden dürfen
© 2015 IBM Corporation
Was passiert beim Hinzufügen des Standard-Footers?
© 2015 IBM Corporation
Was passiert beim Hinzufügen des Standard-Footers?
Alter Code
© 2015 IBM Corporation
Funktionen parametrisierbar machen
Falls du von irgendwo einen Parameter bekommst, leg den in das Standard-Feld und mach weiter wie gehabt.
Hol dir die Signatur aus denVorgaben per Agent aus dem Profildokument
© 2015 IBM Corporation
Funktionen parametrisierbar machen
Ausblenden derStandard-Signaturoption
© 2015 IBM Corporation
Was passiert beim Erstellen des Mails?
Die Funktion GuH(..) fügt den eigentlichen Footer hinzu – entweder automatisch oder auf Wunsch des Nutzers
© 2015 IBM Corporation
Die eigentliche Footer-Funktion
Prüfe ob du über das Menü (Mehr > Extern / Intern) aufgerufen wurdest. Wenn ja, nimm die zuvor in der Funktion Gno(...) abgelegte Signatur und mach weiter wie gehabt.
Wenn Du keine übergebene Signatur findest, bist du wahrscheinlich nicht über dieses Menü aufgerufen worden sondern sollst einfach nur ein neues Mail erstellen. In dem Fall ruf den Agenten nochmal auf und hol dir die im Profildokument abgelegte Standard-Signatur.
Was diese Funktion künftig zusätzlich tun soll:
© 2015 IBM Corporation
...der endgültige Code
© 2015 IBM Corporation
Frustriert, abgeschreckt...? Es geht auch anders!
Quelle: Computerwoche
© 2015 IBM Corporation
oder
“Ich will da mein Logo und die Firmenfarben!”
Komplexitätgering
© 2015 IBM Corporation
Fallstricke: Es gibt zwei Möglichkeiten:
─ Nutzung der dafür gedachten Teilmasken Custom_Masthead und Custom_CSS in der Forms9_x.nsf
─ In diesem Fall wird eine zusätzliche Header-Leiste eingeblendet und die Navigation angepasst
─ Übernahme und Anpassung der Standard-Teilmasken Common_Masthead und Common_CSS
─ Bei dieser Option ist der Aufwand vergleichbar gering und die Möglichkeiten vielfältiger
“Ich will da mein Logo und die Firmenfarben!”
Dieser Weg ist im Wiki ausführlich dokumentiert!
© 2015 IBM Corporation
Wo fange ich an?
© 2015 IBM Corporation
Phase 1: Platz schaffen
© 2015 IBM Corporation
Phase 2: Beispielcode für ein Banner finden
© 2015 IBM Corporation
...mit kleinen Änderungen
...und anpassen
© 2015 IBM Corporation
Phase 3: Die Linieneigenschaften finden
© 2015 IBM Corporation
...und anpassen
© 2015 IBM Corporation
Elementare Anpassungen sind auch ohne Entwicklung möglich● Richtlinien, Herausgreifen der gewünschten Funktionsblöcke, ...
Logo, Farbgebung etc. sind schnell und einfach anpassbar
Unkritisch ist alles, was über die Custom_*-Teilmasken eingebaut werden kann – genau dafür sind die da!
Dokumentieren Sie Ihre Änderungen!
Zusammenfassung und Best Practices
© 2015 IBM Corporation
Mit 9.0.1 wird es wesentlich einfacher, Änderungen fast beliebiger Komplexität in iNotes einzubauen und dabei das Standarddesign beizubehalten
Durch die Möglichkeit, Änderungen an zentraler Stelle und unabhängig vom Standarddesign abzulegen, reduzieren sich Deployment-Risiken und Projektaufwände massiv
Behalten Sie trotzdem den Prüf-Aufwand bei Upgrades, Fixpacks etc. im Auge! Hier können Tools weiterhelfen, die Änderungen zwischen Forms9.nsf (ALT) und Forms9.nsf (NEU) erkennen.
Zusammenfassung und Best Practices
© 2015 IBM Corporation
Fragen?