Overview of Pausing Orchestration Processes

Use a pause task to temporarily stop an orchestration process from running so it can wait to meet a condition.

When it meets the condition, the orchestration process releases the pause task, then proceeds to the next orchestration process step. You can specify a pause task to wait between tasks, or specify when to release the pause and begin the next orchestration process step.

flow of how you can use a typical pause task

Note

  1. You add a step that references a pause task in an orchestration process. You can add a pause task step at any point in the orchestration process. This example includes a simple three step orchestration process. For example, assume the orchestration process successfully scheduled fulfillment, and now must wait to confirm payment before shipping the item to your customer.

  2. You set up a rule that pauses the orchestration process to wait for an event to happen, time to elapse, or for a dependency to resolve.

  3. You set up a release rule that releases the pause task so the orchestration process can continue to the next step. Here's how you release a pause task.

    • Release it automatically when the timer expires, when the flow meets the release condition, or when the flow doesn't meet any of the conditions.

    • Allow a user to release it manually in the Order Management work area.

    • Use a scheduled process that releases it automatically according to a regularly scheduled interval.

    • Use a web service that informs the orchestration process when to release.

Examples

Pause for Time

Assume you prefer not to overload the warehouse with shipment requests that aren't due for delivery for two weeks. You can pause the orchestration process to wait to send the shipment request to the warehouse until two days before the scheduled shipment date happens.

In another example, assume you sell a video game up to seven days before the release date of the game:

  • You estimate it requires seven days to schedule and process the sales order before it ships. Use this lead time so you can ship the game as soon as its available.

  • You set up a pause task that pauses the orchestration process before the schedule step happens, and continues to pause until the publisher releases the game.

  • You set up a rule that releases the pause task according to an extensible flexfield that includes a value of the release date minus seven days. The orchestration process releases the pause task, schedules the sales order, then resumes processing.

For details, see Pause Orchestration Processes for Time. It includes the Pause Lines Before You Reserve Them example.

Pause for Events

Assume you provide a layaway program that allows your customer to reserve an item, then pay for it in installments. Use a pause task to pause the orchestration process. When the customer pays in full, the orchestration process calls the Release Paused Tasks service, releases the pause task, then ships the item to the customer.

In another example, assume you must release each sales order to shipping only if inventory is available at the fulfillment location. Use a pause task that pauses the orchestration process until the inventory is available. When the inventory is available, the web service calls Release Paused Tasks, releases the pause task, then ships the item to the customer.

If you set up a rule that waits for an event to happen, then you typically use a web service to resume the pause task. In this context, event means something that happens outside of Oracle Order Management. It's not synonymous with a business event.

For details, see Pause Orchestration Processes for Events. It includes these examples:
  • Wait for a Check Payment Event
  • Wait for Large Sales Orders to Finish Processing
  • Send Covered Items and Coverage Items to Invoicing

See these examples in Pause for Shipping:

  • Pause Until A Task Finishes for All Lines
  • Pause Nonshippable Lines Until Shipping Ships All Shippable Lines
  • Pause Nonshippable Lines Until Shipping Ships At Least One Shippable Line
  • Send Nonshippable Lines to Invoicing Without Waiting for Shipping to Ship Shippable Lines
  • Send Nonshippable Lines to Invoicing When There Aren't Any Shippable Lines
  • Send Nonshippable Lines and Return Lines to Invoicing
  • Pause Shipped Lines of a Kit Until Shipping Ships All of the Lines
  • Send Shippable and Nonshippable Lines to Invoicing in Groups

Pause for Dependencies

Consider these examples:

  • A customer requests to receive a shipment that includes coffee, paper cups, sugar, and creamer at the same time. One fulfillment line fulfills each item. For example, fulfillment line x fulfills the coffee, fulfillment line y fulfills the cups, and so on. You can use a pause task that pauses each order line until the orchestration process finishes scheduling each of these lines. The orchestration process periodically evaluates the sales order. It finishes scheduling all lines, then ships them to the customer at the same time.

  • A customer must receive invoices for all fulfillment lines of a sales order at the same time, regardless of when the orchestration process ships each of these lines. You can use a pause task that pauses the orchestration process until it ships all items. It then sends the invoices for all lines to the customer at the same time.

  • Your company policy requires people in your organization to review and approve each sales order where the scheduled date happens after the requested date. You can use a pause task to pause the orchestration process until these folks finish review and approval.

For details, see Pause Orchestration Processes for Dependencies. It includes the Wait to Ship All Lines Before Invoicing example.

Attributes That You Set for the Pause Task

The pause task evaluates the condition in your business rule's IF statement the first time Order Management runs the rule. If the condition is True, then the pause task pauses the orchestration process.

You set these attributes for a pause task:

Attribute

Value

reevaluateFlag

  • Y. Evaluate the condition every time the orchestration process finishes a step. If the condition doesn't evaluate to true, then release the pause task.

    For example, assume the orchestration process is processing more than one fulfillment line in a sales order, and that you must evaluate the condition after it processes each line. You can use reevaluateFlag to evaluate each line.

    For another example, assume you must print pictures for customers and then frame them. You set up a flow that includes another task that prints the picture. You promise same day shipping, so you periodically examine whether the picture printed so you can frame it as soon as possible.

  • N. Don't evaluate the condition every time the orchestration process finishes a task. If the IF statement is True, then the orchestration process remains paused until you explicitly release the pause task.

sacType

Specify the action to take when your If statement evaluates to True.

Set sacType to one of these values.

  • SAC_TYPE_EVENT. Pause the orchestration process until an event happens.

  • SAC_TYPE_TIMER. Pause the orchestration process until the date and time you specify happens.

  • SAC_TYPE_IMMEDIATE. Release the pause task and resume processing.

  • SAC_SYSTEM_EVENT_IPC_PAUSE. Use an interprocess communication (IPC) to pause according to an event across orchestration processes.

    If you use IPC, then the rule will evaluate the condition every time the orchestration process finishes a step even if you set reevaluateFlag to N.

Note that sac is an abbreviation for start after condition.