Hallo und guten Tag.
Mal wieder ein kniffliges Problem (jedenfalls für mich):
Für eine per Script erzeugte Regel muss das Feld "$FilterFormula" vom Typ "Formula" (1536) sein. Normalerweise wird die Maske "(RulesDlg)" aufgerufen und das dortige gleichnamige Feld erledigt die Konvertierung. Nach Konvertierung wird der Text durch eine Art Hexcode ersetzt.
Programatisch is es etwas schwieriger:
Set doc_Rule = New NotesDocument( db_Current )
doc_Rule.Form = "Mailrule"
Set item_Formula = New NotesItem( doc_Rule, "$FilterFormula")
item_Formula.Text = str_Formula
Call doc_Rule.ComputeWithForm( True, False )
Call doc_Rule.Save( true, true )
Soweit der Code. In den Eigenschaften zur neuen Regel ist das Feld dann allerdings vom Typ "Text" anstatt, wie in der Form vom Typ "Formula". So wird die Regel dann auch nciht ausgeführt.
Man kann das umgehen, indem man die Form als UIDocument über der Workspace öffnet und wieder schliesst. Allerdings geht das dann nicht als servergesteuerter Agent.
Also jetzt endlich die Frage: Wie kann man ein Notes Feld vom Typ Formula nur durch BackEnd-Befehle erzeugen. Dabei sollte nicht auf vorhandene Felder aus Calendar-Profile zurückgegriffen werden, die man ja einfach kopieren könnte. Das FilterFoluma-Feld aus dem Profil ist bei neuen Mailboxen eben auch nur ein Textitem und andere Formula-Items gibt es auch nicht.
Ideen?