SlideShare ist ein Scribd-Unternehmen logo
The Lotus Code Cookbook Ulrich Krause   EntwicklerCamp, 21. – 23.02.2011,  Gelsenkirchen, Deutschland
Agenda Allgemeines Optionen des Designers Tools @Formeln LotusScript Bearbeitung von Richtext ( C-Api / LS2CAPI ) Javascript (Frameworks) XPages
Warum sollten wir @Formeln verwenden? Alle Sprachen verwenden die gleichen Kernfunktionen Bei gleicher Funktionalität sind Formeln IMMER performanter Formeln sind Performance optimiert Lesenswert: Damien Katz,  http://damienkatz.net/2005/01/formula-engine-rewrite.html
Option Declare WichtigsteCodezeile in LotusScript Option Declare “zwingt” zumDeklarierenallerVariablen und erspart das Beseitigen von schwerauffindbarenFehlern AlleFehlersind runtime Fehler
Option Declare OHNE „Option Declare“ MIT„OptionDeclare“
Option Declare Der wichtigste Grund, warum wir „Option Declare“ verwenden MÜSSEN, ist …
Option Declare Every time you don‘t use „Option Declare“,  God will kill a kitten !!
Option Base Sets the default lower bound for array subscripts to 0 or 1
Dim Statement Erstellt eine Referenz zu einem Objekt, ohne das Objekt zu erstellen Achtung:  Dim i, j, k As Integer Dim i As Integer, j As Integer, k As Integer
Dim Statement und Performance Ausführungszeiten messen mit Getthreadinfo Wird z.B. ein Integerwert in einem Variant gespeichert, so muss Notes intern eine Typumwandlung vornehmen. Das kostet Zeit !! DEMO: DIM - Zeitschleife
GetNextDocument vs. GetNthDocument 16.260 Dokumente 10 Testläufe / Methode Tabelle zeigt die Durchschnittswerte
GetNextDocument vs. GetNthDocument 113.610 Dokumente 4 Testläufe / Methode Tabelle zeigt die Durchschnittswerte  DEMO - GetNextDocument vs. GetNthDocument
Script / Comment Templates Einheitlicher Aufbau von Codesegmenten
Fonts / Colors Individuelle Einstellungen für bessere Lesbarkeit
Zeilennummern einblenden
Sessionempfehlung Anita DungerEinführung in die neue Designer-Umgebung ( Hands On, Dienstag 9:00 – 10:30 ) Julian BussVersionskontrolle mit dem Domino Designer( direkt im Anschluss an diese Session )
Soft-Coded Field Names One of the worst traps in LotusScript is using hard-coded field names.  LotusScript makes it simple to hard code field names, because of its support for extended attributes of the NotesDocument class.  The LotusScript documentation even describes this as a feature, though you should avoid it like the plague.
Logging Kein Code ist absolut fehlerfrei! Auch wenn momentan keine Fehler erkennbar sind, werden Fehler auftauchen. Fehler erkennen, die von Usern nicht immer gemeldet werden. Es gibt Tools, die ein aussagekräftiges Logging mit nur wenigen Codezeilen ermöglichen. Julian Robichaux: OpenLog http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=OpenLog
OpenLog
Source Sniffer Domino Designer extension Sucht in einer oder meheren Anwendungen Unterstützt  Java,  Javascript,  Lotusscript, @Formula, Xpages http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=Source%20Sniffer
NotesHound http://domino-80.prominic.net/A55BE4/NotesHoundWeb.nsf/webpages/index.html
LotusScript.doc Erstellt eine Dokumentationvon LotusScript in einer Datenbank. Syntax wieJavadoc LotusScript.doc API http://blog.lsdoc.org/ LSDoc Support to DDE http://blog.mindoo.com/web/blog.nsf/dx/22.07.2010223240KLES4H.htm?opendocument&comments, Karsten Lehmann
Hide Design In kommerziellen Anwendungen Template „Hide Design“ Problem: keine Anpassungen von Ansichten durch den Anwender Besser ist es daher, nur Teile der Anwendung zu verbergen. In der Regel enthalten Script Bibliotheken den schützenswerten Code. %Include  „xyz.lss“
Hide Design Der lesbare Quelltext befindet sich im item $ScriptLib
Hide Design kann Den Text im item $ScriptLib kann man löschen oder durch ein freundliches „Hello“ ersetzen. Nach dem Speichern ist der Quelltext nicht mehr sichtbar.
NotesView.AutoUpdate = false Performancegewinn, da die Ansicht nicht kontinuierlich aktualisiert wird. Zu den technischen Hintergründen; Bob Balaban, http://bobzblog.com/tuxedoguy.nsf/dx/geek-o-terica-10-autoupdating-in-views http://www-10.lotus.com/ldd/ddwiki.nsf/dx/View.AutoUpdate_ Bei der Verwendung von NotesViewNavigator können Fehler auftreten, wenn AutoUpdate = true („Entry not found in Index“) Andre Guirard, http://www-10.lotus.com/ldd/bpmpblog.nsf/dx/autoupdate-false
@WhichFolders Neu ab 8.5.1 Nur in Ansichtsspalten zu verwenden Option „Maintainfolderunreadinformation“ muß aktiviert sein Option „ Don'tmaintainUnreadmarks“ darf nicht aktiviert sein“
@WhichFolders in LotusScript I db.FolderReferencesEnabled = True $FolderInfo und $FolderRefInfo Ansichten können aus der Mailschablone kopiert werden Demo: @WhichFolders in LS I
@WhichFolders in LotusScript II CreateViewNavFrom Keine zusätzlichen Designelemente erforderlich Aber langsam bei einer großen Ordneranzahl  Demo: @WhichFolders in LS II
@Command( [DiscoverFolders];title) Wie @WhichFolders mit zusätzlichen Möglichkeiten, um die Ordnereigenschaften eines Dokuments zu ändern. Uncheck „Don‘tmaintainunreadmarks“
@Transform Seit Version 6 Entspricht LotusScriptstatementForAll x in Liste  Führt eine Formel für jedes Element der Liste aus. @Transform(list ; variableName ; formula ) Rückgabewert ist die durch die Formel modifizierte Liste Kann in Ansichtenspalten verwendet werden
@Transform (Sample) Names.nsf - Peopley Client Version Unübersichtlich, da alle Versionen dargestellt werden.
Peopley Client Version (new) Mit wenigen Handgriffen Ordnung schaffen
@Nothing Seit Version 6 Lt. Designer Hilfe nur mit @Transform zu verwendbar ( „not valid in othercontext“ ) Funktioniert aber z.B auch in View Selection
@Sort Sortiert eine Liste [ACCENTSENSITIVE] [ACCENTINSENSITIVE] [ASCENDING] [CASESENSITIVE] [CASEINSENSITIVE] [CUSTOMSORT] [DESCENDING] [PITCHSENSITIVE] [PITCHINSENSITiVE] Dies lässt sich auch kombinieren [ASCENDING]:[CASESENSITIVE]
@Sort @Sort kann aber noch mehr – [CustomSort]
@UpdateFormulaContext Ändert den Kontext einer Formel  Nachfolgende Befehle werden im neuen Kontext ausgeführt
@Now + [NoCache] [SERVERTIME] ermöglicht die Abfrage von @Now für einen Server oder eine Liste von Servern. Problem: Änderung der Systemzeit @Now fragt die Zeit beim ersten Aufruf ab und cached diesen Wert. Bei weiteren Aufrufen wird nur die Zeit seit dem ersten Aufruf zum Wert im Cache addiert. [NOCACHE] umgeht dieses Problem Nicht dokumentiert;  noch nicht
Get the current location name @LocationGetInfo @LocationGetInfo([HomeServer]) @LocationGetInfo([InternetMailAddress]) @LocationGetInfo([NamePreference]) @LocationGetInfo([BookmarksFilename]) @LocationGetInfo([SametimeServer]) @LocationGetInfo([UNID]) http://www.thenorth.com/apblog4.nsf/0/60C5A5C6540A2D648525719F0012BDED
Get the current location name @LocationGetInfo([FullName]) @LocationGetInfo([AbbreviatedName]) Damit erhalten wir Zugriff auf JEDES beliebige Feld in der aktuellen Arbeitsumgebung
@GetMachineInfo  (8.5.3) New @Function to support MachineSpecificPolicy Settings asof Notes / Domino 8.5.3
@GetMachineInfo vs. @Environment @GetMachineInfo([EnvVariable];"Location"); Liefert den gewünschten Wert für alle Variablen in der notes.ini zurück Egal ob mit „$“ oder ohne Kann keine Werte setzen @Environment(„Location“) Liefert nur Variablen mit „$“ zurück ($DDM_SERVER) Kann auch Werte in der notes.ini setzen
@CheckFormulaSyntax Überprüft Formeln  Zeigt den Fehler konkret an
@CheckFormulaSyntax (LotusScript)  Verwendet LotusScript EVALUATE DEMO - CheckFormula
@BusinessDays Ermittelt die Anzahl von Werktagen in einem Datumsbereich Bestimmte Tage können als Werktage ausgeschlossen werden Ebenso lassen sich Feiertage als Werktage ausschließen Beispiel: Der Wert eines Items soll auf einen Wert @Today + 3 Tage gesetzt werden. Dabei sollen die Wochenenden und bestimmte Datumswerte nicht als Werktage gelten. @BusinessDays wird in XPages nicht unterstützt
@BusinessDays (LS) Evaluate zur Einbindung von @BusinessDays in LS
@DbLookup + [FailSilent] Keine Fehlermeldung, wenn keine Entsprechung in der Ansicht gefunden wird @DbLookup(""; ""; "All"; Source; 2;[FailSilent])
 [ReturnDocumentUniqueID] Gibt die DocumentUNID eines @DBLookup Ergebnisses zurück @DbLookup(""; ""; "All"; “test”; 1; [FailSilent]:[ReturnDocumentUniqueID]); Macht eine zusätzlicheAnsichtmit einer Spaltenformel@Text(@DocumentUniqueID) überflüssig
@ConfigFile Wo ist die notes.ini?  @Prompt([OK];“notes.ini path“;@configfile) Notes.ini bearbeiten @Command([Execute];"notepad"; @configfile)
Programmatic Use Wozu ist die Eigenschaft „Programmatic Use“ da? Keine Redundanz komplizierterSpaltenformeln. Das Ergebnis einer Berechnung kann in einer anderen Spalte verwendet werden Andre Guirard  http://www-10.lotus.com/ldd/ddwiki.nsf/dx/colprognames.htm
Permutation Comparison In HideFormulas Element nicht anzeigen, wenn User nicht mindestens eine der Rollen hat. @IsNotMember("[GloAdmin]"; @UserRoles) & @IsNotMember("[GloEditor]"; @UserRoles) Läßt sich kürzen auf: @IsNotMember("[GloAdmin]" : "[GloEditor]"; @UserRoles) Noch kürzer !("[GloAdmin]" : "[GloEditor]" *= @UserRoles)
Get Rules From Users Mailfile User mögen Regeln, aber nicht unsere. User erstellen Regel, viele, sehr viele Regeln. Aber welche Regeln haben die User denn erstellt? http://www.eknori.de/2007-02-13/get-rules-from-users-mailfile/
Mail Rules Extended Regelnhabenstarre, vorgegebeneBedingungen
Mail Rules Extended Der Client speichert die Regeln im Kalenderprofil Auf dem Server werden die Regeln in “mailrule” Dokumenten gespeichert
Mail Rules Extended Mehr Möglichkeiten bei der Regelerstellung Erfordert Änderung an names.nsf Kein grosser Aufwand beim Upgrade
Tweak Auto-Populated Groups EinfacheErweiterung in names.nsf Create a new subform Create a new field on the subform ( SelectionCriteria, Text, Editable ) Give it the name Custom and an alias starting with $AutoPopulate followed by a number of your choice ( i.e. 9999) Save the subform http://www.eknori.de/2008-06-10/tweak-the-auto-populated-groups-feature-in-domino-85/
How to get rid of $UpdatedBy? Unter Umständen sollen die Bearbeiter eines Dokuments nicht sichtbar sein.
@AdminDelegateMailFile Erstellt Administrationsprocess Unterzeichner muss Owner der Maildatei sein (!)
Custom Administration Process Fehlende Funktionen hinzufügen Z.B. : User aus Gruppe entfernen Verlagerung administrativer Aufgaben in den Servicedesk NotesAdministrationProcessclass Seit Release 6 AddGroupMembersmethod aber keine RemoveGroupMembersmethod
Custom Administration Process
Custom Administration Process admin4.nsf anpassen ( neue Maske )
Custom Administration Process admin4.nsf anpassen ( Ansichten ) Neue Ansicht erstellen oder Spalte „Action“ anpassen
Zip and Unzip  Verwendung von ZIP/UNZIP mitLotusScript Kostenlos  http://www.vcode.no/vcode.nsf/downloads/VCZIPSUP
Auto-Zip Mail Attachments Anhänge werden beim Versenden automatisch gepackt Genaue Beschreibung der Anpassungen im Lotus Notes & Domino Wiki http://www-10.lotus.com/ldd/dominowiki.nsf/page.xsp?documentId=7963EB58BAD528FB852577AE0062A72A&action=openDocument&mode=original
XLS ohne Excel erstellen Reports sollen auf einem Server erstellt werden, auf dem kein Excel installiert ist. ( Linux ) http://jxls.sourceforge.net/index.html Support for Excel 2007 OOXML (.xlsx) fileformat
XLS ohne Excel erstellen
Lotus SymphonyToolkit %Include"symphonylsx.lss„ OpenNTF.org Contacts Experience http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=OpenNTF.org%20Contacts%20Experience MailMerge Letter Export Contacts Symphony MS Office
Wurde das Dokument gelesen? doc.GetRead([username]) Ab Release 8.5 Gibt „true“ zurück, wenn das Dokument vom aktuellen User gelesen wurde Wird ein Username angegeben, wird der Lesestatus dieses Users zurückgegeben
@Midas Lookups Ben Langhinrichs ( geniisoftware ) Auslesen von Daten aus RichText Syntax wie @DBColumn und @DBLookup Free download: http://www.geniisoft.com/showcase.nsf/MidasLookups
@Midas Lookups Erweiterte Möglichkeiten Beispiel: Sortierte Ausgabe aller Listenpunkte
Ist RichText Item leer?? @Length(@Text(body))-1 @Attachments rtitem.ValueLength rtitem.EmbeddedObjects Attachments OK Aber:  Doclinks,  Inline Images, Hotspots (Button)
Ist RichText Item leer? DEMO - Is Item empty?
Arbeiten mit RichText C/C++  API oder LS2CAPI NormundsKalbernzin LotusScript to Lotus C API Programming Guide ( ls2capi.com ) Lee Powell LotusScriptor'sPlain Simple Guide to the Lotus Notes C++ API   Download : http://www.eknori.de/downloads/capibook.pdf EthannCastell Gettingstartedwith the C-API Controlrichtextcontentwithprecisionusing the C-API The View, 09 / 11 , 2007
Einordnung der C-API Lotus Script Visual Basic (COM) JAVA JNI Notes Object Interface (NOI) C++ API Notes Core ( C API ) Betriebssystem
Ist RichText Item leer? LS2CAPI to the rescue! Leeres RTI besitzt nur einen CDRecord von Typ Text
Header / Footer Erstellen / Ändern Anwendungseigenschaften ( global ) Dokumenteneigenschaften Keine Möglichkeit über @Formel oder LotusScript
Header / Footer Informationen sind in RichText item gespeichert
Header / Footer LotusScript Library / LS2CAPI
Inline Images Auf Inline Images kann nicht über die embedded objects Eigenschaft zugegriffen werden Inline Images werden z.B. nicht bei DAOS berücksichtigt. Es gibt keine Methoden, um Inline Images mit LotusScript so umzuwandeln, daß sie als Anhang im Dokument gespeichert werden.
Inline Images Wie ist ein Inline Image gespeichert ?
Inline Images Andre Guirard http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=LotusScript%20Gold%20Collection
Inline Images rtLib: framework of LotusScript classes to work with Notes Rich Text on 32-bit versions of Domino on AIX, Solaris (SPARC), Linux, MacOS, OS X (currently PowerPC only) and Windows. NormundsKalnberzins http://www.rtlib.com/
ReplaceInline Image  Bilder, die aus der Zwischenablage in ein Dokument eingefügt werden, werden bei DAOS nicht berücksichtigt.  Methoden zum Umwandeln in ein Attachment gibt es in Lotus Notes nicht. Funktion muss folgende Voraussetzungen erfüllen Umwandeln des inline image in ein Attachment Ersetzen des inline image durch das Attachment Beibehalten der Position
ReplaceInline Image Das Attachment wird an die  Position des Inline Image gesetzt.
ReplaceInline Images
Insert RichtextintoRichtext notesRichTextRange.FindAndReplace( target$ , replacement$ , [ options& ] ) Damit lässt sich aber nur Text innerhalb von RichText finden und ersetzen Für das Einfügen eines kompletten RichText Items oder Teile davon an eine definierte Stelle in einem anderen RichText Item gibt es keine Methode.
Insert RichtextintoRichtext
Insert RichtextintoRichtext
JW Player - Mediaplayer JW Player: Ein paar Zeilen Code für einen Mediaplayer für Flash und HTML5 support Skins, Plugins und Playlists http://www.longtailvideo.com/players/
JW Player - Mediaplayer
jQuery freie, umfangreiche JavaScript-Klassenbibliothek, welche komfortable Funktionen zur DOM-Manipulation und -Navigation zur Verfügung stellt http://www.reizkraft.com/content/die-43-sch%C3%B6nsten-jquery-plugins-f%C3%BCr-webdesign Animatedgifcreatedwith http://picasion.com/
UIZE – JavaScript Framework „You Eyes“  OpenSource, MIT oder GNU GPL Unterstützung von … Widgets,  Ajax,  DOM,  Templates  … Mobile Devices http://www.uize.com/
UIZE – JavaScript Framework Sample : Resizer
Xpages und @Formula Nur 97 der 274 @Formeln können in SSJS verwendet werden http://www-10.lotus.com/ldd/ddwiki.nsf/dx/List_of_Formula_Not_Supported_In_XPages Michael Gollmick hat ein paar Formeln umgesetzt @WebDBName http://blog.gollmick.de/mgoblog.nsf/40f2c735481f54dd80256d650047636c/0687660450ad65bdc125754a008357ce?OpenDocument @URLEncode, @URLDecode http://blog.gollmick.de/mgoblog.nsf/dx/some-more-Functions-for-XPages-URLEncode-URLDecode.htm
Q + A Mail: eknori@eknori.de Blog: http://www.eknori.de Sametime: Bleedyellow.com Twitter: Eknori

Weitere ähnliche Inhalte

Was ist angesagt?

Engage2022 - Domino Admin Tips
Engage2022 - Domino Admin TipsEngage2022 - Domino Admin Tips
Engage2022 - Domino Admin Tips
Gabriella Davis
 
From frustration to fascination: dissecting Replication
From frustration to fascination: dissecting ReplicationFrom frustration to fascination: dissecting Replication
From frustration to fascination: dissecting Replication
Benedek Menesi
 
60 Admin Tips
60 Admin Tips60 Admin Tips
60 Admin Tips
Gabriella Davis
 
DNUG HCL Domino 11 First Look
DNUG HCL Domino 11 First LookDNUG HCL Domino 11 First Look
DNUG HCL Domino 11 First Look
daniel_nashed
 
January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12
Howard Greenberg
 
IBM Lotus Domino Domain Monitoring (DDM)
IBM Lotus Domino Domain Monitoring (DDM)IBM Lotus Domino Domain Monitoring (DDM)
IBM Lotus Domino Domain Monitoring (DDM)
Austin Chang
 
HCL Domino V12 Key Security Features Overview
HCL Domino V12 Key Security Features Overview HCL Domino V12 Key Security Features Overview
HCL Domino V12 Key Security Features Overview
hemantnaik
 
Best Practice TLS for IBM Domino
Best Practice TLS for IBM DominoBest Practice TLS for IBM Domino
Best Practice TLS for IBM Domino
Jared Roberts
 
How to use the new Domino Query Language
How to use the new Domino Query LanguageHow to use the new Domino Query Language
How to use the new Domino Query Language
Tim Davis
 
Lotus Domino Clusters
Lotus Domino ClustersLotus Domino Clusters
Lotus Domino Clusters
jayeshpar2006
 
Spnego configuration
Spnego configurationSpnego configuration
Spnego configuration
Gabriella Davis
 
RNUG - Virtual, Faster, Better! How to deploy HCL Notes 11.0.1 FP2 for Citrix...
RNUG - Virtual, Faster, Better! How to deploy HCL Notes 11.0.1 FP2 for Citrix...RNUG - Virtual, Faster, Better! How to deploy HCL Notes 11.0.1 FP2 for Citrix...
RNUG - Virtual, Faster, Better! How to deploy HCL Notes 11.0.1 FP2 for Citrix...
Christoph Adler
 
HCL Sametime 12.0 on Docker - Step-By-Step.pdf
HCL Sametime 12.0 on Docker - Step-By-Step.pdf HCL Sametime 12.0 on Docker - Step-By-Step.pdf
HCL Sametime 12.0 on Docker - Step-By-Step.pdf
Ales Lichtenberg
 
Deep Dive AdminP Process - Admin and Infrastructure Track at UKLUG 2012
Deep Dive AdminP Process - Admin and Infrastructure Track at UKLUG 2012Deep Dive AdminP Process - Admin and Infrastructure Track at UKLUG 2012
Deep Dive AdminP Process - Admin and Infrastructure Track at UKLUG 2012
BCC - Solutions for IBM Collaboration Software
 
IBM Notes Traveler Administration and Log Troubleshooting tips - Part 2
IBM Notes Traveler Administration and Log Troubleshooting tips - Part 2IBM Notes Traveler Administration and Log Troubleshooting tips - Part 2
IBM Notes Traveler Administration and Log Troubleshooting tips - Part 2
jayeshpar2006
 
Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)
Ulrich Krause
 
Bewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-Server
Bewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-ServerBewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-Server
Bewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-Server
panagenda
 
Domino Adminblast
Domino AdminblastDomino Adminblast
Domino Adminblast
Gabriella Davis
 
Understanding domino memory 2017
Understanding domino memory 2017Understanding domino memory 2017
Understanding domino memory 2017
mJOBrr
 
Platz da! Platz schaffen auf dem Domino Server - Vortrag von Ulrich Krause be...
Platz da! Platz schaffen auf dem Domino Server - Vortrag von Ulrich Krause be...Platz da! Platz schaffen auf dem Domino Server - Vortrag von Ulrich Krause be...
Platz da! Platz schaffen auf dem Domino Server - Vortrag von Ulrich Krause be...
BCC - Solutions for IBM Collaboration Software
 

Was ist angesagt? (20)

Engage2022 - Domino Admin Tips
Engage2022 - Domino Admin TipsEngage2022 - Domino Admin Tips
Engage2022 - Domino Admin Tips
 
From frustration to fascination: dissecting Replication
From frustration to fascination: dissecting ReplicationFrom frustration to fascination: dissecting Replication
From frustration to fascination: dissecting Replication
 
60 Admin Tips
60 Admin Tips60 Admin Tips
60 Admin Tips
 
DNUG HCL Domino 11 First Look
DNUG HCL Domino 11 First LookDNUG HCL Domino 11 First Look
DNUG HCL Domino 11 First Look
 
January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12
 
IBM Lotus Domino Domain Monitoring (DDM)
IBM Lotus Domino Domain Monitoring (DDM)IBM Lotus Domino Domain Monitoring (DDM)
IBM Lotus Domino Domain Monitoring (DDM)
 
HCL Domino V12 Key Security Features Overview
HCL Domino V12 Key Security Features Overview HCL Domino V12 Key Security Features Overview
HCL Domino V12 Key Security Features Overview
 
Best Practice TLS for IBM Domino
Best Practice TLS for IBM DominoBest Practice TLS for IBM Domino
Best Practice TLS for IBM Domino
 
How to use the new Domino Query Language
How to use the new Domino Query LanguageHow to use the new Domino Query Language
How to use the new Domino Query Language
 
Lotus Domino Clusters
Lotus Domino ClustersLotus Domino Clusters
Lotus Domino Clusters
 
Spnego configuration
Spnego configurationSpnego configuration
Spnego configuration
 
RNUG - Virtual, Faster, Better! How to deploy HCL Notes 11.0.1 FP2 for Citrix...
RNUG - Virtual, Faster, Better! How to deploy HCL Notes 11.0.1 FP2 for Citrix...RNUG - Virtual, Faster, Better! How to deploy HCL Notes 11.0.1 FP2 for Citrix...
RNUG - Virtual, Faster, Better! How to deploy HCL Notes 11.0.1 FP2 for Citrix...
 
HCL Sametime 12.0 on Docker - Step-By-Step.pdf
HCL Sametime 12.0 on Docker - Step-By-Step.pdf HCL Sametime 12.0 on Docker - Step-By-Step.pdf
HCL Sametime 12.0 on Docker - Step-By-Step.pdf
 
Deep Dive AdminP Process - Admin and Infrastructure Track at UKLUG 2012
Deep Dive AdminP Process - Admin and Infrastructure Track at UKLUG 2012Deep Dive AdminP Process - Admin and Infrastructure Track at UKLUG 2012
Deep Dive AdminP Process - Admin and Infrastructure Track at UKLUG 2012
 
IBM Notes Traveler Administration and Log Troubleshooting tips - Part 2
IBM Notes Traveler Administration and Log Troubleshooting tips - Part 2IBM Notes Traveler Administration and Log Troubleshooting tips - Part 2
IBM Notes Traveler Administration and Log Troubleshooting tips - Part 2
 
Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)
 
Bewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-Server
Bewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-ServerBewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-Server
Bewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-Server
 
Domino Adminblast
Domino AdminblastDomino Adminblast
Domino Adminblast
 
Understanding domino memory 2017
Understanding domino memory 2017Understanding domino memory 2017
Understanding domino memory 2017
 
Platz da! Platz schaffen auf dem Domino Server - Vortrag von Ulrich Krause be...
Platz da! Platz schaffen auf dem Domino Server - Vortrag von Ulrich Krause be...Platz da! Platz schaffen auf dem Domino Server - Vortrag von Ulrich Krause be...
Platz da! Platz schaffen auf dem Domino Server - Vortrag von Ulrich Krause be...
 

Andere mochten auch

The HFA - LatAm Chapter
The HFA - LatAm ChapterThe HFA - LatAm Chapter
The HFA - LatAm Chapter
Victor Hugo Rodriguez
 
On the Viability of CAPTCHAs for Use in Telephony Systems: A Usability Field ...
On the Viability of CAPTCHAs for Use in Telephony Systems: A Usability Field ...On the Viability of CAPTCHAs for Use in Telephony Systems: A Usability Field ...
On the Viability of CAPTCHAs for Use in Telephony Systems: A Usability Field ...
IIIT Hyderabad
 
Agroscopia
AgroscopiaAgroscopia
Agroscopia
iddealia
 
Redacción de textos
Redacción de textosRedacción de textos
Redacción de textos
Sebastian Gomez Avellaneda
 
MD TheBreeze
MD TheBreezeMD TheBreeze
MD TheBreeze
Frank Walsh
 
Ccomemagazine N5
Ccomemagazine N5Ccomemagazine N5
Ccomemagazine N5
Modiv snc
 
Lactancia Materna
Lactancia MaternaLactancia Materna
Lactancia Materna
Paridad Genero
 
Business Goals My aaS - Anton Weiss, Otomato - DevOpsDays Tel Aviv 2016
Business Goals My aaS - Anton Weiss, Otomato - DevOpsDays Tel Aviv 2016Business Goals My aaS - Anton Weiss, Otomato - DevOpsDays Tel Aviv 2016
Business Goals My aaS - Anton Weiss, Otomato - DevOpsDays Tel Aviv 2016
DevOpsDays Tel Aviv
 
theSOULwithin Portfolio 08
theSOULwithin Portfolio 08theSOULwithin Portfolio 08
theSOULwithin Portfolio 08
jedakk
 
La biologia sintetica
La biologia sintetica La biologia sintetica
La biologia sintetica
Guadalupe Gonzalez Tovar
 
Kunst Des Starts V ApéRo Feb2011pptx
Kunst Des Starts V ApéRo Feb2011pptxKunst Des Starts V ApéRo Feb2011pptx
Kunst Des Starts V ApéRo Feb2011pptx
Nicolas Berg
 
Petra Machu Picchu
Petra Machu PicchuPetra Machu Picchu
Petra Machu Picchu
shoshiiiii
 
Todd Mctavish
Todd MctavishTodd Mctavish
TGS EUR- North Viking Graben 3D
TGS EUR- North Viking Graben 3DTGS EUR- North Viking Graben 3D
TGS EUR- North Viking Graben 3D
TGS
 
Libro cuerpos cristalinos_en_el_organismo_15a_edicion
Libro cuerpos cristalinos_en_el_organismo_15a_edicionLibro cuerpos cristalinos_en_el_organismo_15a_edicion
Libro cuerpos cristalinos_en_el_organismo_15a_edicion
Carlos Perez
 
Hoja Producto Business Intelligence
Hoja Producto Business IntelligenceHoja Producto Business Intelligence
Hoja Producto Business Intelligence
Carlos Barranco García
 
Guia#1
 Guia#1 Guia#1
EXPERIENCIA SIGNIFICATIVA " TIME FOR NEW TECHNOLOGIES "
EXPERIENCIA SIGNIFICATIVA " TIME FOR NEW TECHNOLOGIES "EXPERIENCIA SIGNIFICATIVA " TIME FOR NEW TECHNOLOGIES "
EXPERIENCIA SIGNIFICATIVA " TIME FOR NEW TECHNOLOGIES "
It's English Time
 
X2 multiplication mental math strategy current
X2 multiplication mental math strategy currentX2 multiplication mental math strategy current
X2 multiplication mental math strategy current
roomten100
 
Kişisel rehberlik
Kişisel rehberlikKişisel rehberlik
Kişisel rehberlik
umt134
 

Andere mochten auch (20)

The HFA - LatAm Chapter
The HFA - LatAm ChapterThe HFA - LatAm Chapter
The HFA - LatAm Chapter
 
On the Viability of CAPTCHAs for Use in Telephony Systems: A Usability Field ...
On the Viability of CAPTCHAs for Use in Telephony Systems: A Usability Field ...On the Viability of CAPTCHAs for Use in Telephony Systems: A Usability Field ...
On the Viability of CAPTCHAs for Use in Telephony Systems: A Usability Field ...
 
Agroscopia
AgroscopiaAgroscopia
Agroscopia
 
Redacción de textos
Redacción de textosRedacción de textos
Redacción de textos
 
MD TheBreeze
MD TheBreezeMD TheBreeze
MD TheBreeze
 
Ccomemagazine N5
Ccomemagazine N5Ccomemagazine N5
Ccomemagazine N5
 
Lactancia Materna
Lactancia MaternaLactancia Materna
Lactancia Materna
 
Business Goals My aaS - Anton Weiss, Otomato - DevOpsDays Tel Aviv 2016
Business Goals My aaS - Anton Weiss, Otomato - DevOpsDays Tel Aviv 2016Business Goals My aaS - Anton Weiss, Otomato - DevOpsDays Tel Aviv 2016
Business Goals My aaS - Anton Weiss, Otomato - DevOpsDays Tel Aviv 2016
 
theSOULwithin Portfolio 08
theSOULwithin Portfolio 08theSOULwithin Portfolio 08
theSOULwithin Portfolio 08
 
La biologia sintetica
La biologia sintetica La biologia sintetica
La biologia sintetica
 
Kunst Des Starts V ApéRo Feb2011pptx
Kunst Des Starts V ApéRo Feb2011pptxKunst Des Starts V ApéRo Feb2011pptx
Kunst Des Starts V ApéRo Feb2011pptx
 
Petra Machu Picchu
Petra Machu PicchuPetra Machu Picchu
Petra Machu Picchu
 
Todd Mctavish
Todd MctavishTodd Mctavish
Todd Mctavish
 
TGS EUR- North Viking Graben 3D
TGS EUR- North Viking Graben 3DTGS EUR- North Viking Graben 3D
TGS EUR- North Viking Graben 3D
 
Libro cuerpos cristalinos_en_el_organismo_15a_edicion
Libro cuerpos cristalinos_en_el_organismo_15a_edicionLibro cuerpos cristalinos_en_el_organismo_15a_edicion
Libro cuerpos cristalinos_en_el_organismo_15a_edicion
 
Hoja Producto Business Intelligence
Hoja Producto Business IntelligenceHoja Producto Business Intelligence
Hoja Producto Business Intelligence
 
Guia#1
 Guia#1 Guia#1
Guia#1
 
EXPERIENCIA SIGNIFICATIVA " TIME FOR NEW TECHNOLOGIES "
EXPERIENCIA SIGNIFICATIVA " TIME FOR NEW TECHNOLOGIES "EXPERIENCIA SIGNIFICATIVA " TIME FOR NEW TECHNOLOGIES "
EXPERIENCIA SIGNIFICATIVA " TIME FOR NEW TECHNOLOGIES "
 
X2 multiplication mental math strategy current
X2 multiplication mental math strategy currentX2 multiplication mental math strategy current
X2 multiplication mental math strategy current
 
Kişisel rehberlik
Kişisel rehberlikKişisel rehberlik
Kişisel rehberlik
 

Ähnlich wie The Lotus Code Cookbook

Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
Ulrich Krause
 
SQL Developer 4.x - Tipps für "faule" Entwickler
SQL Developer 4.x - Tipps für "faule" EntwicklerSQL Developer 4.x - Tipps für "faule" Entwickler
SQL Developer 4.x - Tipps für "faule" Entwickler
syntegris information solutions GmbH
 
Templates, Code & Tools
Templates, Code & ToolsTemplates, Code & Tools
Templates, Code & Tools
Ulrich Krause
 
Architektur einer Eclipse DLTK IDE für Clojure
Architektur einer Eclipse DLTK IDE für ClojureArchitektur einer Eclipse DLTK IDE für Clojure
Architektur einer Eclipse DLTK IDE für Clojure
Matthias Köster
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
Ulrich Krause
 
Windows Powershell
Windows PowershellWindows Powershell
Windows Powershell
Thomas Wilhelm Wiefel
 
Migration auf die OBIEE - OPITZ CONSULTING - Till Sander
Migration auf die OBIEE - OPITZ CONSULTING - Till SanderMigration auf die OBIEE - OPITZ CONSULTING - Till Sander
Migration auf die OBIEE - OPITZ CONSULTING - Till Sander
OPITZ CONSULTING Deutschland
 
TYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der ZukunftTYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der ZukunftJochen Rau
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
Christian Münch
 
AdminCamp 2011 Performance
AdminCamp 2011 PerformanceAdminCamp 2011 Performance
AdminCamp 2011 Performance
Ulrich Krause
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und ReflectionStefan Marr
 
Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit Wordpress
Blogwerk AG
 
Web Entwicklung mit PHP - Teil 3 Beta
Web Entwicklung mit PHP - Teil 3 BetaWeb Entwicklung mit PHP - Teil 3 Beta
Web Entwicklung mit PHP - Teil 3 Beta
Hans-Joachim Piepereit
 
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und AusblickTaugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Philipp Burgmer
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Gregor Biswanger
 
TDD für Testmuffel
TDD für TestmuffelTDD für Testmuffel
TDD für Testmuffel
Hendrik Lösch
 
Ecm 5 13_djaafar_jas_forge
Ecm 5 13_djaafar_jas_forgeEcm 5 13_djaafar_jas_forge
Ecm 5 13_djaafar_jas_forge
Jasmine Conseil
 
PHP mit Paul Bocuse
PHP mit Paul BocusePHP mit Paul Bocuse
PHP mit Paul Bocuse
Stephan Schmidt
 
Oracle Forms: How to create a Framework
Oracle Forms: How to create a FrameworkOracle Forms: How to create a Framework
Oracle Forms: How to create a Framework
OPITZ CONSULTING Deutschland
 
2009 03 17 Spring101
2009 03 17 Spring1012009 03 17 Spring101
2009 03 17 Spring101gueste4be40
 

Ähnlich wie The Lotus Code Cookbook (20)

Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
 
SQL Developer 4.x - Tipps für "faule" Entwickler
SQL Developer 4.x - Tipps für "faule" EntwicklerSQL Developer 4.x - Tipps für "faule" Entwickler
SQL Developer 4.x - Tipps für "faule" Entwickler
 
Templates, Code & Tools
Templates, Code & ToolsTemplates, Code & Tools
Templates, Code & Tools
 
Architektur einer Eclipse DLTK IDE für Clojure
Architektur einer Eclipse DLTK IDE für ClojureArchitektur einer Eclipse DLTK IDE für Clojure
Architektur einer Eclipse DLTK IDE für Clojure
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Windows Powershell
Windows PowershellWindows Powershell
Windows Powershell
 
Migration auf die OBIEE - OPITZ CONSULTING - Till Sander
Migration auf die OBIEE - OPITZ CONSULTING - Till SanderMigration auf die OBIEE - OPITZ CONSULTING - Till Sander
Migration auf die OBIEE - OPITZ CONSULTING - Till Sander
 
TYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der ZukunftTYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der Zukunft
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
 
AdminCamp 2011 Performance
AdminCamp 2011 PerformanceAdminCamp 2011 Performance
AdminCamp 2011 Performance
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und Reflection
 
Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit Wordpress
 
Web Entwicklung mit PHP - Teil 3 Beta
Web Entwicklung mit PHP - Teil 3 BetaWeb Entwicklung mit PHP - Teil 3 Beta
Web Entwicklung mit PHP - Teil 3 Beta
 
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und AusblickTaugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
TDD für Testmuffel
TDD für TestmuffelTDD für Testmuffel
TDD für Testmuffel
 
Ecm 5 13_djaafar_jas_forge
Ecm 5 13_djaafar_jas_forgeEcm 5 13_djaafar_jas_forge
Ecm 5 13_djaafar_jas_forge
 
PHP mit Paul Bocuse
PHP mit Paul BocusePHP mit Paul Bocuse
PHP mit Paul Bocuse
 
Oracle Forms: How to create a Framework
Oracle Forms: How to create a FrameworkOracle Forms: How to create a Framework
Oracle Forms: How to create a Framework
 
2009 03 17 Spring101
2009 03 17 Spring1012009 03 17 Spring101
2009 03 17 Spring101
 

Mehr von Ulrich Krause

What is new in Notes & Domino Deleopment V10.x
What is new in Notes & Domino Deleopment V10.xWhat is new in Notes & Domino Deleopment V10.x
What is new in Notes & Domino Deleopment V10.x
Ulrich Krause
 
IBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware PlatformIBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware Platform
Ulrich Krause
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVC
Ulrich Krause
 
Dr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentDr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin development
Ulrich Krause
 
La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!
Ulrich Krause
 
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
Ulrich Krause
 
Life in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPagesLife in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPages
Ulrich Krause
 
Life In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPagesLife In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPages
Ulrich Krause
 
XPages Performance
XPages PerformanceXPages Performance
XPages Performance
Ulrich Krause
 
Ec13 xpages-basic
Ec13 xpages-basicEc13 xpages-basic
Ec13 xpages-basic
Ulrich Krause
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
Ulrich Krause
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
Ulrich Krause
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPages
Ulrich Krause
 
XPages - The Basics
XPages - The BasicsXPages - The Basics
XPages - The Basics
Ulrich Krause
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
Ulrich Krause
 
Dnug35 ak-dev.071111-basic
Dnug35 ak-dev.071111-basicDnug35 ak-dev.071111-basic
Dnug35 ak-dev.071111-basic
Ulrich Krause
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
Ulrich Krause
 
DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011
Ulrich Krause
 
When Plato Left The Cave - A brief history of Lotus Notes
When Plato Left The Cave - A brief history of Lotus NotesWhen Plato Left The Cave - A brief history of Lotus Notes
When Plato Left The Cave - A brief history of Lotus Notes
Ulrich Krause
 
EntwicklerCamp CGS
EntwicklerCamp CGSEntwicklerCamp CGS
EntwicklerCamp CGS
Ulrich Krause
 

Mehr von Ulrich Krause (20)

What is new in Notes & Domino Deleopment V10.x
What is new in Notes & Domino Deleopment V10.xWhat is new in Notes & Domino Deleopment V10.x
What is new in Notes & Domino Deleopment V10.x
 
IBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware PlatformIBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware Platform
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVC
 
Dr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentDr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin development
 
La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!
 
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
 
Life in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPagesLife in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPages
 
Life In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPagesLife In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPages
 
XPages Performance
XPages PerformanceXPages Performance
XPages Performance
 
Ec13 xpages-basic
Ec13 xpages-basicEc13 xpages-basic
Ec13 xpages-basic
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPages
 
XPages - The Basics
XPages - The BasicsXPages - The Basics
XPages - The Basics
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
 
Dnug35 ak-dev.071111-basic
Dnug35 ak-dev.071111-basicDnug35 ak-dev.071111-basic
Dnug35 ak-dev.071111-basic
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
 
DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011
 
When Plato Left The Cave - A brief history of Lotus Notes
When Plato Left The Cave - A brief history of Lotus NotesWhen Plato Left The Cave - A brief history of Lotus Notes
When Plato Left The Cave - A brief history of Lotus Notes
 
EntwicklerCamp CGS
EntwicklerCamp CGSEntwicklerCamp CGS
EntwicklerCamp CGS
 

The Lotus Code Cookbook

  • 1. The Lotus Code Cookbook Ulrich Krause EntwicklerCamp, 21. – 23.02.2011, Gelsenkirchen, Deutschland
  • 2. Agenda Allgemeines Optionen des Designers Tools @Formeln LotusScript Bearbeitung von Richtext ( C-Api / LS2CAPI ) Javascript (Frameworks) XPages
  • 3. Warum sollten wir @Formeln verwenden? Alle Sprachen verwenden die gleichen Kernfunktionen Bei gleicher Funktionalität sind Formeln IMMER performanter Formeln sind Performance optimiert Lesenswert: Damien Katz, http://damienkatz.net/2005/01/formula-engine-rewrite.html
  • 4. Option Declare WichtigsteCodezeile in LotusScript Option Declare “zwingt” zumDeklarierenallerVariablen und erspart das Beseitigen von schwerauffindbarenFehlern AlleFehlersind runtime Fehler
  • 5. Option Declare OHNE „Option Declare“ MIT„OptionDeclare“
  • 6. Option Declare Der wichtigste Grund, warum wir „Option Declare“ verwenden MÜSSEN, ist …
  • 7. Option Declare Every time you don‘t use „Option Declare“, God will kill a kitten !!
  • 8. Option Base Sets the default lower bound for array subscripts to 0 or 1
  • 9. Dim Statement Erstellt eine Referenz zu einem Objekt, ohne das Objekt zu erstellen Achtung: Dim i, j, k As Integer Dim i As Integer, j As Integer, k As Integer
  • 10. Dim Statement und Performance Ausführungszeiten messen mit Getthreadinfo Wird z.B. ein Integerwert in einem Variant gespeichert, so muss Notes intern eine Typumwandlung vornehmen. Das kostet Zeit !! DEMO: DIM - Zeitschleife
  • 11. GetNextDocument vs. GetNthDocument 16.260 Dokumente 10 Testläufe / Methode Tabelle zeigt die Durchschnittswerte
  • 12. GetNextDocument vs. GetNthDocument 113.610 Dokumente 4 Testläufe / Methode Tabelle zeigt die Durchschnittswerte DEMO - GetNextDocument vs. GetNthDocument
  • 13. Script / Comment Templates Einheitlicher Aufbau von Codesegmenten
  • 14. Fonts / Colors Individuelle Einstellungen für bessere Lesbarkeit
  • 16. Sessionempfehlung Anita DungerEinführung in die neue Designer-Umgebung ( Hands On, Dienstag 9:00 – 10:30 ) Julian BussVersionskontrolle mit dem Domino Designer( direkt im Anschluss an diese Session )
  • 17. Soft-Coded Field Names One of the worst traps in LotusScript is using hard-coded field names. LotusScript makes it simple to hard code field names, because of its support for extended attributes of the NotesDocument class. The LotusScript documentation even describes this as a feature, though you should avoid it like the plague.
  • 18. Logging Kein Code ist absolut fehlerfrei! Auch wenn momentan keine Fehler erkennbar sind, werden Fehler auftauchen. Fehler erkennen, die von Usern nicht immer gemeldet werden. Es gibt Tools, die ein aussagekräftiges Logging mit nur wenigen Codezeilen ermöglichen. Julian Robichaux: OpenLog http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=OpenLog
  • 20. Source Sniffer Domino Designer extension Sucht in einer oder meheren Anwendungen Unterstützt Java, Javascript, Lotusscript, @Formula, Xpages http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=Source%20Sniffer
  • 22. LotusScript.doc Erstellt eine Dokumentationvon LotusScript in einer Datenbank. Syntax wieJavadoc LotusScript.doc API http://blog.lsdoc.org/ LSDoc Support to DDE http://blog.mindoo.com/web/blog.nsf/dx/22.07.2010223240KLES4H.htm?opendocument&comments, Karsten Lehmann
  • 23. Hide Design In kommerziellen Anwendungen Template „Hide Design“ Problem: keine Anpassungen von Ansichten durch den Anwender Besser ist es daher, nur Teile der Anwendung zu verbergen. In der Regel enthalten Script Bibliotheken den schützenswerten Code. %Include „xyz.lss“
  • 24. Hide Design Der lesbare Quelltext befindet sich im item $ScriptLib
  • 25. Hide Design kann Den Text im item $ScriptLib kann man löschen oder durch ein freundliches „Hello“ ersetzen. Nach dem Speichern ist der Quelltext nicht mehr sichtbar.
  • 26. NotesView.AutoUpdate = false Performancegewinn, da die Ansicht nicht kontinuierlich aktualisiert wird. Zu den technischen Hintergründen; Bob Balaban, http://bobzblog.com/tuxedoguy.nsf/dx/geek-o-terica-10-autoupdating-in-views http://www-10.lotus.com/ldd/ddwiki.nsf/dx/View.AutoUpdate_ Bei der Verwendung von NotesViewNavigator können Fehler auftreten, wenn AutoUpdate = true („Entry not found in Index“) Andre Guirard, http://www-10.lotus.com/ldd/bpmpblog.nsf/dx/autoupdate-false
  • 27. @WhichFolders Neu ab 8.5.1 Nur in Ansichtsspalten zu verwenden Option „Maintainfolderunreadinformation“ muß aktiviert sein Option „ Don'tmaintainUnreadmarks“ darf nicht aktiviert sein“
  • 28. @WhichFolders in LotusScript I db.FolderReferencesEnabled = True $FolderInfo und $FolderRefInfo Ansichten können aus der Mailschablone kopiert werden Demo: @WhichFolders in LS I
  • 29. @WhichFolders in LotusScript II CreateViewNavFrom Keine zusätzlichen Designelemente erforderlich Aber langsam bei einer großen Ordneranzahl Demo: @WhichFolders in LS II
  • 30. @Command( [DiscoverFolders];title) Wie @WhichFolders mit zusätzlichen Möglichkeiten, um die Ordnereigenschaften eines Dokuments zu ändern. Uncheck „Don‘tmaintainunreadmarks“
  • 31. @Transform Seit Version 6 Entspricht LotusScriptstatementForAll x in Liste Führt eine Formel für jedes Element der Liste aus. @Transform(list ; variableName ; formula ) Rückgabewert ist die durch die Formel modifizierte Liste Kann in Ansichtenspalten verwendet werden
  • 32. @Transform (Sample) Names.nsf - Peopley Client Version Unübersichtlich, da alle Versionen dargestellt werden.
  • 33. Peopley Client Version (new) Mit wenigen Handgriffen Ordnung schaffen
  • 34. @Nothing Seit Version 6 Lt. Designer Hilfe nur mit @Transform zu verwendbar ( „not valid in othercontext“ ) Funktioniert aber z.B auch in View Selection
  • 35. @Sort Sortiert eine Liste [ACCENTSENSITIVE] [ACCENTINSENSITIVE] [ASCENDING] [CASESENSITIVE] [CASEINSENSITIVE] [CUSTOMSORT] [DESCENDING] [PITCHSENSITIVE] [PITCHINSENSITiVE] Dies lässt sich auch kombinieren [ASCENDING]:[CASESENSITIVE]
  • 36. @Sort @Sort kann aber noch mehr – [CustomSort]
  • 37. @UpdateFormulaContext Ändert den Kontext einer Formel Nachfolgende Befehle werden im neuen Kontext ausgeführt
  • 38. @Now + [NoCache] [SERVERTIME] ermöglicht die Abfrage von @Now für einen Server oder eine Liste von Servern. Problem: Änderung der Systemzeit @Now fragt die Zeit beim ersten Aufruf ab und cached diesen Wert. Bei weiteren Aufrufen wird nur die Zeit seit dem ersten Aufruf zum Wert im Cache addiert. [NOCACHE] umgeht dieses Problem Nicht dokumentiert; noch nicht
  • 39. Get the current location name @LocationGetInfo @LocationGetInfo([HomeServer]) @LocationGetInfo([InternetMailAddress]) @LocationGetInfo([NamePreference]) @LocationGetInfo([BookmarksFilename]) @LocationGetInfo([SametimeServer]) @LocationGetInfo([UNID]) http://www.thenorth.com/apblog4.nsf/0/60C5A5C6540A2D648525719F0012BDED
  • 40. Get the current location name @LocationGetInfo([FullName]) @LocationGetInfo([AbbreviatedName]) Damit erhalten wir Zugriff auf JEDES beliebige Feld in der aktuellen Arbeitsumgebung
  • 41. @GetMachineInfo (8.5.3) New @Function to support MachineSpecificPolicy Settings asof Notes / Domino 8.5.3
  • 42. @GetMachineInfo vs. @Environment @GetMachineInfo([EnvVariable];"Location"); Liefert den gewünschten Wert für alle Variablen in der notes.ini zurück Egal ob mit „$“ oder ohne Kann keine Werte setzen @Environment(„Location“) Liefert nur Variablen mit „$“ zurück ($DDM_SERVER) Kann auch Werte in der notes.ini setzen
  • 43. @CheckFormulaSyntax Überprüft Formeln Zeigt den Fehler konkret an
  • 44. @CheckFormulaSyntax (LotusScript) Verwendet LotusScript EVALUATE DEMO - CheckFormula
  • 45. @BusinessDays Ermittelt die Anzahl von Werktagen in einem Datumsbereich Bestimmte Tage können als Werktage ausgeschlossen werden Ebenso lassen sich Feiertage als Werktage ausschließen Beispiel: Der Wert eines Items soll auf einen Wert @Today + 3 Tage gesetzt werden. Dabei sollen die Wochenenden und bestimmte Datumswerte nicht als Werktage gelten. @BusinessDays wird in XPages nicht unterstützt
  • 46. @BusinessDays (LS) Evaluate zur Einbindung von @BusinessDays in LS
  • 47. @DbLookup + [FailSilent] Keine Fehlermeldung, wenn keine Entsprechung in der Ansicht gefunden wird @DbLookup(""; ""; "All"; Source; 2;[FailSilent])
  • 48. [ReturnDocumentUniqueID] Gibt die DocumentUNID eines @DBLookup Ergebnisses zurück @DbLookup(""; ""; "All"; “test”; 1; [FailSilent]:[ReturnDocumentUniqueID]); Macht eine zusätzlicheAnsichtmit einer Spaltenformel@Text(@DocumentUniqueID) überflüssig
  • 49. @ConfigFile Wo ist die notes.ini? @Prompt([OK];“notes.ini path“;@configfile) Notes.ini bearbeiten @Command([Execute];"notepad"; @configfile)
  • 50. Programmatic Use Wozu ist die Eigenschaft „Programmatic Use“ da? Keine Redundanz komplizierterSpaltenformeln. Das Ergebnis einer Berechnung kann in einer anderen Spalte verwendet werden Andre Guirard  http://www-10.lotus.com/ldd/ddwiki.nsf/dx/colprognames.htm
  • 51. Permutation Comparison In HideFormulas Element nicht anzeigen, wenn User nicht mindestens eine der Rollen hat. @IsNotMember("[GloAdmin]"; @UserRoles) & @IsNotMember("[GloEditor]"; @UserRoles) Läßt sich kürzen auf: @IsNotMember("[GloAdmin]" : "[GloEditor]"; @UserRoles) Noch kürzer !("[GloAdmin]" : "[GloEditor]" *= @UserRoles)
  • 52. Get Rules From Users Mailfile User mögen Regeln, aber nicht unsere. User erstellen Regel, viele, sehr viele Regeln. Aber welche Regeln haben die User denn erstellt? http://www.eknori.de/2007-02-13/get-rules-from-users-mailfile/
  • 53. Mail Rules Extended Regelnhabenstarre, vorgegebeneBedingungen
  • 54. Mail Rules Extended Der Client speichert die Regeln im Kalenderprofil Auf dem Server werden die Regeln in “mailrule” Dokumenten gespeichert
  • 55. Mail Rules Extended Mehr Möglichkeiten bei der Regelerstellung Erfordert Änderung an names.nsf Kein grosser Aufwand beim Upgrade
  • 56. Tweak Auto-Populated Groups EinfacheErweiterung in names.nsf Create a new subform Create a new field on the subform ( SelectionCriteria, Text, Editable ) Give it the name Custom and an alias starting with $AutoPopulate followed by a number of your choice ( i.e. 9999) Save the subform http://www.eknori.de/2008-06-10/tweak-the-auto-populated-groups-feature-in-domino-85/
  • 57. How to get rid of $UpdatedBy? Unter Umständen sollen die Bearbeiter eines Dokuments nicht sichtbar sein.
  • 58. @AdminDelegateMailFile Erstellt Administrationsprocess Unterzeichner muss Owner der Maildatei sein (!)
  • 59. Custom Administration Process Fehlende Funktionen hinzufügen Z.B. : User aus Gruppe entfernen Verlagerung administrativer Aufgaben in den Servicedesk NotesAdministrationProcessclass Seit Release 6 AddGroupMembersmethod aber keine RemoveGroupMembersmethod
  • 61. Custom Administration Process admin4.nsf anpassen ( neue Maske )
  • 62. Custom Administration Process admin4.nsf anpassen ( Ansichten ) Neue Ansicht erstellen oder Spalte „Action“ anpassen
  • 63. Zip and Unzip Verwendung von ZIP/UNZIP mitLotusScript Kostenlos http://www.vcode.no/vcode.nsf/downloads/VCZIPSUP
  • 64. Auto-Zip Mail Attachments Anhänge werden beim Versenden automatisch gepackt Genaue Beschreibung der Anpassungen im Lotus Notes & Domino Wiki http://www-10.lotus.com/ldd/dominowiki.nsf/page.xsp?documentId=7963EB58BAD528FB852577AE0062A72A&action=openDocument&mode=original
  • 65. XLS ohne Excel erstellen Reports sollen auf einem Server erstellt werden, auf dem kein Excel installiert ist. ( Linux ) http://jxls.sourceforge.net/index.html Support for Excel 2007 OOXML (.xlsx) fileformat
  • 66. XLS ohne Excel erstellen
  • 67. Lotus SymphonyToolkit %Include"symphonylsx.lss„ OpenNTF.org Contacts Experience http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=OpenNTF.org%20Contacts%20Experience MailMerge Letter Export Contacts Symphony MS Office
  • 68. Wurde das Dokument gelesen? doc.GetRead([username]) Ab Release 8.5 Gibt „true“ zurück, wenn das Dokument vom aktuellen User gelesen wurde Wird ein Username angegeben, wird der Lesestatus dieses Users zurückgegeben
  • 69. @Midas Lookups Ben Langhinrichs ( geniisoftware ) Auslesen von Daten aus RichText Syntax wie @DBColumn und @DBLookup Free download: http://www.geniisoft.com/showcase.nsf/MidasLookups
  • 70. @Midas Lookups Erweiterte Möglichkeiten Beispiel: Sortierte Ausgabe aller Listenpunkte
  • 71. Ist RichText Item leer?? @Length(@Text(body))-1 @Attachments rtitem.ValueLength rtitem.EmbeddedObjects Attachments OK Aber: Doclinks, Inline Images, Hotspots (Button)
  • 72. Ist RichText Item leer? DEMO - Is Item empty?
  • 73. Arbeiten mit RichText C/C++ API oder LS2CAPI NormundsKalbernzin LotusScript to Lotus C API Programming Guide ( ls2capi.com ) Lee Powell LotusScriptor'sPlain Simple Guide to the Lotus Notes C++ API Download : http://www.eknori.de/downloads/capibook.pdf EthannCastell Gettingstartedwith the C-API Controlrichtextcontentwithprecisionusing the C-API The View, 09 / 11 , 2007
  • 74. Einordnung der C-API Lotus Script Visual Basic (COM) JAVA JNI Notes Object Interface (NOI) C++ API Notes Core ( C API ) Betriebssystem
  • 75. Ist RichText Item leer? LS2CAPI to the rescue! Leeres RTI besitzt nur einen CDRecord von Typ Text
  • 76. Header / Footer Erstellen / Ändern Anwendungseigenschaften ( global ) Dokumenteneigenschaften Keine Möglichkeit über @Formel oder LotusScript
  • 77. Header / Footer Informationen sind in RichText item gespeichert
  • 78. Header / Footer LotusScript Library / LS2CAPI
  • 79. Inline Images Auf Inline Images kann nicht über die embedded objects Eigenschaft zugegriffen werden Inline Images werden z.B. nicht bei DAOS berücksichtigt. Es gibt keine Methoden, um Inline Images mit LotusScript so umzuwandeln, daß sie als Anhang im Dokument gespeichert werden.
  • 80. Inline Images Wie ist ein Inline Image gespeichert ?
  • 81. Inline Images Andre Guirard http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=LotusScript%20Gold%20Collection
  • 82. Inline Images rtLib: framework of LotusScript classes to work with Notes Rich Text on 32-bit versions of Domino on AIX, Solaris (SPARC), Linux, MacOS, OS X (currently PowerPC only) and Windows. NormundsKalnberzins http://www.rtlib.com/
  • 83. ReplaceInline Image Bilder, die aus der Zwischenablage in ein Dokument eingefügt werden, werden bei DAOS nicht berücksichtigt. Methoden zum Umwandeln in ein Attachment gibt es in Lotus Notes nicht. Funktion muss folgende Voraussetzungen erfüllen Umwandeln des inline image in ein Attachment Ersetzen des inline image durch das Attachment Beibehalten der Position
  • 84. ReplaceInline Image Das Attachment wird an die Position des Inline Image gesetzt.
  • 86. Insert RichtextintoRichtext notesRichTextRange.FindAndReplace( target$ , replacement$ , [ options& ] ) Damit lässt sich aber nur Text innerhalb von RichText finden und ersetzen Für das Einfügen eines kompletten RichText Items oder Teile davon an eine definierte Stelle in einem anderen RichText Item gibt es keine Methode.
  • 89. JW Player - Mediaplayer JW Player: Ein paar Zeilen Code für einen Mediaplayer für Flash und HTML5 support Skins, Plugins und Playlists http://www.longtailvideo.com/players/
  • 90. JW Player - Mediaplayer
  • 91. jQuery freie, umfangreiche JavaScript-Klassenbibliothek, welche komfortable Funktionen zur DOM-Manipulation und -Navigation zur Verfügung stellt http://www.reizkraft.com/content/die-43-sch%C3%B6nsten-jquery-plugins-f%C3%BCr-webdesign Animatedgifcreatedwith http://picasion.com/
  • 92. UIZE – JavaScript Framework „You Eyes“ OpenSource, MIT oder GNU GPL Unterstützung von … Widgets, Ajax, DOM, Templates … Mobile Devices http://www.uize.com/
  • 93. UIZE – JavaScript Framework Sample : Resizer
  • 94. Xpages und @Formula Nur 97 der 274 @Formeln können in SSJS verwendet werden http://www-10.lotus.com/ldd/ddwiki.nsf/dx/List_of_Formula_Not_Supported_In_XPages Michael Gollmick hat ein paar Formeln umgesetzt @WebDBName http://blog.gollmick.de/mgoblog.nsf/40f2c735481f54dd80256d650047636c/0687660450ad65bdc125754a008357ce?OpenDocument @URLEncode, @URLDecode http://blog.gollmick.de/mgoblog.nsf/dx/some-more-Functions-for-XPages-URLEncode-URLDecode.htm
  • 95. Q + A Mail: eknori@eknori.de Blog: http://www.eknori.de Sametime: Bleedyellow.com Twitter: Eknori