Symbolic indexes — APPEND, CURRENT, INSERT, LAST, and PREPEND

Symbolic indexes — APPEND, CURRENT, INSERT, LAST, and PREPEND

Use keywords to identify certain elements of aggregate properties.

<APPEND> index

To add an element to the end (highest index value) a Value List or Page List property, use the <APPEND> index keyword:

.Months(<APPEND>) "March"

This keyword is meaningful only in target property references, not expressions.

This keyword can be used only as a index or superscript

<LAST> index

To set or retrieve an element value from the end (highest index value) of a Value List or Page List property, use the <LAST> index keyword.

For example, this sets the value of the highest numbered element in the Month Value List property:

.Months(<LAST>) "December"

Similarly, this sets the LoanAmount value in the highest-numbered LoanApplication page:

.LoanApplications(<LAST>).LoanAmount "3000"

This keyword can be used only as a index or superscript

<INSERT > index

Use the <INSERT> keyword followed by an integer to insert a new element and its value into a Value List or Page List property at a numeric index position. Any elements with the same or higher index value are "pushed down" by one.

This keyword can only be used in target property references, not expressions. You can use a literal number for the index:

.Months(<INSERT>>2) "FunMonth"

or a numeric property reference for the index:

.myCounter 1
.Months(<INSERT>MyPage.myCounter "New Year starts here."

If the integer is equal to the size of the list, or greater by one, the new value is inserted as a new last element. If the integer is larger than the size of the list by 2 or more, an exception is created.

This keyword can be used only as a index or superscript.

<PREPEND> index

Use the <PREPEND> keyword to insert a new element and its value into a Value List or Page List property as the first element. All existing elements are "pushed down" by one.

This keyword can only be used in target property references, not expressions.

This keyword can be used only as a index or superscript.

<CURRENT> index

The use of the <CURRENT> keyword differs depending on where it is used.

See Obtaining a property value of a page list or page group property for examples of using the <CURRENT> keyword.

Activities and data transforms

When
<CURRENT>
is used as a subscript rather than a standalone reference, the following apply.
  • <CURRENT> can be used within a repeat block to refer to the current repeat element.
  • For a repeat type of
    For Each Embedded List
    ,
    <CURRENT>
    refers to the ClipboardPage of the current iteration: for example, when used in an RUF call that takes a ClipboardPage parameter or on the right side of a property set when the target is a page (when you add to a page list using .list(<append>) ).
  • <CURRENT> can be used within the precondition and transition elements of a step that also includes a repeat element to evaluate the current element of the repeat block.
  • Within a nested step that does not have a repeat element, <CURRENT> inherits the semantics of its parent step that does have a repeat element.
  • <CURRENT> can appear in the Expression Builder for the Target field of a Property-Set (within a repeat block); the keyword will refer to the current element’s property so that it can receive the new value.
  • For the Property-Set-Messages activity method, <CURRENT> is equivalent to myStepPage .
  • <CURRENT> can appear in the Expression Builder for the Source field of the Property-Ref activity method.
When
<CURRENT>
is used as a index or superscript, the index of the current element of a
For Each Element
in a
Value List
or
For Each Element
in a
Value Group
or
For Each Embedded Page
.

Parameters in Rule-Utility-Function

  • <CURRENT> cannot be used with a formal parameter of ClipboardProperty.
  • <CURRENT> can be used with a formal parameter of ClipboardPage to pass the current clipboard page of an iteration over (embedded) pages
  • <CURRENT> can be used with a formal parameter of type String to pass the current value of a scalar property when iterating over a value list or group or the subscript of the current iteration element.

ClipboardProperty references

  • Using the keyword <PARENT> or <TOP> with the <CURRENT> keyword is especially useful in, but not limited to, declarative rules, such as Rule-Declare-Expression.
  • You can use <CURRENT> in declarative rules (specifically when there is a declarative target present).