Wir hatten bereits darauf hingewiesen, dass die OpenUserGroup | Westfalen die im vergangenen Jahr sehr erfolgreiche IBM Connect Comes To You auch in diesem Jahr veranstaltet. Das Event findet am 03. März 2016 in Bielefeld statt. Nachdem die Connect 2016 nun seit ein paar Tagen vorbei ist und alles ein wenig sacken konnte, ist nun die Agenda für die Veranstaltung freigegeben. Sie sieht folgendermaßen aus:

»12:45 – 13:00«

  • Begrüßung
  • Impressionen/Fazit der IBM Connect Teilnehmer

»13:00 – 14:45«

  • IBM Verse – Update & What’s next
  • IBM Connections – Update & What’s next
  • Wo geht die Reise hin? Cloud, Analytics, Watson, Digital Assistance

»14:45 – 15:00«

  • Kaffeepause & Networking

»15:00 – 15:30«

  • Speed Sponsoring – Vorstellung der Sponsoren

»15:30 – 17:30«

  • IBM Mail for Outlook, Notes und Domino – Update & What’s new
  • IBM Mobil First – IBM ICS Mobile Apps & Traveler
  • Connections, Verse, Bluemix, XPages News für Entwickler
  • Project Toscana – Die neue integrierte Enterprise Team Messaging Lösung

»17:30 – 18:00«

  • Abschlußdiskussion

Damit haben wir alle spannenden Themen der IBM Connect 2016 im Programm und erwarten eine sowohl unterhaltsame als auch informative CTY. An dieser Stelle sei noch einmal darauf hingewiesen, dass die Veranstaltung für alle Teilnehmer kostenlos ist! Dies ist möglich durch das Engagement der Sponsoren acceptIT, hedersoft, ITWU und midpoints.

Melden Sie sich am besten noch heute an!

Im Anschluss findet wie immer der OpenUserGroup Stammtisch statt, zu dem alle herzlich eingeladen sind.

Da ich gerade vor dem Problem saß, aus einem nicht als MIME gespeicherten RichText Feld HTML Content zu extrahieren und ein wenig gebraucht hatte, bis ich alles beisammen hatte, möchte ich meine Lösung teilen, damit Ihr ggf. weniger lange suchen müsst.

Die Anforderung war, aus einem als Notes RT gespeichertem Feld den Inhalt als anständig formatiertes HTML auszulesen. Es gibt dafür mehrere Ansätze, die aber für mich aus unterschiedlichsten Gründen nicht in Frage kamen.

  1. Auslesen über URI
    Mit folgender URI kann man den Inhalt eines RT Feldes auslesen (undokumentierte Funktion beschrieben von Carl Tyler):
    http://dominoserver/datenbank/ansicht/uid/feldname?openfield
    Gibt man diese URI im Browser ein, dann erhält man den vollständigen Inhalt eines RT Feldes als HTML angezeigt. Leider kam das für mich nicht in Frage, da ich ein OSGI Plugin entwickele und direkten Zugriff auf das Dokument per Java API hergestellt habe. Jetzt per URI zu operieren ist zwar möglich, aber ziemlich umständlich, da dann auch neu authentifiziert werden muss wegen des HTTP Zugriffs. Also musste ich nach einer anderen Lösung schauen.
  2. DominoDocument und DominoRichTextItem
    Mark Leusink hat in seinem Blog eine tolle Funktion präsentiert, die es mit einfachsten Mitteln erlaubt, den HTML Inhalt eines RT Feldes über die Java API auszulesen mit Hilfe der Klassen DominoDocument und DominoRichTextItem. Die Klasse DominoRichTextItem enthält eine Funktion getHTML(), die den Inhalt des RT Feldes mit einem Aufruf als HTML zurückgibt. Nun ist es leider so, dass die beiden Klassen nur in der XSP Umgebung zur Verfügung steht, nicht aber für mein OSGI Plugin oder innerhalb eines Java Agenten. Also fällt diese Lösung auch aus.

Ich habe mich dann hingesetzt und geschaut, was mit den Bordmitteln der Java API möglich ist. Nach einigem Fummeln habe ich dann eine Lösung gefunden, die schnell ist und meine Bedürfnisse voll erfüllt. Diese Lösung ist im Übrigen auch nach Lotus Skript übertragbar, falls der Bedarf existiert. Hier das Code Snippet:

Das Snippet geht davon aus, dass der Inhalt im RT-Feld als Notes RT gespeichert ist. Der Code kann dahingehend erweitert werden, das zu prüfen und nur bei Bedarf zu konvertieren. Diese Prüfung habe ich vorher gemacht. Falls der Inhalt bereits als MIME vorliegt, kann gleich mit dem Auslesen begonnen werden.

Spätestens seit XPages Einzug in den Entwicklungsprozess von Notes Applikationen gehalten haben, müssen sich Entwickler zwangsläufig mit Web-Entwicklungstechnologien auseinandersetzen, u. a. auch mit JavaScript. Da gerade das Entwicklercamp 2015 zu Ende gegangen ist, hoffe ich, dass sich der Eine oder Andere hat begeistern lassen, neben der klassischen Notes-Entwicklung der Web-Seite (und hier insbesondere der XPages Entwicklung) eine Chance zu geben.

Daher ein paar – sicherlich unspektakuläre – aber vielleicht für den Start hilfreiche kleine Hilfsfunktionen in JavaScript.

Wenn man aus der klassischen Notes-Entwicklung kommt, sind Befehle wie @Left oder strLeft schöne Hilfsfunktionen, um die man sich in der Entwicklung nicht kümmern muss. Die folgenden Funktionen sind sowohl clientseitig als auch serverseitig verwendbar.

Aber Achtung:
Um Entwicklern den Umstieg schmackhaft zu machen, hat IBM bewusst die Möglichkeit geschaffen, auch in serverseitigem JavaScript mit @-Function-Befehlen zu arbeiten. BÖSE! Wer wirklich ernsthaft daran denkt sich mit den neuen Technologien auseinander zusetzen, bitte nicht solche „Krücken“ verwenden (Stichwort: Performance).

Hier die Funktionen:

 

Ich hoffe, dass einigen die Funktionen weiterhelfen und wie schon in „Die Mumie kehrt zurück“ so schön gesagt:

Evelyn (Rachel Weisz): Ich schwöre dir, der Junge wird dir von Tag zu Tag ähnlicher.
Rick (Brendan Fraser): Du meinst attraktiv, liebreizend und verdammt charmant?
Evelyn (Rachel Weisz): Nein, er treibt mich in den Wahnsinn.

So kann der Start mit der XPages-Entwicklung sein, aber irgendwann geht man durch dick und dünn und es wird einfacher ;-)…

P. S.
Wer die gleichen Funktionen für Java benötigt und diese nicht selbst umschreiben möchte, kann sich gerne an uns wenden. Wir senden dann gerne eine Bibliothek per Mail.

Aus gegebenem Anlass heute ein kleiner Tipp, der zwar nicht neu ist aber dennoch aktuell. Der Notes Client läßt sich sehr schön über Tastenkürzel steuern, wenn man denn weiß, welche es gibt. Frei nach dem Herrn der Ringe gibt es hier ein Kürzel, welches alle anderen beherrscht!

Tastenkuerzel

Wer den deutschen Client installiert hat, der benutze STRG+SHIFT+G, im englischen Client kann man die Liste mit STRG+SHIFT+L öffnen. Viel Spaß damit!