SlideShare ist ein Scribd-Unternehmen logo
DNUG Konferenz: Wie werden wir morgen arbeiten? Social Business becomes real.




  35. DNUG Konferenz

   Wie werden wir morgen arbeiten?
   The Lotus Code Cookbook
   7. bis 9. November 2011
   Welcome Kongresshotel Bamberg

   Ulrich Krause, is@web, industrial services AG




    Mit freundlicher Unterstützung von:
DNUG Konferenz: Wie werden wir morgen arbeiten?




  About: Ulrich Krause
 Lotus Notes / Domino Administrator & Entwickler seit 1993
 Business Application Developer
  bei is@web, Niederlassung Ratingen
 OpenNTF http://openntf.org
    • !!HELP!!, Cebulon, Trigger Happy
    • diverse XPages Custom Controls


 IBM Champion 2011
    •   https://www-
        304.ibm.com/connections/blogs/socialbusiness/entry/announcing_the_2011_ibm_champions_for_collaboration_sol
        utions4?lang=de

 Blog http://www.eknori.de
 Notes Forum (http://www.atnotes.de)
DNUG Konferenz: Wie werden wir morgen arbeiten?




    Agenda
   Allgemeines
   Optionen des Designers
   Tools
   @Formeln
   LotusScript
   Bearbeitung von Richtext ( C-Api / LS2CAPI )
   Javascript (Frameworks)
   XPages
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Warum @Formeln verwenden ?
 Alle Sprachen verwenden die gleichen Kernfunktionen
 Bei gleicher Funktionalität sind Formeln performanter
 Nicht alle Formeln können in XPages verwendet werden.
    •   Nur 97 der insgesamt 274 Formeln
    •   http://www-10.lotus.com/ldd/ddwiki.nsf/dx/List_of_Formula_Not_Supported_In_XPages




LotusScript                           Java                         @Formula
ByteCode Interpreter                                               FormulaEngine

                                         Notes Core API
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Option Declare
 Wichtigste Codezeile in LotusScript
 Option Declare “zwingt” zum Deklarieren aller Variablen und
  erspart das Beseitigen von schwer auffindbaren Fehlern
 Alle Fehler sind runtime Fehler
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Option Declare
 Ohne Option Declare




 Mit Option Declare
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Option Declare
 Der wichtigste Grund, warum wir „Option Declare“
  verwenden MÜSSEN, ist …
DNUG Konferenz: Wie werden wir morgen arbeiten?




   Option Declare
 Every time you don„t use
  „Option Declare“, God will kill
  a kitten !!
DNUG Konferenz: Wie werden wir morgen arbeiten?




   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
DNUG Konferenz: Wie werden wir morgen arbeiten?




   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 !!
DNUG Konferenz: Wie werden wir morgen arbeiten?




   GetNextDocument vs. GetNthDocument
 16.260 Dokumente
 10 Testläufe / Methode
 Tabelle zeigt die Durchschnittswerte
DNUG Konferenz: Wie werden wir morgen arbeiten?




   GetNextDocument vs. GetNthDocument
 113.610 Dokumente
 4 Testläufe / Methode
 Tabelle zeigt die Durchschnittswerte
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Script / Comment Templates
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Fonts / Colors
 • Individuelle Einstellungen für bessere
   Lesbarkeit




                                                  http://web.nickshanks.com/fonts/microsoft-
                                                  core-web-fonts
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Zeilennummern einblenden
DNUG Konferenz: Wie werden wir morgen arbeiten?




   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.
DNUG Konferenz: Wie werden wir morgen arbeiten?




  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
DNUG Konferenz: Wie werden wir morgen arbeiten?




  OpenLog
DNUG Konferenz: Wie werden wir morgen arbeiten?




  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
DNUG Konferenz: Wie werden wir morgen arbeiten?




  NotesHound




                              http://domino-
                              80.prominic.net/A55BE4/NotesHoundWeb.nsf/web
                              pages/index.html
DNUG Konferenz: Wie werden wir morgen arbeiten?




   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
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @WhichFolders
 Neu ab 8.5.1
 Nur in Ansichtsspalten zu verwenden
 Option „Maintain folder unread
  information“ muß aktiviert sein
 Option „ Don't maintain
  Unread marks“ darf nicht
  aktiviert sein“
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @WhichFolders in LotusScript I
 db.FolderReferencesEnabled = True
 $FolderInfo und $FolderRefInfo
                 – Ansichten können aus der Mailschablone kopiert werden
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @WhichFolders in LotusScript II
 CreateViewNavFrom
 Keine zusätzlichen Designelemente erforderlich
 Aber langsam bei einer großen Ordneranzahl
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @Command( [DiscoverFolders];title)
 Wie @WhichFolders mit zusätzlichen Möglichkeiten, um
  die Ordnereigenschaften eines Dokuments zu ändern.
 Uncheck „Don„t maintain unread marks“
DNUG Konferenz: Wie werden wir morgen arbeiten?




    @Transform
   Seit Version 6
   Entspricht LotusScript statement ForAll 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
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @Transform (Sample)
 Names.nsf - PeopleBy Client Version
 Unübersichtlich, da alle
  Versionen dargestellt
  werden.
DNUG Konferenz: Wie werden wir morgen arbeiten?




  PeopleBy Client Version (new)
 Mit wenigen Handgriffen Ordnung schaffen
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @Transform + @DocFields




http://www.eknori.de/2011-07-23/formula-magic/
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @Nothing
 Seit Version 6
 Lt. Designer Hilfe nur mit @Transform zu verwendbar ( „not
  valid in other context“ )
 Funktioniert aber z.B auch in View Selection
DNUG Konferenz: Wie werden wir morgen arbeiten?




   @Sort
 Sortiert eine Liste
                  –   [ACCENTSENSITIVE]
                  –   [ACCENTINSENSITIVE]
                  –   [ASCENDING]
                  –   [CASESENSITIVE]
                  –   [CASEINSENSITIVE]
                  –   [CUSTOMSORT]
                  –   [DESCENDING]
                  –   [PITCHSENSITIVE]
                  –   [PITCHINSENSITiVE]


 Dies lässt sich auch kombinieren
                  – [ASCENDING]:[CASESENSITIVE]
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @Sort
 @Sort kann aber noch mehr – [CustomSort]
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @UpdateFormulaContext
 Ändert den Kontext einer Formel
 Nachfolgende Befehle werden
  im neuen Kontext ausgeführt
DNUG Konferenz: Wie werden wir morgen arbeiten?




  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/60C5A5C6540A2D648525719F0012BDE
DNUG Konferenz: Wie werden wir morgen arbeiten?




   Get the current location name
 @LocationGetInfo([FullName])
     •   @LocationGetInfo([AbbreviatedName])




 Damit erhalten wir Zugriff auf JEDES beliebige Feld in der
  aktuellen Arbeitsumgebung
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @GetMachineInfo (8.5.3)
 New @Function to support Machine Specific Policy Settings
  as of Notes / Domino 8.5.3
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @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
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @CheckFormulaSyntax
 Überprüft Formeln
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @CheckFormulaSyntax (LotusScript)
 • Verwendet LotusScript EVALUATE
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Und was macht IBM?
 Schade 
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @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
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @BusinessDays (LS)
 Evaluate zur Einbindung von @BusinessDays in LS
DNUG Konferenz: Wie werden wir morgen arbeiten?




   @DbLookup + [FailSilent]
 Keine Fehlermeldung, wenn keine Entsprechung in der
  Ansicht gefunden wird




 @DbLookup(""; ""; "All"; Source; 2;[FailSilent])
DNUG Konferenz: Wie werden wir morgen arbeiten?




   [ReturnDocumentUniqueID]
 Gibt die DocumentUNID eines @DBLookup Ergebnisses
  zurück

 @DbLookup(""; ""; "All"; “test”; 1;
  [FailSilent]:[ReturnDocumentUniqueID]);

 Macht eine zusätzliche Ansicht mit einer Spaltenformel
  @Text(@DocumentUniqueID) überflüssig
DNUG Konferenz: Wie werden wir morgen arbeiten?




   @ConfigFile
 Wo ist die notes.ini?
           • @Prompt([OK];“notes.ini path“;@configfile)


 Notes.ini bearbeiten
           • @Command([Execute];"
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Programmatic Use
 Wozu ist die Eigenschaft „Programmatic Use“ da?

 Keine Redundanz komplizierter
  Spaltenformeln.
  Das Ergebnis einer Berechnung
  kann in einer anderen Spalte verwendet werden
DNUG Konferenz: Wie werden wir morgen arbeiten?




   Permutation Comparison In Hide Formulas
 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)
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Mail Rules Extended
 Regeln haben starre, vorgegebene Bedingungen
DNUG Konferenz: Wie werden wir morgen arbeiten?




   Mail Rules Extended
 Der Client speichert die Regeln im Kalenderprofil
 Auf dem Server werden die Regeln in “mailrule”
  Dokumenten gespeichert
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Mail Rules Extended
 Mehr Möglichkeiten bei der Regelerstellung
 Erfordert Änderung an names.nsf
 Kein grosser Aufwand beim Upgrade
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Tweak Auto-Populated Groups
 Einfache Erweiterung 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    UPDATE 8.5.3
                                                  :http://bodek.uwindsor.ca/users/b/bodek/bodekblog.n
                                                  sf/d6plinks/BFRK-8MRPWN
DNUG Konferenz: Wie werden wir morgen arbeiten?




  How to get rid of $UpdatedBy?
 Unter Umständen sollen die
  Bearbeiter eines Dokuments nicht
  sichtbar sein.
DNUG Konferenz: Wie werden wir morgen arbeiten?




    Custom Administration Process
 Fehlende Funktionen hinzufügen
    • Z.B. : User aus Gruppe entfernen
   Verlagerung administrativer Aufgaben in den Servicedesk
   NotesAdministrationProcess class
   Seit Release 6
   AddGroupMembers method
   aber keine RemoveGroupMembers method

     LotusScript Gold Collection (1.3):
     [*] NotesGroupManager: makes it easy to scan and manage group memberships in public
     and private address books, including groups with subgroups.

     http://www.openntf.org/projects/pmt.nsf/ProjectLookup/LotusScript%20Gold%20Collection
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Custom Administration Process
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Custom Administration Process




 admin4.nsf anpassen

          • Neue Ansicht erstellen oder
          • Spalte „Action“ anpassen

http://www.eknori.de/2007-12-15/delete-group-members-using-the-administration-
process/
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Zip / UnZip
 Verwendung von ZIP/UNZIP mit LotusScript
 Kostenlos




    http://www.vcode.no/vcode.nsf/downloads/VCZIPSUP
DNUG Konferenz: Wie werden wir morgen arbeiten?




  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=7963EB58BAD528FB852577
        AE0062A72A&action=openDocument&mode=original
DNUG Konferenz: Wie werden wir morgen arbeiten?




  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) file format
DNUG Konferenz: Wie werden wir morgen arbeiten?




  XLS ohne Excel erstellen
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Lotus Symphony Toolkit
 %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
DNUG Konferenz: Wie werden wir morgen arbeiten?




  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
DNUG Konferenz: Wie werden wir morgen arbeiten?




  @Midas Lookups
 Ben Langhinrichs ( genii software )
 Auslesen von Daten aus RichText
 Syntax wie @DBColumn und @DBLookup




Free download: http://www.geniisoft.com/showcase.nsf/MidasLookups
DNUG Konferenz: Wie werden wir morgen arbeiten?




   @Midas Lookups
 Erweiterte Möglichkeiten
 Beispiel: Sortierte Ausgabe aller Listenpunkte
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Ist RichText Item leer??
 @Length(@Text(body))-1

 @Attachments

 rtitem.ValueLength

 rtitem.EmbeddedObjects
          • Attachments OK
          • Aber: Doclinks, Inline Images, Hotspots (Button)
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Ist RichText Item leer?
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Arbeiten mit RichText
 C/C++ API oder LS2CAPI
 Normunds Kalbernzin
          • LotusScript to Lotus
            C API Programming Guide ( ls2capi.com )
 Lee Powell
          • LotusScriptor's Plain Simple Guide to the
            Lotus Notes C++ API
          • Download :
            http://www.eknori.de/downloads/capibook.pdf
 Ethann Castell
          • Getting started with the C-API
          • Control rich text content with precision using the C-API
          • The View, 09 / 11 , 2007
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Einordnung der C-API

              JAVA                                 Lotus Script            Visual Basic (COM)


     JNI

                                                  Notes Object Interface (NOI)

                                                    C++ API

                                           Notes Core ( C API )




                                             Betriebssystem
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Ist RichText Item leer?
 LS2CAPI to the rescue!
    • Leeres RTI besitzt nur einen CDRecord von Typ Text
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Header / Footer
 Erstellen / Ändern
    • Anwendungseigenschaften ( global )
    • Dokumenteneigenschaften
 Keine Möglichkeit über @Formel oder LotusScript
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Header / Footer
 Informationen sind in RichText item gespeichert
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Header / Footer
 LotusScript Library / LS2CAPI
DNUG Konferenz: Wie werden wir morgen arbeiten?




  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.
DNUG Konferenz: Wie werden wir morgen arbeiten?




   Inline Images
 Wie ist ein Inline Image gespeichert ?
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Inline Images




                                                  Andre Guirard

                                                  http://www.openntf.org/internal/home.
                                                  nsf/project.xsp?action=openDocument
                                                  &name=LotusScript%20Gold%20Coll
                                                  ection
DNUG Konferenz: Wie werden wir morgen arbeiten?




  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.




 Normunds Kalnberzins http://www.rtlib.com/
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Replace Inline 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
DNUG Konferenz: Wie werden wir morgen arbeiten?




   Replace Inline Image




Das Attachment wird an die
Position des Inline Image gesetzt.
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Insert Richtext into Richtext
 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.
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Insert Richtext into Richtext
DNUG Konferenz: Wie werden wir morgen arbeiten?




  Insert Richtext into Richtext
DNUG Konferenz: Wie werden wir morgen arbeiten?




  JW Player - Mediaplayer
 JW Player: Ein paar Zeilen Code für einen Mediaplayer für
  Flash und HTML5 support
 Skins




 http://www.longtailvideo.com/players/
DNUG Konferenz: Wie werden wir morgen arbeiten?




  JW Player - Mediaplayer
DNUG Konferenz: Wie werden wir morgen arbeiten?




  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
  Animated gif created with http://picasion.com/
DNUG Konferenz: Wie werden wir morgen arbeiten?




  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/0
                   687660450ad65bdc125754a008357ce?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?

Build Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessBuild Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build Prozess
Ralf Abramowitsch
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
Steven Grzbielok
 
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbHEntwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
stijink
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Gregor Biswanger
 
Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007
smancke
 
Ajax In Domino Web Anwendungen Der Naechste Schritt
Ajax In Domino Web Anwendungen Der Naechste SchrittAjax In Domino Web Anwendungen Der Naechste Schritt
Ajax In Domino Web Anwendungen Der Naechste Schritt
dominion
 
Ant im Detail
Ant im DetailAnt im Detail
Ant im Detail
Jörn Dinkla
 
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsAber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Gregor Biswanger
 
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
punkt.de GmbH
 
Einstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSetEinstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSet
Ralf Abramowitsch
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloaded
René Winkelmeyer
 
Browser Plug-In Notes 9 SE
Browser Plug-In Notes 9 SEBrowser Plug-In Notes 9 SE
Browser Plug-In Notes 9 SE
Ralph Belfiore
 
TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-ProjektenTYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
Alex Kellner
 
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
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-Ära
enpit GmbH & Co. KG
 
DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011
Ulrich Krause
 
Perl Renaissance Reloaded
Perl Renaissance ReloadedPerl Renaissance Reloaded
Perl Renaissance Reloaded
Gregor Goldbach
 
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantDeployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Christoph Möller
 
Virtualisierung 2008/2009 - eine Standorbestimmung
Virtualisierung 2008/2009 - eine StandorbestimmungVirtualisierung 2008/2009 - eine Standorbestimmung
Virtualisierung 2008/2009 - eine Standorbestimmung
Henning Sprang
 
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Informatik Aktuell
 

Was ist angesagt? (20)

Build Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessBuild Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build Prozess
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
 
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbHEntwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
 
Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007
 
Ajax In Domino Web Anwendungen Der Naechste Schritt
Ajax In Domino Web Anwendungen Der Naechste SchrittAjax In Domino Web Anwendungen Der Naechste Schritt
Ajax In Domino Web Anwendungen Der Naechste Schritt
 
Ant im Detail
Ant im DetailAnt im Detail
Ant im Detail
 
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsAber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
 
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
 
Einstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSetEinstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSet
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloaded
 
Browser Plug-In Notes 9 SE
Browser Plug-In Notes 9 SEBrowser Plug-In Notes 9 SE
Browser Plug-In Notes 9 SE
 
TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-ProjektenTYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
 
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
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-Ära
 
DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011
 
Perl Renaissance Reloaded
Perl Renaissance ReloadedPerl Renaissance Reloaded
Perl Renaissance Reloaded
 
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantDeployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
 
Virtualisierung 2008/2009 - eine Standorbestimmung
Virtualisierung 2008/2009 - eine StandorbestimmungVirtualisierung 2008/2009 - eine Standorbestimmung
Virtualisierung 2008/2009 - eine Standorbestimmung
 
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
 

Andere mochten auch

AdminCamp 2011 Performance
AdminCamp 2011 PerformanceAdminCamp 2011 Performance
AdminCamp 2011 Performance
Ulrich Krause
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
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
 
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
 
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
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
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
 
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
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
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
Ulrich Krause
 
XPages Performance
XPages PerformanceXPages Performance
XPages Performance
Ulrich Krause
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPages
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
 
Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)
Ulrich Krause
 
Reims table multimedia
Reims table multimediaReims table multimedia
Reims table multimedia
Jeff Simon
 
Basic parliamentary procedures bilingual presentation sept 2012
Basic parliamentary procedures  bilingual presentation sept  2012Basic parliamentary procedures  bilingual presentation sept  2012
Basic parliamentary procedures bilingual presentation sept 2012
OntarioEast
 
Portafolio
PortafolioPortafolio
Portafolio
maggyyy
 
Empaques
EmpaquesEmpaques
Consultoria una profecion
Consultoria una profecionConsultoria una profecion
Consultoria una profecion
maggyyy
 
Mmm
MmmMmm

Andere mochten auch (20)

AdminCamp 2011 Performance
AdminCamp 2011 PerformanceAdminCamp 2011 Performance
AdminCamp 2011 Performance
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVC
 
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!
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
 
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
 
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
 
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
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
 
XPages Performance
XPages PerformanceXPages Performance
XPages Performance
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPages
 
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
 
Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)
 
Reims table multimedia
Reims table multimediaReims table multimedia
Reims table multimedia
 
Basic parliamentary procedures bilingual presentation sept 2012
Basic parliamentary procedures  bilingual presentation sept  2012Basic parliamentary procedures  bilingual presentation sept  2012
Basic parliamentary procedures bilingual presentation sept 2012
 
Portafolio
PortafolioPortafolio
Portafolio
 
Empaques
EmpaquesEmpaques
Empaques
 
Consultoria una profecion
Consultoria una profecionConsultoria una profecion
Consultoria una profecion
 
Mmm
MmmMmm
Mmm
 

Ähnlich wie Dnug35 ak-dev.071111-cookbook

Dnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsessionDnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsession
Oliver Busse
 
Rex - Infrastruktur als Code
Rex - Infrastruktur als CodeRex - Infrastruktur als Code
Rex - Infrastruktur als Code
Jan Gehring
 
The pain of choice - Important libs for C# developers
The pain of choice - Important libs for C# developersThe pain of choice - Important libs for C# developers
The pain of choice - Important libs for C# developers
FDeitelhoff
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJS
Sebastian Springer
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
Oliver Zeigermann
 
Templates, Code & Tools
Templates, Code & ToolsTemplates, Code & Tools
Templates, Code & Tools
Ulrich Krause
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
QAware GmbH
 
objectiF extrem
objectiF extremobjectiF extrem
objectiF extrem
Olaf Lewitz
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
Ulrich Krause
 
Config as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as CodeConfig as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as Code
DevOps Meetup Bern
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and Operations
Torsten Kleiber
 
Kennen sie schon - Important tools for C# developers
Kennen sie schon - Important tools for C# developersKennen sie schon - Important tools for C# developers
Kennen sie schon - Important tools for C# developers
FDeitelhoff
 
Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1
Gregor Biswanger
 
Yes zu NoSQL mit MongoDB für .NET-Entwickler
Yes zu NoSQL mit MongoDB für .NET-EntwicklerYes zu NoSQL mit MongoDB für .NET-Entwickler
Yes zu NoSQL mit MongoDB für .NET-Entwickler
Gregor Biswanger
 
Microsoft und die Open Source Community - Leaving the death star behind
Microsoft und die Open Source Community - Leaving the death star behindMicrosoft und die Open Source Community - Leaving the death star behind
Microsoft und die Open Source Community - Leaving the death star behind
Christian Heilmann
 
Werkzeugkasten
WerkzeugkastenWerkzeugkasten
Werkzeugkasten
Hendrik Lösch
 
Bob the Builder - Build & Deploy von ADF Enterprise Anwendungen
Bob the Builder - Build & Deploy von ADF Enterprise AnwendungenBob the Builder - Build & Deploy von ADF Enterprise Anwendungen
Bob the Builder - Build & Deploy von ADF Enterprise Anwendungen
Torsten Kleiber
 
mongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - GrundlagenmongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - Grundlagen
inovex GmbH
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrant
s0enke
 
TDD für Testmuffel
TDD für TestmuffelTDD für Testmuffel
TDD für Testmuffel
Hendrik Lösch
 

Ähnlich wie Dnug35 ak-dev.071111-cookbook (20)

Dnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsessionDnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsession
 
Rex - Infrastruktur als Code
Rex - Infrastruktur als CodeRex - Infrastruktur als Code
Rex - Infrastruktur als Code
 
The pain of choice - Important libs for C# developers
The pain of choice - Important libs for C# developersThe pain of choice - Important libs for C# developers
The pain of choice - Important libs for C# developers
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJS
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
 
Templates, Code & Tools
Templates, Code & ToolsTemplates, Code & Tools
Templates, Code & Tools
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
objectiF extrem
objectiF extremobjectiF extrem
objectiF extrem
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 
Config as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as CodeConfig as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as Code
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and Operations
 
Kennen sie schon - Important tools for C# developers
Kennen sie schon - Important tools for C# developersKennen sie schon - Important tools for C# developers
Kennen sie schon - Important tools for C# developers
 
Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1
 
Yes zu NoSQL mit MongoDB für .NET-Entwickler
Yes zu NoSQL mit MongoDB für .NET-EntwicklerYes zu NoSQL mit MongoDB für .NET-Entwickler
Yes zu NoSQL mit MongoDB für .NET-Entwickler
 
Microsoft und die Open Source Community - Leaving the death star behind
Microsoft und die Open Source Community - Leaving the death star behindMicrosoft und die Open Source Community - Leaving the death star behind
Microsoft und die Open Source Community - Leaving the death star behind
 
Werkzeugkasten
WerkzeugkastenWerkzeugkasten
Werkzeugkasten
 
Bob the Builder - Build & Deploy von ADF Enterprise Anwendungen
Bob the Builder - Build & Deploy von ADF Enterprise AnwendungenBob the Builder - Build & Deploy von ADF Enterprise Anwendungen
Bob the Builder - Build & Deploy von ADF Enterprise Anwendungen
 
mongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - GrundlagenmongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - Grundlagen
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrant
 
TDD für Testmuffel
TDD für TestmuffelTDD für Testmuffel
TDD für Testmuffel
 

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
 
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
 
Ccd
CcdCcd
AdminCamp2010, Closing General Session
AdminCamp2010, Closing General SessionAdminCamp2010, Closing General Session
AdminCamp2010, Closing General Session
Ulrich Krause
 
Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1
Ulrich Krause
 
Compact, Compress, De-DUplicate
Compact, Compress, De-DUplicateCompact, Compress, De-DUplicate
Compact, Compress, De-DUplicate
Ulrich Krause
 
Daos
DaosDaos

Mehr von Ulrich Krause (8)

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
 
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
 
Ccd
CcdCcd
Ccd
 
AdminCamp2010, Closing General Session
AdminCamp2010, Closing General SessionAdminCamp2010, Closing General Session
AdminCamp2010, Closing General Session
 
Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1
 
Compact, Compress, De-DUplicate
Compact, Compress, De-DUplicateCompact, Compress, De-DUplicate
Compact, Compress, De-DUplicate
 
Daos
DaosDaos
Daos
 

Dnug35 ak-dev.071111-cookbook

  • 1. DNUG Konferenz: Wie werden wir morgen arbeiten? Social Business becomes real. 35. DNUG Konferenz Wie werden wir morgen arbeiten? The Lotus Code Cookbook 7. bis 9. November 2011 Welcome Kongresshotel Bamberg Ulrich Krause, is@web, industrial services AG Mit freundlicher Unterstützung von:
  • 2. DNUG Konferenz: Wie werden wir morgen arbeiten? About: Ulrich Krause  Lotus Notes / Domino Administrator & Entwickler seit 1993  Business Application Developer bei is@web, Niederlassung Ratingen  OpenNTF http://openntf.org • !!HELP!!, Cebulon, Trigger Happy • diverse XPages Custom Controls  IBM Champion 2011 • https://www- 304.ibm.com/connections/blogs/socialbusiness/entry/announcing_the_2011_ibm_champions_for_collaboration_sol utions4?lang=de  Blog http://www.eknori.de  Notes Forum (http://www.atnotes.de)
  • 3. DNUG Konferenz: Wie werden wir morgen arbeiten? Agenda  Allgemeines  Optionen des Designers  Tools  @Formeln  LotusScript  Bearbeitung von Richtext ( C-Api / LS2CAPI )  Javascript (Frameworks)  XPages
  • 4. DNUG Konferenz: Wie werden wir morgen arbeiten? Warum @Formeln verwenden ?  Alle Sprachen verwenden die gleichen Kernfunktionen  Bei gleicher Funktionalität sind Formeln performanter  Nicht alle Formeln können in XPages verwendet werden. • Nur 97 der insgesamt 274 Formeln • http://www-10.lotus.com/ldd/ddwiki.nsf/dx/List_of_Formula_Not_Supported_In_XPages LotusScript Java @Formula ByteCode Interpreter FormulaEngine Notes Core API
  • 5. DNUG Konferenz: Wie werden wir morgen arbeiten? Option Declare  Wichtigste Codezeile in LotusScript  Option Declare “zwingt” zum Deklarieren aller Variablen und erspart das Beseitigen von schwer auffindbaren Fehlern  Alle Fehler sind runtime Fehler
  • 6. DNUG Konferenz: Wie werden wir morgen arbeiten? Option Declare  Ohne Option Declare  Mit Option Declare
  • 7. DNUG Konferenz: Wie werden wir morgen arbeiten? Option Declare  Der wichtigste Grund, warum wir „Option Declare“ verwenden MÜSSEN, ist …
  • 8. DNUG Konferenz: Wie werden wir morgen arbeiten? Option Declare  Every time you don„t use „Option Declare“, God will kill a kitten !!
  • 9. DNUG Konferenz: Wie werden wir morgen arbeiten? 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. DNUG Konferenz: Wie werden wir morgen arbeiten? 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 !!
  • 11. DNUG Konferenz: Wie werden wir morgen arbeiten? GetNextDocument vs. GetNthDocument  16.260 Dokumente  10 Testläufe / Methode  Tabelle zeigt die Durchschnittswerte
  • 12. DNUG Konferenz: Wie werden wir morgen arbeiten? GetNextDocument vs. GetNthDocument  113.610 Dokumente  4 Testläufe / Methode  Tabelle zeigt die Durchschnittswerte
  • 13. DNUG Konferenz: Wie werden wir morgen arbeiten? Script / Comment Templates
  • 14. DNUG Konferenz: Wie werden wir morgen arbeiten? Fonts / Colors • Individuelle Einstellungen für bessere Lesbarkeit http://web.nickshanks.com/fonts/microsoft- core-web-fonts
  • 15. DNUG Konferenz: Wie werden wir morgen arbeiten? Zeilennummern einblenden
  • 16. DNUG Konferenz: Wie werden wir morgen arbeiten? 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.
  • 17. DNUG Konferenz: Wie werden wir morgen arbeiten? 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
  • 18. DNUG Konferenz: Wie werden wir morgen arbeiten? OpenLog
  • 19. DNUG Konferenz: Wie werden wir morgen arbeiten? 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
  • 20. DNUG Konferenz: Wie werden wir morgen arbeiten? NotesHound http://domino- 80.prominic.net/A55BE4/NotesHoundWeb.nsf/web pages/index.html
  • 21. DNUG Konferenz: Wie werden wir morgen arbeiten? 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
  • 22. DNUG Konferenz: Wie werden wir morgen arbeiten? @WhichFolders  Neu ab 8.5.1  Nur in Ansichtsspalten zu verwenden  Option „Maintain folder unread information“ muß aktiviert sein  Option „ Don't maintain Unread marks“ darf nicht aktiviert sein“
  • 23. DNUG Konferenz: Wie werden wir morgen arbeiten? @WhichFolders in LotusScript I  db.FolderReferencesEnabled = True  $FolderInfo und $FolderRefInfo – Ansichten können aus der Mailschablone kopiert werden
  • 24. DNUG Konferenz: Wie werden wir morgen arbeiten? @WhichFolders in LotusScript II  CreateViewNavFrom  Keine zusätzlichen Designelemente erforderlich  Aber langsam bei einer großen Ordneranzahl
  • 25. DNUG Konferenz: Wie werden wir morgen arbeiten? @Command( [DiscoverFolders];title)  Wie @WhichFolders mit zusätzlichen Möglichkeiten, um die Ordnereigenschaften eines Dokuments zu ändern.  Uncheck „Don„t maintain unread marks“
  • 26. DNUG Konferenz: Wie werden wir morgen arbeiten? @Transform  Seit Version 6  Entspricht LotusScript statement ForAll 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
  • 27. DNUG Konferenz: Wie werden wir morgen arbeiten? @Transform (Sample)  Names.nsf - PeopleBy Client Version  Unübersichtlich, da alle Versionen dargestellt werden.
  • 28. DNUG Konferenz: Wie werden wir morgen arbeiten? PeopleBy Client Version (new)  Mit wenigen Handgriffen Ordnung schaffen
  • 29. DNUG Konferenz: Wie werden wir morgen arbeiten? @Transform + @DocFields http://www.eknori.de/2011-07-23/formula-magic/
  • 30. DNUG Konferenz: Wie werden wir morgen arbeiten? @Nothing  Seit Version 6  Lt. Designer Hilfe nur mit @Transform zu verwendbar ( „not valid in other context“ )  Funktioniert aber z.B auch in View Selection
  • 31. DNUG Konferenz: Wie werden wir morgen arbeiten? @Sort  Sortiert eine Liste – [ACCENTSENSITIVE] – [ACCENTINSENSITIVE] – [ASCENDING] – [CASESENSITIVE] – [CASEINSENSITIVE] – [CUSTOMSORT] – [DESCENDING] – [PITCHSENSITIVE] – [PITCHINSENSITiVE]  Dies lässt sich auch kombinieren – [ASCENDING]:[CASESENSITIVE]
  • 32. DNUG Konferenz: Wie werden wir morgen arbeiten? @Sort  @Sort kann aber noch mehr – [CustomSort]
  • 33. DNUG Konferenz: Wie werden wir morgen arbeiten? @UpdateFormulaContext  Ändert den Kontext einer Formel  Nachfolgende Befehle werden im neuen Kontext ausgeführt
  • 34. DNUG Konferenz: Wie werden wir morgen arbeiten? 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/60C5A5C6540A2D648525719F0012BDE
  • 35. DNUG Konferenz: Wie werden wir morgen arbeiten? Get the current location name  @LocationGetInfo([FullName]) • @LocationGetInfo([AbbreviatedName])  Damit erhalten wir Zugriff auf JEDES beliebige Feld in der aktuellen Arbeitsumgebung
  • 36. DNUG Konferenz: Wie werden wir morgen arbeiten? @GetMachineInfo (8.5.3)  New @Function to support Machine Specific Policy Settings as of Notes / Domino 8.5.3
  • 37. DNUG Konferenz: Wie werden wir morgen arbeiten? @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
  • 38. DNUG Konferenz: Wie werden wir morgen arbeiten? @CheckFormulaSyntax  Überprüft Formeln
  • 39. DNUG Konferenz: Wie werden wir morgen arbeiten? @CheckFormulaSyntax (LotusScript) • Verwendet LotusScript EVALUATE
  • 40. DNUG Konferenz: Wie werden wir morgen arbeiten? Und was macht IBM?  Schade 
  • 41. DNUG Konferenz: Wie werden wir morgen arbeiten? @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
  • 42. DNUG Konferenz: Wie werden wir morgen arbeiten? @BusinessDays (LS)  Evaluate zur Einbindung von @BusinessDays in LS
  • 43. DNUG Konferenz: Wie werden wir morgen arbeiten? @DbLookup + [FailSilent]  Keine Fehlermeldung, wenn keine Entsprechung in der Ansicht gefunden wird  @DbLookup(""; ""; "All"; Source; 2;[FailSilent])
  • 44. DNUG Konferenz: Wie werden wir morgen arbeiten? [ReturnDocumentUniqueID]  Gibt die DocumentUNID eines @DBLookup Ergebnisses zurück  @DbLookup(""; ""; "All"; “test”; 1; [FailSilent]:[ReturnDocumentUniqueID]);  Macht eine zusätzliche Ansicht mit einer Spaltenformel @Text(@DocumentUniqueID) überflüssig
  • 45. DNUG Konferenz: Wie werden wir morgen arbeiten? @ConfigFile  Wo ist die notes.ini? • @Prompt([OK];“notes.ini path“;@configfile)  Notes.ini bearbeiten • @Command([Execute];"
  • 46. DNUG Konferenz: Wie werden wir morgen arbeiten? Programmatic Use  Wozu ist die Eigenschaft „Programmatic Use“ da?  Keine Redundanz komplizierter Spaltenformeln. Das Ergebnis einer Berechnung kann in einer anderen Spalte verwendet werden
  • 47. DNUG Konferenz: Wie werden wir morgen arbeiten? Permutation Comparison In Hide Formulas  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)
  • 48. DNUG Konferenz: Wie werden wir morgen arbeiten? Mail Rules Extended  Regeln haben starre, vorgegebene Bedingungen
  • 49. DNUG Konferenz: Wie werden wir morgen arbeiten? Mail Rules Extended  Der Client speichert die Regeln im Kalenderprofil  Auf dem Server werden die Regeln in “mailrule” Dokumenten gespeichert
  • 50. DNUG Konferenz: Wie werden wir morgen arbeiten? Mail Rules Extended  Mehr Möglichkeiten bei der Regelerstellung  Erfordert Änderung an names.nsf  Kein grosser Aufwand beim Upgrade
  • 51. DNUG Konferenz: Wie werden wir morgen arbeiten? Tweak Auto-Populated Groups  Einfache Erweiterung 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 UPDATE 8.5.3 :http://bodek.uwindsor.ca/users/b/bodek/bodekblog.n sf/d6plinks/BFRK-8MRPWN
  • 52. DNUG Konferenz: Wie werden wir morgen arbeiten? How to get rid of $UpdatedBy?  Unter Umständen sollen die Bearbeiter eines Dokuments nicht sichtbar sein.
  • 53. DNUG Konferenz: Wie werden wir morgen arbeiten? Custom Administration Process  Fehlende Funktionen hinzufügen • Z.B. : User aus Gruppe entfernen  Verlagerung administrativer Aufgaben in den Servicedesk  NotesAdministrationProcess class  Seit Release 6  AddGroupMembers method  aber keine RemoveGroupMembers method LotusScript Gold Collection (1.3): [*] NotesGroupManager: makes it easy to scan and manage group memberships in public and private address books, including groups with subgroups. http://www.openntf.org/projects/pmt.nsf/ProjectLookup/LotusScript%20Gold%20Collection
  • 54. DNUG Konferenz: Wie werden wir morgen arbeiten? Custom Administration Process
  • 55. DNUG Konferenz: Wie werden wir morgen arbeiten? Custom Administration Process  admin4.nsf anpassen • Neue Ansicht erstellen oder • Spalte „Action“ anpassen http://www.eknori.de/2007-12-15/delete-group-members-using-the-administration- process/
  • 56. DNUG Konferenz: Wie werden wir morgen arbeiten? Zip / UnZip  Verwendung von ZIP/UNZIP mit LotusScript  Kostenlos http://www.vcode.no/vcode.nsf/downloads/VCZIPSUP
  • 57. DNUG Konferenz: Wie werden wir morgen arbeiten? 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=7963EB58BAD528FB852577 AE0062A72A&action=openDocument&mode=original
  • 58. DNUG Konferenz: Wie werden wir morgen arbeiten? 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) file format
  • 59. DNUG Konferenz: Wie werden wir morgen arbeiten? XLS ohne Excel erstellen
  • 60. DNUG Konferenz: Wie werden wir morgen arbeiten? Lotus Symphony Toolkit  %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
  • 61. DNUG Konferenz: Wie werden wir morgen arbeiten? 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
  • 62. DNUG Konferenz: Wie werden wir morgen arbeiten? @Midas Lookups  Ben Langhinrichs ( genii software )  Auslesen von Daten aus RichText  Syntax wie @DBColumn und @DBLookup Free download: http://www.geniisoft.com/showcase.nsf/MidasLookups
  • 63. DNUG Konferenz: Wie werden wir morgen arbeiten? @Midas Lookups  Erweiterte Möglichkeiten  Beispiel: Sortierte Ausgabe aller Listenpunkte
  • 64. DNUG Konferenz: Wie werden wir morgen arbeiten? Ist RichText Item leer??  @Length(@Text(body))-1  @Attachments  rtitem.ValueLength  rtitem.EmbeddedObjects • Attachments OK • Aber: Doclinks, Inline Images, Hotspots (Button)
  • 65. DNUG Konferenz: Wie werden wir morgen arbeiten? Ist RichText Item leer?
  • 66. DNUG Konferenz: Wie werden wir morgen arbeiten? Arbeiten mit RichText  C/C++ API oder LS2CAPI  Normunds Kalbernzin • LotusScript to Lotus C API Programming Guide ( ls2capi.com )  Lee Powell • LotusScriptor's Plain Simple Guide to the Lotus Notes C++ API • Download : http://www.eknori.de/downloads/capibook.pdf  Ethann Castell • Getting started with the C-API • Control rich text content with precision using the C-API • The View, 09 / 11 , 2007
  • 67. DNUG Konferenz: Wie werden wir morgen arbeiten? Einordnung der C-API JAVA Lotus Script Visual Basic (COM) JNI Notes Object Interface (NOI) C++ API Notes Core ( C API ) Betriebssystem
  • 68. DNUG Konferenz: Wie werden wir morgen arbeiten? Ist RichText Item leer?  LS2CAPI to the rescue! • Leeres RTI besitzt nur einen CDRecord von Typ Text
  • 69. DNUG Konferenz: Wie werden wir morgen arbeiten? Header / Footer  Erstellen / Ändern • Anwendungseigenschaften ( global ) • Dokumenteneigenschaften  Keine Möglichkeit über @Formel oder LotusScript
  • 70. DNUG Konferenz: Wie werden wir morgen arbeiten? Header / Footer  Informationen sind in RichText item gespeichert
  • 71. DNUG Konferenz: Wie werden wir morgen arbeiten? Header / Footer  LotusScript Library / LS2CAPI
  • 72. DNUG Konferenz: Wie werden wir morgen arbeiten? 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.
  • 73. DNUG Konferenz: Wie werden wir morgen arbeiten? Inline Images  Wie ist ein Inline Image gespeichert ?
  • 74. DNUG Konferenz: Wie werden wir morgen arbeiten? Inline Images Andre Guirard http://www.openntf.org/internal/home. nsf/project.xsp?action=openDocument &name=LotusScript%20Gold%20Coll ection
  • 75. DNUG Konferenz: Wie werden wir morgen arbeiten? 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. Normunds Kalnberzins http://www.rtlib.com/
  • 76. DNUG Konferenz: Wie werden wir morgen arbeiten? Replace Inline 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
  • 77. DNUG Konferenz: Wie werden wir morgen arbeiten? Replace Inline Image Das Attachment wird an die Position des Inline Image gesetzt.
  • 78. DNUG Konferenz: Wie werden wir morgen arbeiten? Insert Richtext into Richtext  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.
  • 79. DNUG Konferenz: Wie werden wir morgen arbeiten? Insert Richtext into Richtext
  • 80. DNUG Konferenz: Wie werden wir morgen arbeiten? Insert Richtext into Richtext
  • 81. DNUG Konferenz: Wie werden wir morgen arbeiten? JW Player - Mediaplayer  JW Player: Ein paar Zeilen Code für einen Mediaplayer für Flash und HTML5 support  Skins http://www.longtailvideo.com/players/
  • 82. DNUG Konferenz: Wie werden wir morgen arbeiten? JW Player - Mediaplayer
  • 83. DNUG Konferenz: Wie werden wir morgen arbeiten? 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 Animated gif created with http://picasion.com/
  • 84. DNUG Konferenz: Wie werden wir morgen arbeiten? 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/0 687660450ad65bdc125754a008357ce?OpenDocument • @URLEncode, @URLDecode – http://blog.gollmick.de/mgoblog.nsf/dx/some-more-Functions-for-XPages- URLEncode-URLDecode.htm
  • 85. Q+A • Mail: eknori@eknori.de • Blog: http://www.eknori.de • Sametime: bleedyellow.com • Twitter: eknori