Functional Coordination Helper Product

Certain situations require an activity for the functional product during the fulfillment of the technical product as compared to the usual scenarios where the activity takes place after the child products are complete. To make the process components to run in parallel, you can create a functional coordinator helper product to perform activities related to the functional product.

Pattern Rationale

In an ideal situation, process components for a product action must not assume anything about the parent product that they are comprising. However, some fulfillment scenarios, such as provisioning an access connection, require some activity at the functional product level during the fulfillment of a lengthy technical product.

These activities might include sending an intermediate status message to the submitting party, which can only occur at the functional product level or updating inventory associated with the functional product.

Activities related to the parent product normally occur after the fulfillment activities (process components) for all of the child products are complete. However, in this case, we need an activity for the functional product during the execution of fulfillment of the technical product. This means that the process components must run in parallel.

Pattern Realization

To address this situation, you can create a functional coordinator helper product to perform any activity related to the functional product during the fulfillment of technical products. The sequence number of the functional coordinator must be the same for all technical products so they can run in parallel.

To define relationships between functional and technical product process components, you can use intermediate milestones in the catalog. In this way, communication between functional and technical products is brokered through the TIBCO Order Management - Long Running instead of direct communication.

Technical products simply trigger milestones when defined events occur (for example, receiving a planned message from the south) with no knowledge of any required functional product activity, such as sending a notification to the sending party.