Operators

Logic

and

<opnd1> and <opnd2>

Binary operator for logical 'and', i.e. returns true if both operands evaluate to true.

or

<opnd1> or <opnd2>

Binary operator for logical 'or', i.e. returns true if at least one operand evaluates to true.

not

not <opnd>

Unary operator for logical 'not', i.e. returns true if the operand evaluates to false.

ifthenelse

ifthenelse(Condition, Then, Else)

Return the value of Then if Condition evaluates to true, otherwise return the value of Else.

Text

ifthenelseString

ifthenelseString(Condition, Then, Else)

Returns the value of Then if Condition evaluates to true, otherwise return the value of Else.

concatenate

concatenate(Left, Right)

Returns the concatenated value of the Left and Right evaluated String expressions

numberToString

numberToString(<opnd>)

Returns the text value of the evaluated arithmetic expression

boolToString

boolToString(<opnd>)

Returns the text value of the evaluated logical expression (true/false)

Comparisons

== (equal)

<opnd1> == <opnd2>

Compares two text or numerical values. If both operands evaluate to an integer, a numerical comparison is done. If both operands evaluate to a text, a text comparison is done. Otherwise the operator returns false.

<> (not equal)

<opnd1> <> <opnd2>

Compares two text or numerical values. If both operands evaluate to an integer, a numerical comparison is done. If both operands evaluate to a text, a text comparison is done. Otherwise the operator returns false.

< (less than)

<opnd1> < <opnd2>

Compares numerical values. If both operands evaluate to an integer (or a text that represents a numerical value), a numerical comparison is done. Otherwise the operator returns false.

<= (less or equal)

<opnd1> <= <opnd2>

Compares numerical values. If both operands evaluate to an integer (or a text that represents a numerical value), a numerical comparison is done. Otherwise the operator returns false.

> (greater than)

<opnd1> > <opnd2>

Compares numerical values. If both operands evaluate to an integer (or a text that represents a numerical value), a numerical comparison is done. Otherwise the operator returns false.

>= (greater or equal)

<opnd1> >= <opnd2>

Compares numerical values. If both operands evaluate to an integer (or a text that represents a numerical value), a numerical comparison is done. Otherwise the operator returns false.

= (equal)

<opnd1> = <opnd2>

Compares two text values. If both operands are equal, the operator returns true - otherwise false.

!= (equal)

<opnd1> != <opnd2>

Compares two text values. If the operands are different, the operator returns true - otherwise false.

Arithmetics

+ (add)

<opnd1> + <opnd2>

Arithmetic add operation.

- (subtract)

<opnd1> - <opnd2>

Arithmetic subtract operation.

* (multiply)

<opnd1> * <opnd2>

Arithmetic multiply operation.

/ (divide)

<opnd1> / <opnd2>

Arithmetic divide operation.

% (remainder)

<opnd1> % <opnd2>

Arithmetic remainder operation: Calculate the remainder when dividing the first operand by the second.

floor

floor(<opnd>)

Arithmetic floor operation: Calculate the largest integer less than or equal to the given number.

ceil

ceil(<opnd>)

Arithmetic ceil operation: Calculate the smallest integer greater or equal to the given number.

trunc

trunc(<opnd>)

Arithmetic trunc operation: Calculate the integer part of the given number by removing any fractional.

round

round(<opnd>)

Arithmetic round operation: Calculate the integer nearest to the given number.

Component State

setActive

setActive(Component), unsetActive(Component)

Set the Component 'active' or 'inactive'. This switches between the two 'toggling' states of the Component like checked/unchecked for a CheckBox or a RadioButton, pushed/released for a Button in toggling mode or selects an item in a list like the ComboBoxItem in a ComboBox.

setFrozen

setFrozen(Component), unsetFrozen(Component), setFrozen(Frame, GroupNumber), unsetFrozen(Frame, GroupNumber)

Set the 'Is Frozen' attribute of the given component (one parameter Component) or all members of the specified select group (two parameters Frame & GroupNumber).

setHidden

setHidden(Component), unsetHidden(Component), setHidden(Frame, GroupNumber), unsetHidden(Frame, GroupNumber)

Set the 'Is Hidden' attribute of the given component (one parameter Component) or all members of the specified select group (two parameters Frame & GroupNumber).

setHighlightable

setHighlightable(RichText), unsetHighlightable(RichText)

Set the 'Highlightable' attribute of the given RichText component.

setSelectable

setSelectable(Frame, GroupNumber), unsetSelectable(Frame, GroupNumber), setSelectable(Container or Table), unsetSelectable(Container or Table)

Set the 'Selectable' attribute for the given select group or Table. Specify the select group by specifying a Frame and the number of the select group assigned to the Frame. For 'implicit' select groups just specify the container component (Panel, ImageMap, RadioButtonGroup etc.). Note: The 'implicit' select groups are deprecated - don't use them for new items anymore.

setMultiselect

setMultiselect(Frame, GroupNumber), unsetMultiselect(Frame, GroupNumber), setMultiselect(Container), unsetMultiselect(Container)

Switch the selection mode of the given select group between multi-select and single-select. Specify the select group by specifying a Frame and the number of the select group assigned to the Frame. For 'implicit' select groups just specify the container component (Panel, ImageMap, RadioButtonGroup etc.). Note: The 'implicit' select groups are deprecated - don't use them for new items anymore.

setNoDeselect

setNoDeselect(Frame, GroupNumber), unsetNoDeselect(Frame, GroupNumber), setNoDeselect(Container), unsetNoDeselect(Container)

Switch the deselect flag of the given select group between no-deselect and deselect. Specify the select group by specifying a Frame and the number of the select group assigned to the Frame. For 'implicit' select groups just specify the container component (Panel, ImageMap, RadioButtonGroup etc.). The flag has no effect in multi-select mode. Note: The 'implicit' select groups are deprecated - don't use them for new items anymore.

setEmbeddedPage

setEmbeddedPage(PageArea, Page)

Set the given Page as embedded page for the given PageArea. (The operator does not work for TreeChildAreas since these are controlled by their attached tree.)

focus

focus(Component)

Set the focus to a component. Note that the object should be on the current page, otherwise the focus operation might have no effect. If the object is not visible on the page it is scrolled to the object to make it visible.

initMediaPlayer

initMediaPlayer(Component, Property, Property, ...)

Initialize the given media player Component. The following Properties will be set (if not explicitly given the default values are used):

setMediaPlayer

setMediaPlayer(Component, Operation)

Control the given media player Component. The following Operations are available:

setMediaPlayerVolume

setMediaPlayerVolume(Component, Volume)

Control the volume of the given media player Component. The Volume ranges from 0 (mute) to 10 (maximum volume).

setValueDisplayMode

setValueDisplayMode(Component, Mode)

Set the drag&drop mode of the given Component. The following Modes are available:

setInputValue

setInputValue(InputSource, InputTarget, NewSourceValue)

Set the text value of the InputTarget component to the current value of the InputSource component and initialize InputSource with the value of the NewSourceValue if a NewSourceValue is given. Notes:

insertText

insertText(InputField, TextToInsert, InsertPosition, DropLength)

Insert the given TextToInsert into the InputField component at the specified InsertPosition. Drop the number of old characters specified by DropLength starting at the given InsertPosition before inserting the new text. Notes:

Task Management

isCurrentTask

isCurrentTask(Task)

Return true if Task is currently executing.

next_task

next_task(Task, Test)

Switch to the next task. Both parameters are optional, but Task is mandatory if Test is specified.

If the task switch targets to a task that was interrupted before, the execution environment decides whether to initiate a new task instance now or to resume the task interrupted earlier.

Note about execution sequence when used in a state machine transition rule: The system postpones task switches until all other operators in a transition are executed. For multiple task switch operators in a single transition it will only execute the last task switch encountered during the transition. For a transition that leads to a state with a page assigned, the system switches to this page after all actions assigned to the transition are executed. If a task switch appears in the action list of the transition, the page switch is done in the old task since the task switch is postponed as described above.

back_task

back_task()

Switch back to the previous task. If there is no previous task do nothing. (The execution environment selects the 'next' task.) If the task switch targets to a task that was interrupted before, the execution environment decides whether to initiate a new task instance now or to resume the task interrupted earlier.

Note about execution sequence when used in a state machine transition rule: The system postpones task switches until all other operators in a transition are executed. For multiple task switch operators in a single transition it will only execute the last task switch encountered during the transition. For a transition that leads to a state with a page assigned, the system switches to this page after all actions assigned to the transition are executed. If a task switch appears in the action list of the transition, the page switch is done in the old task since the task switch is postponed as described above.

cancel_task

cancel_task()

Terminate the current task without switching to another task.

Evaluations

matches

matches(Component, RegularExpression), matches(Component, RegularExpression, Selector)

Return true if the text content of the Component matches the RegularExpression. For spreadsheet table cells containing a formula the formula result counts as text content. The Selector options are:

user_interactions

user_interactions()

Return the number of user interactions within the current task execution.

elapsedTime

elapsedTime()

Return the elapsed time (in milliseconds) during task execution of the current task. Time spent while the task was 'paused' or another task was active does not count.

getItemScore

getItemScore(Task, Calculation)

Trigger all scoring calculations for the requested Task and return the requested calculation result. Valid Calculation values are:

highlighted

highlighted(RichText, RichText, ...

Return true if in at least one of the given TextFields any non-blank character is highlighted. Empty lines correspond to a blank character.

complete

complete(Selection, Selection, ...)

Return true if all Selections are selected or completely highlighted. A text block is completely selected if all non-blank characters of the text block are highlighted. Empty lines correspond to a blank character. A Link counts as selected it it was visited already.

partial

partial(Selection, Selection, ...

Return true if at least one of the given Selections is selected or partly highlighted. A text block is partly selected if at least one non-blank character of the text block is highlighted. Empty lines correspond to a blank character. A Link counts as selected it it was visited already.

current_page

current_page(Page), current_page(Page, PageArea)

Return true if the given Page is currently displayed:

bookmarked

bookmarked(Page)

Return true if the given Page is currently bookmarked.

integer_value

integer_value(Component, RoundingMode, Default)

Evaluate the text content (or formula value for spreadsheet table cells containing a formula) of the given Component as integer:

panel_distance_range

panel_distance_range(Container, [CheckNonMembers], MinDistance, MaxDistance, Center, Component, Component, ...)

Return true if the mutual distance of all given Components in the given Container is within the given range MinDistance..MaxDistance.

If the flag CheckNonMember is not given or set to true also check that for all other components in the given Container the distance is outside the given range for at least one of the given Components.

The distance is calculated between

panel_position_range

panel_position_range(Container, [CheckNonMembers], XStart, XEnd, YStart, YEnd, Center, Component, Component, ...)

Return true if the (X,Y) positions of all given Components in the given Container are within the range given by XStart, XEnd, YStart and YEnd relative to the Container's (X,Y) position.

If the flag CheckNonMembers is not give or set to true also check that the (X,Y) positions of all other components in the given Container are outside the given range.

As (X,Y) position of a Component the Container takes

result_text

result_text(TextSource), result_text(TemplateSource, ValueSource, ValueSource, ...)

The operator always returns true. The single parameter version copies the text from the TextSource to the result text of the Hit/Miss condition. The multiple parameter version uses the text from the TemplateSource as template and replaces each occurrence of %<index>$s (where <index> is an integer between 1 and the total number of given ValueSources) by the text snippet obtained from the ValueSource corresponding to the given index. Example: result_text("Sorted text: %1$s %3$s %2%s", "one", "two", "three") writes Sorted text: one three two

trace_snapshot

trace_snapshot(TextSource), trace_snapshot(TemplateSource, ValueSource, ValueSource, ...)

The operator always returns true. The single parameter version traces the text from the TextSource in the trace log and dumps a snapshot of the current task to trace log. The multiple parameter version uses the text from the TemplateSource as template and replaces each occurrence of %<index>$s (where <index> is an integer between 1 and the total number of given ValueSources) by the text snippet obtained from the ValueSource corresponding to the given index. Example: trace_snapshot("Sorted text: %1$s %3$s %2%s", "one", "two", "three") writes Sorted text: one three two

trace_typed_snapshot

trace_typed_snapshot(Type, TextSource), trace_typed_snapshot(Type, TemplateSource, ValueSource, ValueSource, ...)

The operator always returns true. The operator works similar to trace_snapshot operator (see above) but adds an additional type field to the details structure of the trace log entry.

trace_text

trace_text(TextSource), trace_text(TemplateSource, ValueSource, ValueSource, ...)

The operator always returns true. The single parameter version traces the text from the TextSource in the trace log. The multiple parameter version uses the text from the TemplateSource as template and replaces each occurrence of %<index>$s (where <index> is an integer between 1 and the total number of given ValueSources) by the text snippet obtained from the ValueSource corresponding to the given index. Example: trace_text("Sorted text: %1$s %3$s %2%s", "one", "two", "three") writes Sorted text: one three two

trace_typed_text

trace_typed_text(Type, TextSource), trace_typed_text(Type, TemplateSource, ValueSource, ValueSource, ...)

The operator always returns true. The operator works similar to trace_text operator (see above) but adds an additional type field to the details structure of the trace log entry.

Variables

reset

reset(Variable, Variable, ...)

Set the values of the given Variables to 0 for Numbers, empty value for Strings, false for Booleans.

set

set(Variable, Value)

Set the given Variable to the given Value.

setString

setString(Variable, Value)

Set the given String Variable to the given Value.

setBool

setBool(Variable, Value)

Set the given Boolean Variable to the given Value.

variable_in

variable_in(Variable, Value, Value, ...)

Return true if the value of the given Variable equals one of the given Values.

visited_all_values_of_variable

visited_all_values_of_variable(Variable, Value, Value, ...)

Return true if the value of the given Variable has covered all given values during the execution of the current task. Only initial values and values before and after a state machine event has been processed are considered. Intermediate value changes due to modifications by the user (e.g. through a SpinnerValueInput) or during event processing are left out. The variable's default value is used as initial variable value unless the variable has been initialized explicitly to a different value when processing the initial transition from the start state.

visited_nb_values_of_variable

visited_nb_values_of_variable(Variable, Value, Value, ...)

Return the number of given Values that the given Variable has covered during the execution of the current task. Only initial values and values before and after an event has been processed are considered. Intermediate value changes due to modifications by the user (e.g. through a SpinnerValueInput) or during event processing are left out. The variable's default value is used as initial variable value unless the variable has been initialized explicitly to a different value when processing the initial transition from the start state.

State Machine

initFSM

initFSM(Events)

Execute state machine events.

raise

raise(Event)

Raise the given Event after the current event has been processed completely. Multiple operator calls in one rule raise the events in the order of the operator calls.

setFSMEvent

setFSMEvent(Event, Timeout)

Set the triggering interval for the given timer Event to the given Timeout (in milliseconds).

setFSMState

setFSMState(State, Page)

Set the page attribute for the given State in the state machine to the given Page.

is_last_state

is_last_state(State, State, ...)

Return true if the last state the state machine was in is one of the given States.

raised_all_events

raised_all_events(Event, Event, ...)

Return true if all given Events have been raised during the execution of the current task. We consider an event raised even if it did not trigger a transition. We also include events raised by the raise() operator.

raised_events

raised_events()

Return the number of events that have been raised during the execution of the current task. We consider an event raised even if it did not trigger a transition. We also include events raised by the raise() operator.

raised_all_events_in_state

raised_all_events_in_state(State, Event, Event, ...)

Return true if all given Events have been raised in the given State during the execution of the current task. We consider an event raised even if it did not trigger a transition. We also include events raised by the raise() operator.

raised_nb_events

raised_nb_events(Event, Event, ...)

Return the number of events among the given Events that have been raised during the execution of the current task. We consider an event raised even if it did not trigger a transition. We also include events raised by the raise() operator.

raised_nb_events_in_state

raised_nb_events_in_state(State, Event, Event, ...)

Return the number of events among the given Events that have been raised in the given State during the execution of the current task. We consider an event raised even if it did not trigger a transition. We also include events raised by the raise() operator.

visited_nb_states

visited_nb_states(State, State, ...)

Return the number of the given States that have been visited during the execution of the current task.

visited_all_states

visited_all_states(State, State, ...)

Return true if all given States have been visited during the execution of the current task.

Tree

current_node

current_node(Tree, RegularExpression)

Return true if the node path ID of the current node in the given Tree matches the given RegularExpression.

exists_nodes

exists_nodes(Tree, RegularExpression, RegularExpression, ...)

Return the number of nodes in the given Tree whose node path ID matches at least one of the given RegularExpressions. Each node counts once only.

visited_nodes

visited_nodes(Tree, RegularExpression, RegularExpression, ...)

Return the number of visited nodes in the given Tree whose node path ID matches at least one of the given RegularExpressions. Each node counts once only.

matches_nodes

matches_nodes(Tree, NodeIdPattern, ColumnPattern, ColumnPattern, ...)

Return the number of nodes in the given Tree whose node path ID matches the NodeIdPattern and whose column values match the specified ColumnPatterns: The first ColumnPattern corresponds to the node name, the second ColumnPattern to the first additional colum, etc. Each node counts once only.

tree_move

tree_move(Tree, NodeIdPattern)

Move the currently selected node in the given Tree into the Node specified by the node path ID pattern. The pattern must match exactly one node. The The operator ignores the 'read-only' flag of the Tree but the child types of the target node type must permit the move.

tree_copy

tree_copy(Tree, NodeIdPattern)

Copy the currently selected node in the given Tree into the Node specified by the node path ID Pattern. The pattern must match exactly one node. The operator ignores the 'read-only' flag of the Tree but the child types of the target node type must permit the copy operation.

Miscellaneous

openDialog

openDialog(Page, X, Y)

Open the given Page as dialog at the position (X,Y).

closeDialog

closeDialog(Page), closeDialog(isXPage, isModal)

Close the dialog showing the given page resp. showing a page matching the given flags.

setGlobalProperty

setGlobalProperty(Property, Value)

Set the given global Property to the given Value. The following properties can be used:

callExternalPageFrame

callExternalPageFrame(ExternalPageFrame, value1, value2, ...)

Send a message to the java script code running inside the given external page frame.

recommend

recommend(Parameter, Parameter, ...)

Highlight recommended Links, Tasks and Tests. Each parameter specifies a test name, a task name and the User Defined Id Path of a Link component separated by dots: <TestName>.<TaskName>.<UserDefinedIdPath> Example: recommend(myTest.someTask.myLink, myTest.anotherTask.someLink) To recommend a task without a specific Link component use an asterisk (*) as value for the User Defined Id Path like this: myTest.someTask.* To recommend a test without a specific task use asterisks for task and User Defined Id Path like this: myTest.*.* For User Defined Ids that are not defined in the current item, the ItemBuilder assumes that their components are part of an XPage.

scrollEmbeddedPage

scrollEmbeddedPage(PageArea-ID, PositionParameter, PositionParameter)

Controls the scrollbars positions of a component that can be used to embed a page. Operator parameters:

scrollTopLevelPage

scrollTopLevelPage(isXPage, PositionParameter, PositionParameter)

Controls the scrollbars positions of specific page. Operator parameters:

checkSelected

checkSelected(StringImplicitVariable, Parameter, Parameter, ..)

Returns true if all given Parameters (Component UserDefinedId or Literal) are included in the evaluated value of the StringImplicitVariable at runtime, and false otherwise.

Calculator

calcGetMem

calcGetMem(MemoryIndex)

Return the rounded integer value of the calculator memory identified by MemoryIndex. Return 0 if the memory is not initialized or not set.

calcOp

calcOp(Operation, IntegerParam)

Performs an operation on the stack of the calculator. The following operations are available:

calcOpnd

calcOpnd(Operation, Digits)

Modifies the current operand on the stack of the calculator. The following Operations are available (the parameter Digits – a non negative integer – may be optional):

calcSettings

calcSettings(Parameter, Parameter, ...)

Initializes the calculator and sets Parameters. This must be done at the beginning, before any calculation is started, otherwise it has no effect. The following Parameters are available: