Amendment Workflow

Since an order amendment involves the modification of the current execution plan, a predefined process is adopted. The predefined process is as follows:

  1. Upon accepting an order amendment request, the Orchestrator first tries to suspend the current execution plan by sending the suspend requests (PlanItemSuspendRequest message) to all the plan items that are in EXECUTION state. Based on the implementation of the process components, and the point at which the process component is executed, the process components may send a successful suspend response (PlanItemSuspendResponse message) or a successful completion response (PlanItemExecuteResponse). Any one of the responses is acceptable by the Orchestrator.
  2. Once the execution plan (and order) reaches the SUSPENDED state, the Orchestrator sends a plan generation request to AOPD to generate the execution plan as per the order lines in the amendment request.
  3. The new execution plan generated by the core AOPD is merged with the existing plan to add, or to modify the plan items as per the changes in the amendment request.
  4. Based upon the modification rule characteristics defined in the product model, the compensatory plan items are added in the new execution plan to allow the undoing of the tasks that were performed by the earlier corresponding plan items. If required, the REDO plan items are also added in the new execution plan to allow the redoing of the tasks that needs to be performed by a particular plan item.
  5. Upon receiving the consolidated execution plan for the amendment request from AOPD, the Orchestrator activates the SUSPENDED plan and starts orchestrating it as per the latest dependencies.
  6. All SUSPNDED plan items will be activated, either for cancellation (cancelWithNoRollback or cancelAndRollback) or resume execution (resumeExecution) by sending the PlanItemActivateRequest messages.
  7. Any compensatory and redo plan items, created during the amendment process, will be executed in the same way as the regular plan items by sending the PlanItemExecuteRequest messages, so as to either complete or cancel the order.