Tipps zu LotusScript

LotusScript ist das wichtigste Werkzeug für Entwickler von Notes- und Domino-Anwendungen. Es gibt jedoch ein paar Eigenschaften und Methoden, die nicht ganz unkritisch sind und bei ihrer Verwendung gelegentlich Fehler verursachen. Einige dieser Problembereiche und potenzielle Lösungsansätze stellt der folgende Beitrag vor. alle Versionen

NotesMimeEntityHeaderObjects

Agenten, die die Eigenschaft NotesMimeEntity- HeaderObjects nutzen, stürzen in Situationen ab, in denen die Sprache des Contents im Header enthalten ist. Das Problem wurde in den Versionen 6.5.3 und 7.0.1 adressiert. Bei älteren Versionen kann als Workaround mit GetNthHeader gearbeitet werden. Dort wird der Header in jedem Fall korrekt verarbeitet.

Sprachpräferenz setzen

Es ist möglich, die Sprachpräferenz für eine Datenbank durch den Benutzer über LotusScript
anpassen zu lassen. Das ist bei mehrsprachigen Datenbanken interessant. Die Information zur bevorzugten Sprachversion wird im Feld $DefaultLanguage abgelegt. Die Anpassung erfolgt entsprechend durch Setzen dieses Feldes. Ein Codebeispiel findet sich im Artikel 1231473 der IBM-Supportdatenbank.

GetFieldType-Methode

Die Methode GetFieldType der Klasse NotesForm liefert für Namen, Autoren und Leserfelder nicht das korrekte Ergebnis. Die Fehler sind:

  • Für Leserfelder wird der Wert 1792 zurückgeliefert, der eigentlich für die User-ID steht. Eigentlich sollte der Wert 1076 geliefert werden.

  • Für Namens- und Leserfelder wird der Wert 1280 (für Text) statt der Werte 1074 respektive 1075 zurückgegeben.

Da jeweils gültige Werte für einen anderen Feldtyp geliefert werden, lässt sich das Problem nicht dadurch lösen, dass man die Rückgabewerte einfach anders adressiert. Die einzige Lösung ist es, auf das Dokument zuzugreifen und mit der Methode GetFirstItem und den weiteren Methoden zur Navigation durch die Elemente Schritt für Schritt durch die Elemente zu gehen und mit der Eigenschaft Type auf den Feldtyp zuzugreifen.

Das Problem ist noch nicht adressiert worden, dies dürfte aber in einem der kommenden MRUs geschehen.

CopyItem-Methode

Auch bei der Methode CopyItem sowie mit CopyAllItems und CopyItemToDocument gibt es Probleme. Wenn diese Methoden verwendet werden, kann es in einigen Situationen zu Fehlern beim Zugriff auf die Anhänge kommen. Das Problem ist im Artikel 1197459 des IBM-Supports beschrieben und ab den Versionen 6.5.5 beziehungsweise 7.0 gelöst.

Clientversion ermitteln

Schon aus Gründen der Kompatibilität von lokal genutzten Datenbanken und Skripts kann es erforderlich sein, die Clientversion in LotusScript zu ermitteln. Ein Beispielskript dafür finden sich im Artikel 1094622 des IBM Supports.

GetDocumentByKey

Bei der Verwendung der Methode GetDocument- ByKey mit einem numerischen Wert für den Schlüssel werden entweder keine oder die falschen Dokumente zurückgegeben. Das Problem lässt sich lösen, indem man den numerischen Wert in einen Text konvertiert.