Eliminate Source By Pattern

(Available with Order Execution Mgt.)


Eliminate Source By Pattern eliminates or applies a weight to items that do not fit pattern constraints.

The applied weight is a value that:

You entered in the Set Block Weights function block's corresponding parameter.

Set Block Weights assigns to this function block.

An item fails if it does not possess a match for the attribute name/value pair specified as next in the Pattern History point.


An accurate historical record of the item selections is required.

When you use this block, insert a corresponding Record Attribute function block into your routing or output logic module.

Insert a Record Attribute function block where all item eliminations (by any and all methods) have been completed.


If the Eliminate Source by Pattern function block is placed within a Resequence Block Module, then the corresponding Record Attribute function block should be inserted immediately before the Resequence Range block where the selection is processed.

The Eliminate Sources Based on Rule and corresponding Record Attribute function blocks should be configured with the same points and array point names.

A block that applies a zero weight eliminates failed items from the range source.

When you use Eliminate Source By Pattern to:

Assign rotation numbers to items according to a defined pattern.

1.   Apply a zero weight.

2.   Use the block within a multiple-pass resequence block module.

Apply other re-sequencing logic in addition to pattern matching.

Apply a non-zero weight.


This function block has the following parameters:



Always Evaluate

Hard, Soft or Breakable.

Controls what happens when the extension eliminates all items in the range source.



All items will remain eliminated. Enter a wait state after the logic script has completed.



Roll back any eliminations made by this extension.



Roll back any eliminations made by this extension that have a danger point value of TRUE (non zero).

Routing Logic modules first try to use the danger defined for each individual decision.

However, one of the following may occur instead







No danger point has been configured for the decision

The site-wide danger point is used.



This function block is used in the decision output logic.

The site-wide danger point is used.



No danger point can be found for a decision.

The decision remains eliminated.

Attribute Name Array

A text array point.

Each rule contains an attribute name/value that the function block compares to an item's corresponding attribute names/values.

Comparison for each Attribute Name element occurs as follows.


First pass only


The function block compares the first Attribute Value element with the value for that attribute from the current item.

If no matching Attribute Value is found:

  1. The function block continues to look for a match by examining other items.

  2. If still no match is found the:

Pattern History Point value is automatically incremented.

Function block attempts to find a match for the next attribute name/value pair until a match is found.

  1. This process continues until either of the following occurs.

A matching value is found.

All items and attribute name/value pairs have been compared without a match.


Subsequent passes




























The function block compares the value of the nth element in the Attribute Value array with the value of the current item's corresponding attribute.


n is the Pattern History Point value.

If no matching Attribute Value is found:

  1. The  current item fails the comparison and is either weighted or eliminated. The failure is saved as history data.

  2. The next item is compared to the same attribute name/value pair.

  3. This process continues until a matching value is found or all items have been weighted or eliminated.

When a matching Attribute Value is found:

  1. The function block compares the same Attribute Value element with the value of the corresponding attribute for the next item.

  2. At the conclusion of the pass, the function block stores an index value that corresponds to the position of the next element after the array element for which a match was found.

This value is stored to the Pattern History Point.

Note: After reaching the last element in the array, the Pattern History Point is reinitialized; the end of the pattern wraps back to the beginning comparison with any subsequent items.


An Attribute Name element containing the reserved name ANY is a wildcard. The current item will always be selected as a match for this index into the pattern. This reserved name does not require a value; i.e. you can enter any value or no value for the respective Attribute Value element.

To compare items that satisfy a named solve (query) or query expression, enter the reserved name SOLVE for this element in the Attribute Name array. (This is  instead of the name of an attribute). You can then enter a named query or query expression as the respective element in the Attribute Value array.

Attribute Value Array



























A text array point.

Each element of this array contains a value to be paired with the respective element in the Attribute Name Array.

An element of the array can contain:

The value of the respective attribute in the Attribute Name Array.

Each element can contain one or multiple values with a comma separator. Do not include quotes.

Attribute values can be wild cards.

A named solve (query), or query expression, returning a Boolean result.

Guidelines include

For any element of the Attribute Name Array that contains the reserved name SOLVE you can enter a named solve (query), or query expression, as the respective value element.

In this case, the respective rule is not applied to an attribute name/value pair, but is instead applied to any items for which the solve (query) returns TRUE.


A Boolean query named $IsRed4Door$ returns TRUE for items that a red foundation and heavy-duty chasis; i.e. this name represents the query expression:

By entering the query name, $IsRed4Door$ as the value element, a pattern can be defined that calls for selection of a red four-door item next.

You can use a query that returns a set of attributes, instead of a Boolean result, by setting the query name or expression to a particular value.


A named attribute query $FinishIs$, where the query defined is Vehicle.FinishType,  can be entered as the value element of this array in the form of an expression:

Pattern History Point


An integer (analog) point..

Stores the current index into the configured pattern.

More information

Record Attribute Pattern.

Eliminate and Weight Sources.

RSA function blocks list.