Dokumente, deren zugrundeliegende Maske eine der Funktionen @DbLookup oder @DbColumn verwendet, benötigen oft beim Öffnen vergleichsweise lange bis zur Anzeige im Notes Client - auch wenn die Dokumente nur im "Lesen-Modus" betrachtet werden.
Warum ist das so?
Das liegt daran, dass bestimmte berechnete oder editierbare Felder ihre Formeln auch beim lesenden Öffnen eines Dokumentes ausführen.
Das Ausführen der Feld-Formeln wird man nicht verhindern können, aber die "Lookup-Funktionen" müssen ja nicht immer ausgeführt werden.
Was kann man als Entwickler dagegen unternehmen?
In den entsprechenden Feldformeln sollten die "Lookup-Funktionen" eben nicht ausgeführt werden, wenn ein Dokument nur zur Anzeige am Bildschirm im Notes Client geöffnet wird. Die @If-Funktion ist hierbei der Schlüssel.
Beispiel: Schlüsselwortliste-Formel mit @DbColumn
@DbColumn(class:cache; server:database; view; columnNumber)
sollte geändert werden in:
@If(!@IsNewDoc & @IsDocBeingLoaded;
@Return("");
@DbColumn(class:cache; server:database; view; columnNumber)
)
Beispiel: Schlüsselwortliste-Formel mit @DbLookup
@DbLookup(class:cache; server:database; view; key; columnNumber; keywords)
sollte geändert werden in:
@If(!@IsNewDoc & @IsDocBeingLoaded;
@Return("");
@DbLookup(class:cache; server:database; view; key; columnNumber; keywords)
)
Hinweis zur Funktion @Return
Aus der Online-Hilfe:
Immediately stops the execution of a formula and returns the specified value. If you don't want anything returned, use the null string ("").
Hinweis zu diesem Tipp
- Erstmalige Veröffentlichung auf der madicon.de Webseite: 12. Juni 2001
Die in diesem Tipp gemachten Angaben wurden mit dem Domino 10.0.1 FP2 Designer und dem Notes 10.0.1 FP2 Standard Client (macOS + Windows) verifiziert und dieser Beitrag entsprechend überarbeitet.
Kommentar schreiben