Inhalt - Anton Tauscher

Werbung
Inhalt
1. Überblick
2. Zweck
3. Syntax
4. Anwendung
5. Anwendungsbeispiele
5.1 Dynamische Einbindung von Lotus Script Libraries
5.2 Dynamische Berechnung von Lotus Script Code
5.3 Konfigurierbare Aktionen
6. Beschränkungen
7. Quellen
1. Einführung
Mit der Execute-Anweisung kann man Textstrings als Lotus Script-Code ausführen.
2. Zweck
Lotus Script-Code kann dynamisch verwendet werden. Lotus Script-Code wird erst dann
geladen, wenn er tatsächlich verwendet wird. Zudem kann man auf diese Weise ohne
Designer-Unterstützung Aktionen programmieren.
3. Syntax
Die Syntax der Evaluate-Funktion sieht wie folgt aus.
Syntax
Execute ( script$ )
Parameter
script$ - Lotus Script-Code als Text-String
Rückgabe.
Liefert 0 zurück, wenn dem End-Statement kein Integer-Wert übergeben wurde, ansonsten
den dem End-Statement übergebenen Wert.
4. Anwendung
Die Execute – führt den übergebenen String als LotusScript-Code aus. Dabei müssen alle
verwendeten Variablen im Teststring selbst oder als Globale Variablen deklariert werden.
Als String-Begrenzer empfehlen sich Pipe oder geschweifte Klammern.
Damit lässt sich Lotus Script-Code dynamisch verwenden. Zum einen können je nach
Situation Lotus Script Libraries dynamisch eingebunden werden, zum anderen kann Lotus
Script-Code dynamisch erstellt und zur Ausführung gebracht werden.
Beispiel:
...
varRet = Execute({MsgBox( “Hallo Lotus-Notes-Welt“ )} )
...
5. Anwendungsbeispiele
Anhand einiger Beispiele soll die Verwendung der Execute-Anweisung nochmals verdeutlich
werden.
5.1 Dynamische Einbindung von Lotus Script Libraries
Das angeführte Beispiel entstammt aus dem offiziellen Mail-Template von Lotus Notes 6
=> Views\($Calendar)\Script Globals\Initialize
Sub Initialize
Dim session As New NotesSession
If session.NotesBuildVersion Then
Execute(|
Use "CSUIViewClass_de-DE"
set cvCalendarViewBroker = new CalendarViewBroker
|)
End If
End Sub
5.2 Dynamische Berechnung von Lotus Script-Code
Durch dynamische Text-Strings kann Code je nach belieben berechnet und zusammengefügt
werden. Das folgende Beispiel zeigt nur die rudimentären Grundlagen des Ansatzes. Durch
entsprechende Verzweigungen kann dieser Ansatz für ein Code-Snippet-Modell verwendet
werden.
Dim session As New NotesSession
Dim sUsername As String
Set sUsername = session.CommonUserName
Execute( “Hallo ” + sUsername )
...
5.3 Konfigurierbare Aktionen
In einem Dokument ist Lotus Script Code in einem Textfeld hinterlegt. Damit lassen sich
bestimmte Aktionen administrativ konfigurieren und im Frontend bearbeiten, verändern.
Welcher Code ausgeführt werden kann, wird über Leserfelder geregelt, wer verändern darf
über Autorenfelder. Eine weitere Eingrenzung kann über kategorisierte Ansichten
vorgenommen werden.
6. Beschränkungen
Die Execute-Anweisung hat gewisse Einschränkungen:
- On Error-Statements sind nur innerhalb von Prozeduren zulässig
- Es steht kein Debugger zur Verfügung
- Keine direkte Syntax-Prüfung beim Speichern
- Fehlermeldungen werden mit einer Zeilennummer ausgegeben, erschwertes Debugging
- Programm-Code unterliegt den Stärken und Schwächen von Lotus Notes/DominoDokumenten => Replizierhandling, Löschen von Dokumenten, Dokumentkopien etc…
Dieser Ansatz trägt ein Sicherheitsrisiko in sich, da mittels des Debuggers beliebiger Code zur
Ausführung gelangen kann. Zur Ausführung kommt letztendlich der Inhalt einer Variablen,
und der lässt sich im Debugger ersetzen. Daher ist dieser Ansatz nicht ganz ohne…
7. Quellen


Lotus Notes Designer-Hilfe => “Execute statement”
Lotus Notes Designer-Hilfe => “End statement”
Herunterladen