Order of evaluation for formula statements
Domino® evaluates formulas from beginning to end and left to right, completing each statement before proceeding to the next, except that @PostedCommand and a few @Command functions are executed in order after all other @functions complete execution. Formula language contains several @functions for control logic.
Except for @commands, the formula language operates on back-end Notes® objects. For example, a field named in a formula refers to the field as it exists in storage and the FIELD reserved word modifies a stored field. @Commands operate in the user interface; changes made there are not reflected in the back-end until a document is saved. You cannot intersperse back-end and user interface accesses of the same document and get correct results.
Evaluation of @commands
Execution of an @PostedCommand function occurs after all other @functions in the formula. For instance, look at the following formula:
@PostedCommand([CommandName]; Argument);
@If(Condition; TrueStatement; FalseStatement);
FIELD X := "Text"
The first statement is executed last.
Execution of an @command function occurs in the order it appears with some exceptions. The exceptions, like @PostedCommands, execute at the end of the formula. Each exception has an equivalent @command that executes immediately.
The following table lists the @commands that execute last and their corresponding @commands that execute immediately.
Evaluated after @functions |
Evaluated immediately |
---|---|
EditClear |
Clear |
EditProfile |
EditProfileDocument |
FileCloseWindow |
CloseWindow |
FileDatabaseDelete |
DatabaseDelete |
FileExit |
ExitNotes |
Folder |
FolderDocuments |
NavigateNext |
NavNext |
NavigateNextMain |
NavNextMain |
NavigateNextSelected |
NavNextSelected |
NavigateNextUnread |
NavNextUnread |
NavigatePrev |
NavPrev |
NavigatePrevMain |
NavPrevMain |
NavigatePrevSelected |
NavPrevSelected |
NavigatePrevUnread |
NavPrevUnread |
ReloadWindow |
RefreshWindow |
ToolsRunBackgroundMacros |
RunScheduledAgents |
ToolsRunMacro |
RunAgent |
ViewChange |
SwitchView |
ViewSwitchForm |
SwitchForm |
@If function
@If executes one statement or another depending on whether a logical value is True or False:
@If(LogicalValue; TrueStatement; FalseStatement)
@Do function
@Do executes a number of statements in sequence and can be used as an execution path within an @If function:
@If(LogicalValue; @Do(TrueStatement1; TrueStatement2); FalseStatement)
Any @Command functions within an @Do function are executed in order after all other @functions, both within and without the @Do function, are executed.
@Return function
@Return stops execution of the formula:
@If(LogicalValue; @Return(""); "")