Product Affinity (Plan Item Level)
Through the Product Affinity between different products on the same order, the products to be grouped and fulfilled together through the execution of a single plan item occur. It can be termed as an order fulfillment optimization.
Generally, a plan item corresponding to an order line specifies a product to be fulfilled in the order. If an affinity is specified between the products that are either being fulfilled implicitly as mandatory children, or ordered explicitly as separate order lines, the individual plan items are grouped together into a single affinity plan item during plan optimization in Automated Order Plan Development. Thus, the corresponding products are fulfilled through the execution of this single plan item.
The product affinity is specified in the product catalog in one of the following two different ways:
- By specifying the affinity type and action-specific plan fragments attributes in the AffinityGroup tab in PRODUCT repository
- By assigning the plan fragments by using ProductHasXXPlanFragment relationships and specifying the affinity specific relationship attributes
The XX in relationship name refers to actions, such as PROVIDE, CEASE, UPDATE, and CANCEL.
Automated Order Plan Development recognizes the affinity and combines the plan items corresponding to the order lines depending on the following two main conditions:
- If the plan fragments defined in the product catalog for the ordered products are the same
- If the affinity type defined in the product catalog for the ordered products is the same (InLink or CrossLink)
user-defined field Data Handling
Affinity groups together plan items for different order lines into a single plan item. Automated Order Plan Development is also responsible for populating the User Defined Fields that are associated with these plan items. The potential exists for the same user-defined field to be present on different order lines, all values must be available in the plan and the relevant order lines identified.
The following data handling rules must be implemented:
Sr No | Rule | Outcome | Sample Order Line Data | Sample Plan Item Data |
1 | user-defined field exists on only one of the order lines being affinity grouped | user-defined field name is the original user-defined field name concatenated with the order line number. Value is the original user-defined field value. | Order Line = 1 user-defined field Name = ServiceID user-defined field Value = 1234 Order Line = 2 Does not contain ServiceID user-defined field | user-defined field Name = ServiceID:1 user-defined field Value = 1234 |
2 | user-defined field exists on more than one of the order lines being affinity grouped, but not all order lines. user-defined field value is the same on all order lines. | user-defined field name is the original user-defined field name concatenated with the order line number as a comma-separated list. Value is the original user-defined field value. | Order Line = 1 user-defined field Name = ServiceID user-defined field Value = 1234 Order Line = 2 user-defined field Name = ServiceID user-defined field Value = 1234 Order Line = 3 Does not contain ServiceID user-defined field | user-defined field Name = ServiceID:1,2 user-defined field Value = 1234 |
3 | user-defined field exists on all order lines being affinity grouped. user-defined field value is the same on all order lines. | user-defined field name is the original user-defined field name. Value is the original user-defined field value. | Order Line = 1 user-defined field Name = ServiceID user-defined field Value = 1234 Order Line = 2 user-defined field Name = ServiceID user-defined field Value = 1234 Order Line = 3 user-defined field Name = ServiceID user-defined field Value = 1234 | user-defined field Name = ServiceID:1,2,3 user-defined field Value = 1234 |
4 | user-defined field exists on more than one order line being affinity grouped. user-defined field value is different on different order lines. | user-defined field is created for each unique user-defined field value, with the corresponding name containing the original user-defined field name concatenated with the order line numbers as a comma-separated list. | Order Line = 1 user-defined field Name = ServiceID user-defined field Value = 1234 Order Line = 2 user-defined field Name = ServiceID user-defined field Value = 1234 Order Line = 3 user-defined field Name = ServiceID user-defined field Value = 6789 | user-defined field Name = ServiceID:1,2 user-defined field Value = 1234 user-defined field Name = ServiceID:3 user-defined field Value = 6789 |
TIBCO Order Management - Low Latency supports the following types of product affinities: