Arrays in Columns
You can create columns that use arrays, including nested (that is, contained or referenced) concept arrays and properties.
The following figure displays the decision table that uses arrays in columns:
Defining Columns
You can drag and drop any level of nested (contained or referenced) concept arrays, and properties of such arrays, to the Conditions or Actions areas to create a named column. You can specify the array index against which to check a value (condition), or to set a value (action).
For example, suppose a concept A has a property B which is an array of contained concept B, and concept B has a property intProp. If you drag intProp into the decision table to create a column, the new column name is as follows: a.b[].intProp
Specifying Values
When the expression in the column name contains the access to a position within an array (as in the example a.b[].intProp), then you can specify which position must be used in the cell of a table row.
To specify the position, enclose the position index within square brackets, followed by the value. For example, to specify a value of 100 for a specified index in a cell, you might enter the following:
[0]100
For an action, this is the equivalent of specifying the following: a.b[0].intProp = 100. For a condition it would be: a.b[0].intProp == 100.
Omitting the Array Index
If you omit the array index and simply set the cell to a value such as 100, by default the array component’s last element is used. This would be the equivalent of specifying a.b[a.b@length - 1] = 100 for an action, and a.b[a.b@length - 1] == 100 for a condition.
Using Function Evaluations
You can also specify index values using a function evaluation, for example:
[Number.intValue("0",10)]10
Using Multiple Loop Indexes
If multiple loop indexes are involved, as in the case of nested concepts, use the colon character (:) as the delimiter for indexes. Always specify the index, to avoid ambiguity. For example, given this nested concept situation:
a.b[].c[].d[].intProp
You can also specify a condition cell value as follows:
[0:1:System.getGlobalVariableAsInt("GlobalVariableName")]>=100
Which is the equivalent of the following:
a.b[0].c[1].d[System.getGlobalVariableAsInt("GlobalVariableName")] >= 100