Formelfehler vermeiden
iQ.Suite Tipps & Tricks für Lotus Notes Domino
Wie sichere ich mich gegen Formelregeln ab, die zwar syntaktisch in Ordnung sind, aber dennoch nicht funktionieren, weil zum Beispiel verschiedene Wertetypen (Text mit Datum) verglichen werden.

- In diesem Beispiel wird ein Datumswert (@created) mit Text („Jetzt“) verglichen.
- Die Syntax der Formel ist einwandfrei. Da aber
Text und Datum nicht vergleichbar sind, bricht die iQ.Suite die
Bearbeitung der E-Mail mit einem Fehler ab.

(Auszug aus dem iQ-Suite-Log)
- Um nun ein komplettes Aufhängen zu vermeiden, übergibt man das Ergebnis der gewünschten Abfrage an ein Hilfsfeld (im Beispiel „_result“).

Im Hilfsfeld steht im Falle eines Fehlers eine entsprechende
Fehlermeldung, bei fehlerfreien Abfragen nimmt es die Werte „false“ oder
„true“ an.
Sollte ein Fehler („@IsError“) aufgetreten sein, dann wird das Ergebnis
„false“, ansonsten gibt es das Ergebnis der eigentlichen Abfrage („true“
oder „false“ ) wieder.
Damit ist sichergestellt, dass die Regelformel nur die erlaubten Werte
„true“ oder „false“ zurückgeben kann und nicht zum Hängen des
Regelwerkes führt.
Ein schönes Beispiel für eine derartige Abfrage finden Sie auch in den Beispielregeln der iQ.Suite:
Formelregel: NoBodyDom7
Formula:
_isAvailable :=@isavailable(body);
_HasText := @trim(@Abstract([ABBREV]; 1000; ""; "body" ))!="";
_Hasp7matta:= @contains( @lowercase( @AttachmentNames(0));"smime.p7" );
_isEmpty:=@If( !_isAvailable | ( !_HasText & !_Hasp7matta) ;@TRUE;@FALSE);
@If(@IsError(_isEmpty);@false;_isEmpty);