Guidelines for Setting Up Orchestration Process Steps
Specify details about the step, such as branching, planning, and managing change.
Each step in your orchestration process specifies the task service that the step calls to fulfill the fulfillment line. Each step specifies how to run the step, such as the task type, task, service, dependencies, planning, change management, and so on. A step might also specify branching.
Set Up the Orchestration Process Step
To set up an orchestration process step, go to the Edit Orchestration Process Definition page, then use the Step Definition list in the Process Details area to specify each attribute:
Attribute |
Description |
---|---|
Step Type |
Set the step's behavior:
|
Task Type |
Each task type includes services that you can use to communicate with a fulfillment system, such as a billing system. Here are the predefined task types that you can use.
You can't update an order line after Order Management interfaces the line to billing, so don't add a scheduling, reservation, or shipping step after a billing step. |
Task |
Specify the task to run. A task can include more than one step. For example, the Ship task calls the Create Shipment service. It also calls the Wait for Shipment service to wait for different status values to happen in the fulfillment system updates. Note: If you use your implementation project to
migrate an orchestration process instance from a development
environment to a production environment, then don't modify the task
name in either environment. Modifying the name might prevent Order
Management from updating references to other data in the orchestration
process. For details, see Guidelines for Setting Up Order-to-Cash.
|
Service |
Specify the task service that this step calls. |
Manual |
Specify whether to wait for user input. If you specify a manual task, then the orchestration process waits until the user manually finishes the task in the Order Management work area. For example, set the Schedule task as a manual task so your user can manually schedule all fulfillment lines at the end of the day. The orchestration process waits the first time the user submits the sales order. It doesn't wait if the user revises the order line. Assume you enable the Manual attribute on the Reservation step and the next step after reservation is a shipping task. The process will stop at the Reservation step and set the status on the order line to Manual Reservation Required. The user finishes the manual task, orchestration moves to the shipping task, sets the status to Awaiting Shipping, then proceeds to fulfillment. If the user revises the order line, then orchestration will proceed to fulfillment for the revision, such as schedule, reserve, and ship, but it won't stop on the Reservation step. |
Exit Criteria |
Specify the task status that determines when to exit a wait step. For example, if the status of a shipment task changes to Shipped, then exit the wait step. If your task includes more than one wait step, then make sure these steps don't use the same exit criteria. Use the Manage Task Status Conditions page to make sure only the last step or wait step uses the exit criteria. If you set up more than one wait step for a task, then make sure you set the exit criteria for each wait step that happens before the final wait step to Mark as Complete. Assume you set up wait step x, wait step y, and wait step z on the same task, and wait step z happens last:
Make sure you specify the value Canceled as an exit criteria status to exit the wait task in your orchestration process. |
Line Selection Criteria |
Add a business rule that selects fulfillment lines. The orchestration process step will then process only these fulfillment lines:
An orchestration process might not require all of the order lines or fulfillment lines when it calls the fulfillment task's service. Assume the item on an order line is a warranty. You typically don't ship a warranty, so you can create a business rule that specifies not to ship items that don't ship. For details, see Select Fulfillment Lines for Orchestration Process Steps. |
Pause Rule |
Specify when to pause processing before calling the next step, or when to resume processing. For details, see Pause Orchestration Processes for Time. |
Branch Your Process
An orchestration process branch is a path in an orchestration process that the process runs when the flow meets a condition. You can set up an orchestration process so it's linear, where steps run in a sequence with no branching, or so it contains a branch where flow travels along different paths depending on a condition.
Here's how you set up branching:
-
Use a branching condition in a single orchestration process.
-
Use an assignment rule that examines a set of orchestration processes, then assigns one of them for the branch.
The technique that you use depends in part on the complexity you need. For example, you can create several simple, linear orchestration processes, then use an assignment rule to choose one. Or, you can combine these orchestration processes into a single orchestration process that uses branching conditions. A more complex set up might require assignment rules and branching conditions.
For details, see Add Branches to Orchestration Processes.
Specify these attributes when you branch:
Attribute |
Description |
---|---|
Branching Condition |
Specify the criteria that the condition must meet to run the steps in a branch:
|
Evaluation Sequence |
Specify the sequence that the orchestration process uses when it evaluates each branch condition. Set the Evaluation Sequence only if you branch your orchestration process. If you don't branch, then you can't set the sequence. |
Otherwise |
If you add a check mark to the Otherwise option on the conditional step, and if the branching condition meets the criteria that you specify for the branch, then the orchestration process runs the branch that doesn't meet the branching condition. |
Plan Your Process
Attribute |
Description |
---|---|
Planning Default Branch |
Specify the default path that the orchestration process uses for planning. The process uses this setting only if it includes one or more conditional branches. |
Fulfillment Completion Step |
Add a check mark to this attribute to indicate that the fulfillment lines are fulfilled when this step finishes:
|
Default Lead Time |
Specify the duration that the orchestration process needs to do the step:
|
Lead Time UOM |
The unit of measure for the lead-time, such as days, hours, or minutes. |
Lead-Time Expression |
A lead-time expression is a business rule that determines the amount of time you expect the step needs to finish:
Here's an example expression that determines the difference between the current date and the scheduled ship date:
where
For details, see Add Lead-Times for Orchestration Process Steps. |
Manage Change
Attribute |
Description |
---|---|
Hold on wait |
Send a message to the fulfillment system for each active step when the orchestration process receives a change order. |
Use Transactional Item Attributes |
If you enable transactional item attributes, then the step examines these attributes to help it determine the differences that exists between the change order and the order's previous version. |
Use Flexfield Attributes |
If you enable flexfield attributes, then the step examines them to help it determine the differences that exists between the change order and the order's previous version. |
Compensation Pattern |
Specify the set of rules that determine how to handle each step that ran before Order Management received the change order. Assume a change order requests to change from carpet to tile:
If you don't specify a compensation pattern, then Order Management might process a step as an update, depending on the operation's context. It might rerun some steps. If Order Management can't compensate a step for some reason, then it bypasses the step, and then compensates the next step that it encounters. |
Plan Your Dates
Order Management sets the last step's required completion date to the Required Fulfillment Date, then calculates the planned dates for each step and task that the orchestration process contains so they meet the Required Fulfillment Date.
Here's how Order Management does it:
-
Works through the orchestration process from beginning to end, starting with the first step in chronological order, and ending with the Last Fulfillment Completion step.
-
Doesn't use the last step that happens in chronological order to identify the completion date.
-
Incorporates lead times in the dates that it calculates. You can set up these lead times.
-
Displays the replanned schedule after it finishes the calculation.
Here's how Order Management sets the Required Fulfillment Date:
-
Sets the Required Fulfillment Date to the date that your source system provides.
-
If the source system doesn't provide a date, then Order Management sets Required Fulfillment Date to Requested Ship Date.
-
If Requested Ship Date doesn't contain a value, then Order Management sets Required Fulfillment Date to Requested Arrival Date.
-
If Requested Arrival Date doesn't contain a value, then Order Management sets Required Fulfillment Date to Order Date.
-
If Order Date doesn't contain a value, then Order Management sets Required Fulfillment Date to System Date. The operating system of the computer that runs Order Management contains the system date.
Order Management exits this sequence as soon as it successfully sets the date. For example, if your source system provides a date, then it does only step 1, and doesn't do steps 2 through 5.
Keep this sequence in mind when you set up your integration and orchestration process.
Delete a Step
If you delete a step, and if the step references a status value from the orchestration process or the fulfillment line, then you must delete the status value before you delete the step. If you don't, then you can't release the orchestration process.
Assume you copy an orchestration process, it contains Step 3 Create Reservation and Step 4 Create Shipment Request. Step 3 references the Reserved status value from the orchestration process. You know from historical demand data that there's always sufficient inventory so you don't want to reserve inventory for the item. You delete step 3, but then encounter an error when you attempt to release the orchestration process:
Task name Reservation does not exist in the Process definition
Here's how you can fix that:
- Go to the Manage Orchestration Process Definitions task, then open your orchestration process for editing.
- On the Edit Orchestration Process Definition page, in the Process Details area, click Status Conditions.
- Click Orchestration Process Status Values.
If your step referenced a fulfillment line value, then you would click Fulfillment Line Status Values > Edit Status Rule Set, and then remove the status value from the rule set.
- Click the row that has Reserved in the Status Value attribute, then click Actions > Delete.
- Click Step Definition.
-
Click the row that has Reserve in the Step Name attribute, then click Actions > Delete.
Duplicate a Predefined Process
If you create a duplicate of a predefined orchestration process and replace the first step of the process with your own custom step, and if you must add a business rule on the first step, then enable the Advanced Mode option and disable the Tree Mode option when you create your rule. If you can't set these options, then don't add a rule on the first step because your rule will fail validation.
Keep Predefined Rules
Some predefined orchestration processes come with a rule on the first step. For example, the first step of ReturnOrderGenericProcess is named Create Receiving Advice, and it comes with a line-selection criteria named Receiving.
Assume you need to create a custom process that's similar to ReturnOrderGenericProcess, except your first step must send a transportation request. You still need the Receiving line-selection criteria but you need it on the second step, not the first:
-
Go to the Setup and Maintenance work area, then go to the task:
-
Offering: Order Management
-
Functional Area: Orders
-
Task: Manage Orchestration Process Definitions
-
-
On the Manage Orchestration Process Definitions page, search for ReturnOrderGenericProcess, then click Actions > Duplicate.
-
On the Edit Orchestration Process Definition page, set the value.
Attribute
Value
Process Display Name
My Return Order Process
-
In the Process Details area, in the first row, Create Receiving Advice, set the value.
Attribute
Value
Step Name
Temporary
You can use any value. You will change it soon.
-
Click the first row, then click Actions > Add Row.
The page adds a new step, 200, right after step 100.
-
Set the values for step 200. You are duplicating step 100, so set these values.
Attribute
Value
Step Name
Create Receiving Advice
Step Type
Service
Task Type
Return
Task
Return Receipt
Service
Create Expected Receipt Advice
Update Service
Update Expected Receipt Advice
Cancel Service
Cancel Expected Receipt Advice
-
Click Save.
-
Copy the rule in step 100.
-
On step 100, in the Line-Selection Criteria column, click Click for Rule.
-
In the Line-Selection Criteria dialog, notice the rule named Receiving, click Properties, then set the values.
Attribute
Value
Advanced Mode
Contains a check mark
Tree Mode
Doesn't contain a check mark
You must set these values. If you don't, your copy will fail validation.
-
Add a check mark in the option that's right next to Receiving, click the down arrow next to the scissors, click Copy, then click Cancel.
-
-
Paste the rule into step 200.
-
On step 200, in the Line-Selection Criteria column, click Click for Rule.
-
In the Line-Selection Criteria dialog, click Paste.
-
Click Validate, then verify that the Message contains
No validation errors/warnings found!
. -
Click Save.
-
-
On step 100, set the value.
Attribute
Value
Step Name
Transportation Request
Set other attributes to meet your requirements.
Rename the Status Rule Set
You must rename the status rule set when you duplicate an orchestration process. Assume you need to create a copy of DOO_OrderFulfillmentGenericProcess and use it for your Vision Corporation shipments:
- Go to the Manage Orchestration Process Definitions page, Search for DOO_OrderFulfillmentGenericProcess, then click Actions > Duplicate.
- On the Edit Orchestration Process Definition page of the duplicate that you just created, click Status Conditions > Fulfillment Line Status Values.
- Click Edit Status Rule Set.
- On the Edit Status Rule Set page, change the value in the Name attribute to Vision Shipments, then click Save and Close.
Order Management automatically creates a new name for the status rule set when you duplicate the process. It uses the same name but prefixes it with the text Copy of and adds a version number. For example, if you duplicate DOO_OrderFulfillmentGenericProcess, then Order Management sets the rule set name to Copy x of DOO_DROP_SHIP_AND_BACK_TO_BACK_ORDER_STATUS_RULE_SET. If you duplicate the same process more than one time, then you'll have various copies of the same rule set, such as Copy 1 of DOO_DROP_SHIP_AND_BACK_TO_BACK_ORDER_STATUS_RULE_SET, Copy 2 of DOO_DROP_SHIP_AND_BACK_TO_BACK_ORDER_STATUS_RULE_SET, and so on. If you don't rename the rule set, then you might end up with duplicate rule set names between environments, and that will cause a conflict when you migrate your process definition or when set up through import and export.
If you have an older orchestration process that you already duplicated, then edit it, change the name, then save your changes. As an alternative, you can revise it, make your change, then release it.
Improve Performance
The way you set up your orchestration processes and orchestration process steps can directly affect performance in your environment. Here are some tips:
-
Remove each step that you don't need. Each step eats up resources and increases processing time. For example, if you use the predefined ShipOrderGenericProcess and don't need to do invoicing, then delete the Create Invoice and Wait for Invoice steps.
Don't use line-selection criteria to skip steps that you don't need because that approach increases processing time and might lead to a step that remains in a Not Started status for a long time, or a process that seems to take forever to finish.
-
Use a separate orchestration process to accomplish each goal. Don't use one large, monolithic process that has a lot of branches and skipped steps to do all your processing. Instead, use several processes with fewer branches.