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.

Note: The functions that get evaluated immediately are new with Release 6.

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(""); "")