Order Mgmt Cloud – Pause task in the Orchestration Process

Overview:

Allows a fulfillment process to be “paused” until a specific condition is met.

A pause task temporarily stops an orchestration process from running so that it can wait for a condition to be met. When the condition is met, the orchestration process releases this pause task, then proceeds to the next orchestration process step.

You can use a pause task to wait between tasks, and to specify when to release the pause and begin the next orchestration process step.

We can use pause task in the following business scenarios:

  1. Pause an orchestration process until an event occurs: Define an orchestration process that uses a pause task to temporarily stop the orchestration process from running so that it can wait for an event to occur.
    • e.g. Run a credit check prior to fulfilling the order
  2. Pause an orchestration process until time elapses: Define an orchestration process that uses a pause task to temporarily stop the orchestration process from running so that it can wait for time to elapse
    • e.g. Set up a pause task that pauses the orchestration process until two days before the scheduled ship date occurs
  3. Pause an orchestration process until a dependency resolves: Coordinate processing across multiple fulfillment lines in a single sales order. Define an orchestration process that processes the order lines, pauses them until all of these lines are shipped, and then sends them to billing.
    • Invoice the sales order, Once all the order lines are shipped
    • Wait until at least one line in the order is shipped before invoicing

Types of Pause Rules:

  1. Event based pause:
  • Wait for external events to release the pause
  • Create criteria for Header.childFLines. otherwise it will evaluate for all lines
  • Use Header.childFLines to reference the line in this process instance. Header.allFLinesInTheOrder checks for all lines in the order
  • Check for null conditions
  • Always use assign NEVER assert new

    2. Time based pause:

    • Wait for certain time to release the pause
    • Wait for a condition and re-check the condition at a frequency
    • Return a specific date and time NOT a duration (e.g. 5)
    • Use functions like getAdjustedDate and getConvertedDate
    • Only set Re-evaluate to ”Y” to re-check the condition (IF statement) periodically
    • If re-evaluating, set frequency carefully – uses system resources

      3. IPC (Inter Process Coordination) Pause:

      • Wait for other all the lines to attain certain status
      • Use Header.allFLinesInTheOrder as these conditions are based on other lines on the order
      • Consider the number of order lines that will be on an average order as performance is impacted by larger orders
      • For larger orders use timer based pause using Header.allFLinesInTheOrder and reevaluate every 8 hours

        The pause can be released manually, thru web service or Scheduled Process/running ESS Job. An external application can call a public service named Release Paused Tasks to release a pause task.

        Implementing:

        • Create a Pause Task
        • Enter Start After Condition
        • Line Selection criteria: selection criteria is not available for a pause task because the pause task examines every fulfillment line in the sales order, by default.
        • Release Rule:
          • Always set priority to Highest
          • Always create a default release rule condition
        • Attribute set to Pause Task:

        Leave a Comment