Guidelines for Integrating Order Management with Transportation Management

Set up an orchestration process, manage connectors, business rules, constraints, and use web services to integrate Oracle Order Management with Oracle Transportation Management.

Use Web Services

Order Management doesn't come predefined to integrate with Transportation Management or Global Trade Management. Starting in Update 13, you can use Integration Cloud Service, a synchronous web service, or some other asynchronous web service, to integrate with your transportation management system. Before Update 13, you must use only an asynchronous web service.

flow that uses Integration Cloud Service, a synchronous web service, or some other asynchronous web service to integrate with your transportation management system.

Communicate details through a web service.

  • Required.

    • Send details from Order Management to Transportation Management when you create, revise, or cancel a sales order.

    • Send acknowledgement from Transportation Management to Order Management.

  • Optional.

    • As an option, send fulfillment details from Transportation Management to Order Management. For example, confirm that Transportation Management created the order release, send transportation plan that includes updated schedule dates, or send delivery confirmation details, such as delivery date.

flow that confirms that Transportation Management created the order release.

Set Up Orchestration Process

Add an orchestration process step that sends a request to Transportation Management. Add another step that waits for the reply.

orchestration process step that sends a request to Transportation Management.

Note

  • Use the predefined DOO_TransportationPlanning task type in the orchestration process. This task type allows Order Management to send a new request to the transportation management system, and to update or cancel a request that already exists.

  • Reference DOO_TransportationPlanning at any point in the stepwise sequence of an orchestration process, depending on your business requirements. For example, set up an orchestration process so it identifies the source of supply, reserves inventory, then plans transportation.

Wait for the response.

  • It might be necessary to wait for a response from Transportation Management in some situations. For example, an order release is a representation of the sales order in Transportation Management. Transportation Management uses the sales order as input to create the order release.

    If Transportation Management can't successfully create the release, for example, an attribute that it requires for planning transportation is missing a value, then it might be useful to prevent the orchestration process from proceeding, such as to a ship item step, until the Order Manager can determine whether to allow the process to proceed without the release.

  • To add a wait step, copy the Send Request step, then modify the copy as necessary.

  • Use the DOO_TP_REQ_ACCEPTED value or the CANCELED value in the Status Code attribute as the exit criteria for the wait step.

  • The flow won't proceed to the next step until Transportation Management replies that it successfully created the sales order release.

  • Don't wait for a response unless you need it to meet a business requirement. Waiting for the response increases the possibility that the orchestration process might take a long time to finish, or get stuck waiting for the response.

Process the response.

  • Process the response from Transportation Management at different steps in the orchestration process, such as after the transportation plan finishes, or after Transportation Management sends proof of delivery. Order Management can use the response after the transportation plan finishes even if the orchestration process isn't currently running the DOO_TransportationPlanning task.

  • DOO_TransportationPlanning uses an indicator to mark each fulfillment line that Transportation Management planned so some other system can process it.

    For example, the predefined integration with Oracle Inventory sets a transportation planning hold on each shipment request that references a fulfillment line that contains this indicator. The integration releases the hold only after Transportation Management receives the transportation shipment plan.

At run time, the Status attribute on the order line references DOO_TransportationPlanning on the orchestration process to get the status for Awaiting Transportation Planning Response.

attribute Status on the order line references task type DOO_TransportationPlanning on the orchestration process.

  • The DOO_TransportationPlanning task and Shipment task come predefined to use different attributes to identify change. You must modify them so they use the same attributes. For details, see Manage Order Attributes That Identify Change.

  • If your orchestration process includes branching, and if you include the Shipment task in one or more branch, and if you expect transportation and shipping will process the order line, then you must include the DOO_TransportationPlanning task in each branch that includes the Shipment task. For Example, if you include Shipment in branch x for normal shipping and branch y for back-to-back shipping, then you must include DOO_TransportationPlanning in x and y instead of including DOO_TransportationPlanning in a step that happens before the branch.

  • Make sure the DOO_TransportationPlanning task and the Shipment task use the same compensation pattern. For details, see Overview of Managing Change That Happens During Order Fulfillment.

Get Transportation Plan

As an option, get details about the transportation plan from Transportation Management to update attributes in Order Management.

flow that get transportation plan details from Transportation Management.

Note

  • Get updated scheduled dates and order release number from Transportation Management.

  • Prevent Order Management from updating the sales order after it sends it to Transportation Management. See the section about constraints later in this topic.

Note these points about getting the transportation plan and delivery confirmation.

  • The transportation plan uses the DOO_TP_PLANNED value in the TaskInstanceStatusCode attribute.

  • The transportation plan updates the Scheduled Ship Date attribute and the Scheduled Arrival Date attribute.

  • If Transportation Management splits the transportation plan into two separate shipments, then Transportation Management sends the latest date of these shipments to Order Management. For example, if shipment one delivers on January 1, and shipment two delivers on January 15, then the transportation plan that Transportation Management sends to Order Management will include only the latest date of the finished shipment, which is January 15.

  • If the orchestration process receives the transportation plan when its not on a wait step, then it will reject the plan and will reject the request to update.

    To make sure the orchestration process reaches a wait step, allow about 10 minutes between the most recent update that Order Management sends to Transportation Management, and the time when Transportation Management sends the plan update to Order Management.

Get Delivery Confirmation

As an option, add a pause step to make sure invoicing finishes before confirming delivery.

  • Add a pause step that's similar to the Shipping step in the orchestration process.

  • Get delivery confirmation at different points in the orchestration process, such as Awaiting Billing.

    For example, to prevent the Invoice step from running before confirming delivery, add a pause step before the invoice step, then set up the pause so it waits until Order Management receives delivery confirmation.

  • Use the SAC_SYSTEM_EVENT_POD_PAUSE event and the TransportationPlannedFlag attribute.

  • Use SAC_SYSTEM_EVENT_POD_PAUSE to release the pause when Transportation Management sends the DOO_TP_DELIVERED status.

  • Make sure the orchestration process is on a wait step when it receives the response.

  • The status description for DOO_TP_DELIVERED is Shipment Delivered. However, if you use a pause to get delivery status, then Shipment Delivered doesn't display. Instead, set up a pause status that displays Shipment Delivered.

Click Click for Rule on the pause step, then create two pause rules.

click Click for Rule, and then create two pause rules.

Order Management releases SAC_SYSTEM_EVENT_POD_PAUSE after it receives delivery confirmation so you can use this event to process a subsequent sales order.

Rule 1

Create the rule that releases the pause task.

If 
"D" equals ignore case DooSeededOrchestrationRules.DOOFLine.TransporationPlannedFlag
then
assert new DooSeededOrchestrationRules.SacResult (sacType:DooSeededOrchestrationRules.SacResult.SAC_TYPE_IMMEDIATE)

where

Code

Description

"D"

D means Delivered.

If "D" equals ignore case DooSeededOrchestrationRules.DOOFLine.TransporationPlannedFlag

If the TransporationPlannedFlag attribute on the fulfillment line contains D.

assert new DooSeededOrchestrationRules.SacResult (sacType:DooSeededOrchestrationRules.SacResult.SAC_TYPE_IMMEDIATE)

Then immediately release the pause task and continue to the next step in the orchestration process.

Rule 2

Create the rule that pauses the orchestration process.

If 
NOT ("D" equals ignore case DooSeededOrchestrationRules.DOOFLine.TransporationPlannedFlag )
then
assert new DooSeededOrchestrationRules.SacResult (eventName:DooSeededOrchestrationRules.SacResult.SAC_SYSTEM_EVENT_POD_PAUSE, reevaluateFlag:"Y",sacType:DooSeededOrchestrationRules.SacResult.SAC_TYPE_EVENT)

where

Code

Description

"D"

D means Delivered.

If NOT ("D" equals ignore case DooSeededOrchestrationRules.DOOFLine.TransporationPlannedFlag )

If TransporationPlannedFlag on the fulfillment line doesn't contain D.

assert new DooSeededOrchestrationRules.SacResult (eventName:DooSeededOrchestrationRules.SacResult.SAC_SYSTEM_EVENT_POD_PAUSE, reevaluateFlag:"Y",sacType:DooSeededOrchestrationRules.SacResult.SAC_TYPE_EVENT)

Then

  • Use the SAC_SYSTEM_EVENT_POD_PAUSE business event to pause the orchestration process.

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

  • Use SAC_TYPE_EVENT to pause the pause task until Order Management releases SAC_SYSTEM_EVENT_POD_PAUSE.

For details about how to create a pause rule, see Pause Orchestration Processes for Events.

Prevent Changes After Transportation Planning Finishes

If you use Oracle Inventory Management before Update 18C, then enable the predefined Shipment Plan Complete processing constraint.

flow that enables predefined processing constraint Shipment Plan Complete.

Note

  • Shipment Plan Complete prevents you from revising the order line in the Order Management work area after Transportation Management sends the transportation plan to Inventory Management. This constraint comes predefined as disabled. You can enable it during set up.

    Before Update 18C, Inventory Management supports only a quantity change or order cancel after Transportation Management sends the transportation plan to Inventory Management. Inventory Management doesn't support any other order revisions before Update 18C.

    Inventory Management supports revisions starting with Update 18C. You can disable Shipment Plan Complete after you upgrade to Update 18C.

  • Order Management uses the transportation plan to determine whether Transportation Management already sent the transportation plan to Shipping.

  • If you don't use Oracle Inventory Management, then don't enable the Shipment Plan Complete constraint.

For details, see Manage Processing Constraints.

Set Up Integration

Set Up Connector

Set up a connector on the Manage Connector Details page.

set up a connector on page Manage Connector Details.

Note

Attribute

Description

Connector Name

Name the connector TransportationPlanning.

Order Management uses this name at various locations in the flow. Using TransportationPlanning will help you identify the connector involved in the flow that you're setting up or during troubleshooting.

Invocation Mode

If you.

  • Use the predefined integration in Integration Cloud Service, then set Invocation Mode to Business Event.

  • Don't use the predefined integration, then set Invocation Mode to Synchronous or Asynchronous.

User Name

Make sure you have the DOO_MANAGE_WEB_SERVICE_INTERFACE_TO_TRANSPORTATION_DATA_FOR_SALES_ORDER_PRIV privilege.

For details about how to set up privileges, see Security Reference for Order Management.

Use Predefined Integration in Integration Cloud Service

Use a predefined integration in Integration Cloud Service as a starting point for your integration. Use the TransportationPlanning connector to connect through a business event.

flow that Uses connector TransportationPlanning to connect through a business event.

For example:

example flow that Uses connector TransportationPlanning to connect through a business event.

Note

  • A business event triggers the integration.

  • One fulfillment line in Order Management maps to one order release plus one order release line in Transportation Management. For example, the integration maps the ScheduleShipDate attribute in Order Management to the GLogDate attribute in Transportation Management.

  • Modify the predefined integration to meet your business requirements. For example, to group fulfillment lines in a shipment set or configured item, group them into a single order release in Transportation Management.

  • Transportation Management sends a status update to Order Management for each order release line that maps to one fulfillment line.

Examine predefined integrations that use Integration Cloud Service.

Example Response Payload

Here's an example of the response that Transportation Management sends to Order Management.

payload of the response that Transportation Management sends.

Note

  • The predefined integration in Integration Cloud Service uses this structure. If you modify it, then use this payload as an example of the data that your fulfillment system must send.

  • The response can include one or more fulfillment lines.

  • The IntegrationContextCode attribute must equal the DOO_TransportationPlanning task type.

  • Make sure the TaskInstanceStatusCode attribute contains a value that accurately reflects the status, such as DOO_TP_PLANNED. For details about the statuses that you can use, see Integrate Order Management with Transportation Management.

  • The screen print truncates the TransportationOrderReleaseIdentifier line. Here's the full line.

    <com:TransportationOrderReleaseIdentifier>OR_300100090338878</com:TransportationOrderReleaseIdentifier>