BINDABS

Use this function in a component rule for the implementation of binding and iterative evaluation. The implementation of binding ensures that when there are multiple references to a component in a rule, all references are to the same instance of that component. The implementation of iterative evaluation ensures that the rule is evaluated using all possible combinations of type references.

Do not use this function unless you have a clear understanding of the behavior.

Syntax:
BINDABS (Boolean_expression)
Meaning:
BINDABS (component rule)
Returns:
A Boolean "true" or "false"
Note: It is not necessary to use the BINDABS function for iterative behavior with the following functions because these functions already iterate: COUNT, COUNTABS, INDEX, MEMBER, MAX, MIN, SUM, and SERIESTOTEXT.

How it works

When the evaluation starts and the BINDABS function is encountered at the beginning of the component rule, binding is enforced and the rule is iterated across all valid combinations of objects specified in the rule.

BINDABS must be positioned first in the component rule and the entire component rule must be enclosed. Any other use of this function will have no effect.

When using BINDABS, the evaluation order is the same as mapping. Rules that contain both a normal instance and a last instance for the first instance of the type are not evaluated.

Example

BINDABS (Qty:LineItem:Order * Price:LineItem:Order = ExtendedPrice:LineItem:Order)

As a result of binding, the Qty, Price, and ExtendedPrice elements in this example are all in the same LineItem of the same Order. As a result of iteration, all line items of all orders are checked.