Order orchestration: execution services

The decomposed set of orders are sent to the rules engine to get the execution dependencies defined between them. An integration server processes these dependencies and mark eligible orders as "Ready For Fulfillment". IBM® Sterling Order Management System Software application uses a set of services for performing order execution or fulfillment.

The list of services used in the order orchestration execution or fulfillment process are as following:
Table 1. List of services used in the order orchestration execution or fulfillment process
Service Name Description
TriggerBuildPlan An integration server, BuildPlanIntgServer, triggers the order execution and fulfillment process by picking up the build plan message from the JMS queue and invokes a custom API, ProcessBuildPlan.

The ProcessBuildPlan API uses the output from the decomposition service and invokes the mapping service, PrepareMappingForBuildPlan.

ProcessBuildPlan Custom API that performs the execution or fulfillment process. The custom API that prepares input for build plan request and invokes business rules using InvokeBuildPlanRules service.
PrepareMappingForBuildPlan This placeholder mapping service is provided to create the build plan request from the decomposed order information.

The output of this mapping service is sent to the InvokeBuildPlanRules service, which calls the external rules engine system (such as ODM) for obtaining the order execution sequence.

InvokeBuildPlanRules Custom API to build request for execution and invoke rules engine using a common service, InvokeBusinessRule. This service builds the final request with header and data.

This custom API must be configured to pass request header <name>-<value> pairs as system arguments for the HTTP REST call. The response from this service is used to build the order execution sequence among the decomposed or child orders and is persisted in IBM Sterling Order Management System Software.

To start fulfillment of eligible orders, the status of the eligible decomposed orders is changed to ‘Ready For Fulfillment’ using the ORDER_PROCESS transaction.

UpdateOrderDependency This service is invoked by OnStatusChange event of ORDER_CCOMPLETE transaction for a decomposed order. It updates all transactional relationship records for IsDependencyResolved flag for orders dependent upon the current order. After updating all the records a message is posted by invoking the PostMsgToEvaluateDependencyQ service.
PostMsgToEvaluateDependencyQ Service to post messages to the execution or build plan queue for each such updated order. This service is invoked by the UpdateOrderDependency service for each order that has a dependency resolved for evaluating eligibility for fulfillment.
EvaluateOrderDependency This service is invoked by the integration server, EvaluateDependencyIntgServer, when a message is posted in the execution queue.

This service implements a custom API that evaluates whether or not all the order dependencies are resolved. If resolved, it changes the order status to ReadyForFulfillment in case it is a decomposed order. Otherwise it changes the order status to Completed, in case it is a customer order.

Viewing execution or fulfillment services

To view the execution or fulfillment services, perform the following steps:
  1. From the Application Console menu, click Configuration > Launch Applications Manager. The Applications Manager opens in a new window.
  2. From the menu, click Applications > Application Platform.
  3. From the tree in the application rules side panel, double-click Process Modeling. The Process Modeling window displays in the work area.
  4. Select the Sales Order tab to view the corresponding process modeling tree for that base document type.
  5. In the Process Types swimlane, right-click on the Sales Order process type and choose Model Process. The Repository Details window and work area display for the process type.
  6. Choose the Service Definitions tab and expand the Execution service group.