Eliminate Sources Based on Attribute Spacing

(Available with Order Execution Mgt.)

Description

Eliminate Sources Based on Attribute Spacing eliminates or applies a weight to items that do not fit spacing 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 an insufficient number of items with different attribute values were selected immediately before it. Eliminate Sources Based on Attribute Spacing specifies the number of items different from the current that must be selected.

Notes

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.

Example

If the Eliminate Source 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 Source By Ratio 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 Sources Based on Attribute Spacing 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 attribute spacing.

Apply a non-zero weight.

Parameters

This function block has the following parameters:

Parameter

Description

Attribute Name Array

A text array point.

Each element of this array contains the name of an attribute to be paired with an attribute value for comparison.

The sequence for each respective Attribute Name element is as follows.

  1. The function block attempts to match the respective Attribute Value element with a value for that attribute from the current item.

  2. When an attribute value is matched, the function block compares the respective Spacing Rule and Spacing Count elements.

  3. If selecting the current item (incrementing the Spacing Count) violates the rule, the:

  1. Comparison fails for that attribute.

  2. Item is either weighted or eliminated.

  3. Failure is saved as history data.

Notes:

An elimination may be rolled back depending on the setting of the respective danger flag in the Breakable array.

To compare items that satisfy a named 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 query or query expression, returning a Boolean result.

Guidelines

For any element of the Attribute Name Array that contains the reserved name SOLVE you can enter a named 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 query returns TRUE.

Example

A Boolean named query $IsATruck$ returns TRUE for items that have a heavy-duty chasis; $IsATruck$ represents the query expression:
Vehicle.ChasisType='Heavyduty'

By entering the query name, $IsATruck$, as the value element, a spacing rule can be applied to determine the number of counts required between truck items in a resulting sequence.

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.

Example

A named attribute query $ChassisIs$, where the query defined is Vehicle.ChassisType, an be entered as the value element of this array in the form of an expression:
$ChassisIs$ = 'Heavyduty'

Spacing Rule Array

An integer (analog) array point.

Each element of the array contains a numeric value that represents the minimum count between selected items that have the same attribute name/value allowed.

Spacing Count Array

An integer (analog) array point.

Each element of the array stores the actual number of items having a different attribute value that were selected immediately before the current item.

Breakable Array

A Boolean array point.

Each element of the array contains a danger flag.

Values are:

 

Non-breakable

0

 

Breakable

1

 

The flag value 1 rolls back eliminations when the respective rule is broken.

Note: The danger flag is always in effect for this function block; i.e. there is no Always Evaluate parameter to be set; the Spacing rule is always Breakable.

The logic used here is similar to that used by other function blocks that have an Always Evaluate parameter that references an RCO Danger Point, except that in this case a danger state can be set for any attribute name/value pair for which a rule is defined.

More information

Record Attribute Spacing.

Eliminate and Weight Sources.

RSA function blocks list.