You are on page 1of 62

An Oracle White Paper

April 2013

Oracle Fusion Distributed Order Orchestration:


Implementing the Template Task Layer
Implementing the Template Task Layer

Disclaimer
The following is intended to outline our general product direction. It is intended for information purposes
only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or
functionality, and should not be relied upon in making purchasing decisions. The development, release, and
timing of any features or functionality described for Oracle’s products remains at the sole discretion of
Oracle.
Implementing the Template Task Layer

Overview ............................................................................................. 2 
Introduction ......................................................................................... 2 
Architecture Overview ......................................................................... 3 
DooTaskTemplateProcessComposite ............................................. 4 
DooTaskTemplateRequestInterfaceComposite .............................. 4 
DooTaskTemplateResponseInterfaceComposite ........................... 5 
Implementing the Template Task Layer .............................................. 5 
Use case example for TTL .............................................................. 5 
FSM Setup Tasks .......................................................................... 10 
Customizing EBM to include EFF attributes .................................. 16 
Customizing SOA Composites ...................................................... 18 
Creating Connector Services ........................................................ 43 
Conclusion ........................................................................................ 44 
Appendix A – Enterprise Business Messages .............................. 45 
Implementing the Template Task Layer

Overview
This whitepaper provides information on how to implement the Template Task Layer to model
fulfillment system functions that are not available as a pre-built Task Layer Service.

Introduction
Template Task Layer (TTL) is part of the Task Layer Service (TLS) module of Distributed Order
Orchestration (DOO). Task Layer Services provide a way to plug logical fulfillment system functions
into an order orchestration process. Some common fulfillment system functions are shipped out of the
box with DOO (such as Scheduling, Reservation, Shipping, Invoicing and Returns). For fulfillment
functions that are not supported by the Task Layer Service out of the box, the Template Task Layer
allows customers to create DOO compliant custom fulfillment task services.
In addition to the Template Task Layer, DOO provides Activity Task Layer and Fulfillment Task
Layer services for similar external integrations, but for different purposes:
• The Activity Task Layer can be used for external integrations that primarily involve human
interactions such as assigning design work, sending a crew for installation, forwarding
approval requests, etc. The payload in this case is really concise, in that only document
references are sent across in the payloads.
• The Fulfillment task layer (FTL) can be used for external ERP integrations where the external
system is capable of doing some level of intermediate orchestration by itself. In such
instances, DOO does not need to send requests to each intermediate step in order to progress
the fulfillment of sales orders. Instead, DOO waits and receives status updates from the
fulfillment system on an ongoing basis. For example, DOO could send the sales order to the
Oracle E-Business Suite ERP system to perform scheduling, reservation and shipping
functions in a single step. See the Fusion DOO External Integration Guide for more information
about the Fulfillment Task Layer.
The Template Task Layer can be used to perform atomic fulfillment system functions such as credit
check, manufacturing, export compliance, etc. The fulfillment system in this case acts based on the
requests from the Template Task Layer and responds when the task completes.
This white paper provides setup, code and deployment related details that allow you to implement a
template task. To illustrate the process in a meaningful way, we will work through two examples: 1) a
Credit Check task and 2) a Manufacturing task that a hypothetical customer needs to complete prior to
shipping. It is assumed that the reader has a basic understanding of the usage of JDeveloper and
knowledge of BPEL and XSL in order to perform the SOA customization steps outlined in this
whitepaper.

2
Implementing the Template Task Layer

Architecture Overview
The Orchestration Process is the cornerstone of Distributed Order Orchestration. An orchestration
process is an assembly of individual tasks that together lead to fulfillment of an order. The tasks that
perform the individual fulfillment functions are the focus of this paper.
TTL consists of three SOA Composites and one ADF Service. Figure 1 shows the structure of TTL
and how it fits into the orchestration execution engine. The ADF service is a DOO internal service
that performs updates, cross-references, splits and other DOO core functions. The ADF service is not
customizable and cannot be called directly, but it is used internally to execute process steps. The SOA
Composites (in yellow) provide the necessary customization flexibility to model many different
fulfillment functions. These composites use SOA Customization features that offer clear and well
defined extension points while still protecting the core DOO functionality. Please refer to Oracle®
Fusion Middleware Developer's Guide for Oracle SOA Suite for information on the types of customizations
that SOA Customization supports.

S t ra t

CO n
I st la
CPE Re
q ru
i e d?
Re q u
ri e d ?

Ye s Ye s

Bo ok O
C n
I st la Bo o k CP E
I n ts la

Res e
r v e
I n e
v n
t o yr W tia f ro CP
E I sn ta l

W tia f ro O
C I n st la

As g
is n Po
rt

T e st riC c tu
i

W tia f ro e
Rqu
e st

Dat e

A c vit a te
C ri c u
ti

A c vit a te n
ilB g

End

Figure 1 : Template Task Layer Structure

3
Implementing the Template Task Layer

Fusion DOO leverages Oracle’s Application Integration Architecture (AIA) for communications with
order capture and fulfillment systems. AIA’s Enterprise Business Objects (EBOs) are electronic
business documents that support cross-application business processes, and are independent of the
source or target applications. Enterprise Business Messages (EBMs) are XML payloads that AIA uses
as messages in EBO service operations. They provide the restricted view of EBO content needed to
perform a specific operation. Even though DOO produces and consumes messages that follow the
AIA EBM standard, customers are free to use a third-party SOA platform rather than AIA’s Fusion
Middleware infrastructure if they choose to perform the service interactions.

The following sections introduce each customizable composite, along with the customizations that are
supported. In a later section, we will discuss detailed steps for implementing these customizations
through an example.

DooTaskTemplateProcessComposite

Function

This composite contains the core processing for TTL. It interacts with backend business services to
complete the interaction.

Customization Points

Outbound Flow: A BPEL customizable scope is available prior to invocation of EIL that provides
access to the qualified fulfillment lines for this task. In this scope, you can update the BPEL variable
GetValidFLinesResponse_outputVariable for enriching the message that goes out to the fulfillment
system. You can also implement validations and throw BPEL exceptions to signal error conditions to
the orchestration process. In such a scenario, the orchestration process will trigger a wait and allow you
to control the process via DOO error recovery mechanism. Within this scope you can only perform
updates to the Extensible Flex field (EFF) elements or perform validations as described above.
Inbound Flow: A BPEL customizable scope is available prior to invocation of the task update service
and allows access to fulfillment system response. In this scope, you can update the BPEL variable
Invoke_processTaskResponseAsync_InputVariable. Use this scope for initiating splits, deriving status
values and updating EFFs after receiving the delayed response from the fulfillment connector.

DooTaskTemplateRequestInterfaceComposite

Function

This composite prepares the message for fulfillment systems and receives the immediate response
securely. It produces different EBMs for Create, Update, Cancel, Apply Hold and Release Hold
operations and invokes the corresponding operations of the External connector service. Please refer

4
Implementing the Template Task Layer

to Appendix-A of this whitepaper for details of the EBM payload structure supported for Template
Task Layer.

Customization Point

A customizable scope is available to allow you to change the mappings for each of these EBMs and for
responses for each of them. Out of the box, these mappings take care of all DOO native data model
elements. Once you define EFFs to accommodate your own data elements, you will need to add
mappings for them so that these new data elements can be sent to and received from the Fulfillment
systems. Please see Oracle whitepaper “Oracle Fusion Distributed Order Orchestration: Extensible Flexfield
Usage” for more information.

DooTaskTemplateResponseInterfaceComposite

Function

This composite securely receives the delayed fulfillment task status notifications from the external
connector service for the fulfillment system. It receives its input in the EBM format and transforms it
to DOO service data object format.

Customization Point

A customizable scope is available for controlling mappings between DOO and EBM from the
fulfillment system. Just like the Request interface discussed above, this composite allows to you to add
mappings for your EFFs.

Implementing the Template Task Layer


Use case example for TTL
We will use the following use case example in this whitepaper to demonstrate the setups as well as
usage of BPEL customization scope to implement Template Task Layer.
The implementing enterprise sells capital equipment that is only manufactured after customers place
firm orders. As it captures the sales order details, the order capture system also specifies the industry
standard compliance requirements for the equipment. DOO decomposes each order and then
schedules it in the Schedule task layer. Then TTL processing begins.
1. Credit Check: The orchestration order passes through the Credit Check task, which is
implemented as a short running TTL task. The Credit check task layer will invoke an external
credit rating system which will return a credit rating back to the task layer based on the credit
history of the sold-to customer. DooTaskTemplateRequestInterfaceComposite will be
customized to receive this credit rating and store it in the DOO data model.

5
Implementing the Template Task Layer

2. Manufacturing (routing code assignment): The orchestration order next proceeds to the
Manufacturing task layer, which has been implemented here as a long running TTL task. The
manufacturing task layer will decide the manufacturing routing to be used based on the
compliance standard and credit rating obtained previously. This is decided within the pre-
processing customization scope within the custom process composite, which we will name
DooTaskTemplateManufacturingComposite.
3. Manufacturing (routing code communication): The manufacturing routing code is then
sent to the external manufacturing system to create and execute the manufacturing work
order. This involves customizing the BPEL scope within the
DooTaskTemplateRequestInterfaceComposite to map out the values to the outbound EBM.
4. Manufacturing completion: After completion of manufacturing, the connector for
manufacturing system will return the quantity of assembly completed along with the QC
result. The BPEL customization within the DooTaskTemplateResponseInterfaceComposite
will capture the QC result from the inbound EBM and store it in DOO data model.
5. Manufacturing (post-processing): The task response BPEL within the custom process
composite (DooTaskTemplateManufacturingComposite) can be further modified to
incorporate post processing logic, such as interpreting the status based on the quantity
processed, splits, etc. (We will discuss the detailed implementation of these in subsequent
sections.)
Figure 2 illustrates these steps in the context of the orchestration process.

Figure 2 : SOA Interactions for TTL use case

6
Implementing the Template Task Layer

Having identified the fulfillment system functions that you want to implement using TTL, at a high
level you will need to complete the following steps:
1. Perform FSM setup tasks
2. Customize EBMs to include EFF attributes (optional)
3. Implement SOA composite customizations (optional)
4. Create Connector Services
5. Deploy, Secure and Test

7
Implementing the Template Task Layer

The following flow diagrams provide a high level overview of the setup tasks to perform in
Functional Setup Manager and JDeveloper.

Figure 3 : FSM Setup Tasks for TTL

8
Implementing the Template Task Layer

Figure 4 : Technical Setup Tasks for TTL

9
Implementing the Template Task Layer

FSM Setup Tasks


Setup tasks are focused around creating your fulfillment function as a Task Type in DOO, defining the
services it supports and the statuses that it can have. The below mentioned setup tasks can be accessed
from Fusion Functional Setup Manager (FSM).
1. Manage Task Types
2. Manage Status Values
3. Manage Orchestration Process Definition
4. Manage External Interface Web Service Details
5. Manage External Interface Routing Rules

1. Creating a Task Type

You can use the Manage Task Types setup task to create new task types and reference the services within
them in process definition. From Fusion Functional Setup Manager, query and navigate to this setup
task. In the Manage Task Types UI, click on Add Custom button and enter the name of the task type
and a description for it. In the Services tab below, define the services that this task will support. At this
time, you also need to decide if you would like to use the default process composite or create a new
one using SOA Customization. If no customizations are required in the process composite, you can
leave the composite name fields blank. If you want to create a new composite, you will need to enter
the name of the custom composite in this Services tab. This custom composite can be built by making a
copy of the seeded DooTaskTemplateProcessComposite. Please see the next section ‘Customizing
SOA composites’ for more details regarding this. You should enter the same composite name in all the
rows of the Services tab. You must also define at least one task in the Tasks tab.

10
Implementing the Template Task Layer

Figure 5 : TTL Task Type Setup – without a customized process composite

11
Implementing the Template Task Layer

In our example, Figure 5 above shows how the Credit Check task type setup will look when no
customizations are required within the seeded Process composite
(DooTaskTemplateProcessComposite) . As you can see, the Composite name fields can be left blank
in such cases.

For the Manufacturing task type, we will introduce some pre-processing and post-processing logic
within the process composite. Figure 6 below shows how a custom process composite can be linked to
the services in task type definition.

Figure 6 : TTL Task Type Setup – with a customized process composite

2. Setting up Status Codes

In this step, you will set up the status codes that your fulfillment lines, tasks and orchestration process
will go through. From Fusion Functional Setup Manager, query and navigate to the setup task Manage
Status Values. In the Status codes tab, create a list of all valid statuses that you intend to use in addition
to the seeded status codes and other existing status codes. Then using this list of defined statuses,
associate the status for each of the following: fulfillment lines, task types, and orchestration processes.
Finally create status conditions in orchestration processes by choosing from these status values.
For our example, we will associate the following status codes to the Credit Check and Manufacturing
template task types.

12
Implementing the Template Task Layer

Credit Check task – CREDIT_CHECK_FAILED, CREDIT_CHECK_PASSED


Manufacturing task – MANUFACTURING_INPROGRESS, MANUFACTURING_COMPLETED,
MANUFACTURING_CANCELLED
We will use these as status codes for the task types as well as the fulfillment line.
When defining task status conditions using the Manage Task Status Conditions setup task, you can mark
certain status mapping to denote the completion of the task. At runtime, when the task receives this
status it uses the exit criteria defined on the process definition to exit the task and proceed to the next
step. In our example we have defined ‘MANUFACTURING_COMPLETED’ as mark for complete.
Depending on your requirements, we may also want to create an Orchestration Process Class that will
help you configure status codes for the orchestration process as a whole. For more information related
to defining status codes and setting it up for task type, fulfillment line and orchestration process please
refer the Define Sales Order Fulfillment chapter of Oracle Fusion Applications Order Fulfillment, Order
Orchestration Guide.

Figure 7 : Status Codes definition

3. Setting up an Orchestration Process

Use the Manage Orchestration Process Definition setup task in Functional Setup Manager to define your
orchestration process definition and set up status conditions to derive status values for orchestration
process status and fulfillment line statuses. Use the Step definition tab to define the steps within the
process and then the Status Conditions tab to define the status value conditions.

13
Implementing the Template Task Layer

Figure 8 below shows a sample orchestration process definition that uses TTL for Credit Checking as
well as Manufacturing tasks. In this example, these TTL tasks are used along with seeded tasks for
Scheduling, Shipping, Invoicing, etc. You can model a TTL task as a short running task or as a long
running task.
With short running tasks, you will not require a Wait step – it is expected that the fulfillment system
will fulfill the task as part of a single interaction. For long running tasks, the fulfillment system provides
only an acknowledgement when the request is first sent to it. Subsequently, the fulfillment system can
respond back with a series of status updates for the request. In such cases the orchestration process
definition will need a Wait step that halts the orchestration process until the fulfillment system tells that
the task is completed. For the Wait step, you select the status values that signal the completion of the
step.
In our example, we will define the Credit Check task as a short running task (implemented as a single
step) and the Manufacturing task as a long running task (implemented as two steps – a request step and
a wait step).

Figure 8 : Process definition with short- and long-running TTL Tasks

For more information on creating orchestration processes and configuring status codes, please see
Oracle Fusion Applications Order Fulfillment, Order Orchestration Guide.

4. Manage Web Service Details (EIL)

The Manage External Interface Web Service Details setup is part of the External Interface Layer (EIL)
module. It allows you to register the end point URLs of the connector web services that will be used

14
Implementing the Template Task Layer

by TTL and other task layers to communicate with external fulfillment systems. The information that is
captured in EIL includes the target system name, connector name, end point URL of connector web
service, the user credential key and the keystore recipient alias of the certificate. The key and alias
mentioned here are used to call the connector web services securely.

Figure 9 : Manage Web Service Details

5. External Interface Layer Routing

The Manage External Interface Routing Rules setup allows you to write business rules that determine which
fulfillment system receives a fulfillment request. Note that TTL supports aggregation of messages prior
to sending them to the fulfillment system. This can be achieved by asserting values for aggregation
parameters like AGGREGATOR_WAIT_TIME, AGGREGATOR_MAX_FLINES. The Aggregator
collects information from each correlated message and publishes a single aggregated message to the
fulfillment system. This allows the fulfillment system to receive the entire correlated message together
which minimizes issues with timing of messages. When the total number of Fulfillment lines
aggregated is equal to the AGGREGATOR_MAX_FLINES the request will be sent to the fulfillment
system. When the time has reached the AGGREGATOR_WAIT_TIME , the aggregator will aggregate
all the fulfillment lines and send the request to the fulfillment system.
Please refer to Fulfillment Order Task Layer Explained section of Oracle® Fusion Applications Order
Fulfillment, Order Orchestration Guide for details regarding functionality of aggregation.

15
Implementing the Template Task Layer

Figure 10 : EIL Routing Rules

6. Extensible Flexfields (EFF)

DOO provides a rich data model that has been created based on requirements from a variety of
business processes. Your business process, however, might require you to capture additional order data
and transact it with the fulfillment system. This step is optional and will be required only if you intend
to extend the DOO data model to capture your own attributes. To do this, you need to first define the
Extensible Flexfields using Manage Extensible Flexfields setup task. EFFs can be defined at different
levels, such as the orchestration order header, line, fulfillment line, etc. Please refer to the Oracle®
Fusion Applications Extensibility Guide for more details on how to configure the flexfields for your
installation.

Customizing EBM to include EFF attributes


This step is optional. It will be required only if you intend to extend the DOO data model to capture
your own attributes.
The seeded composites DooTaskTemplateRequestInterfaceComposite and
DooTaskTemplateResponseInterfaceComposite provide customization scopes to plug in the mappings
between DOO data model and EBMs. Follow directions in the Oracle® Fusion Middleware Developer's

16
Implementing the Template Task Layer

Guide for Oracle Application Integration Architecture(AIA) Foundation Pack on how to extend your EBMs for
your custom data elements. Then refer to the whitepaper Oracle Fusion Distributed Order Orchestration:
Extensible Flexfield Usage on how to extend the TTL Request and Response interfaces to have additional
mappings. The whitepaper covers details on how to add custom EFF fields in an EBM, publish the
customized EBM to SOA Meta Data Repository (SOA-MDS), defining and deploying EFFs in Fusion
and updating EFF definition to DOO service data objects.
In our example, we have added the following custom attributes to various EBOs. The compliance
standard is captured at the header level of Sales Order EBO and the remaining custom attributes are
captured at the Fulfill Order schedule level of the Fulfill Order EBO as placeholders to interact during
the credit check and manufacturing TTLs.
1. Compliance Standard, text type
a. Obtained from order capture / decomposition
b. Can take values of ‘API’, ‘ISO’
2. Credit Rating , numeric type
a. Credit Check task layer receives this information from external system.
b. Can take values of ‘1’ or ‘2’
3. Routing name , text type
a. Derived in Manufacturing task layer based on Compliance standard and Credit
Rating.
b. Can take values of ‘Routing-1’, ‘Routing-2’, ‘Routing-3’, ‘Default Routing’
If Compliance standard = ‘API’ and Credit rating = 1 then use ‘Routing-1’
If Compliance standard = ‘API’ and Credit rating = 2 then use ‘Routing-2’
If Compliance standard = ‘ISO’ and Credit rating = 1 then use ‘Routing-1’
If Compliance standard = ‘ISO’ and Credit rating = 2 then use ‘Routing-3’
Else use ‘Default Routing’
4. QC result, text type.
a. Manufacturing task layer receives this information from external system.
b. Can take values of ‘PASSED’ , ‘FAILED’

17
Implementing the Template Task Layer

Figure 11 : Screenshot showing custom EFF attributes incorporated in EBO

Before proceeding, ensure the following setup steps have been completed. Please refer the Oracle Fusion
Distributed Order Orchestration: Extensible Flexfield Usage whitepaper for the steps to perform these.
1. Define and deploy EFFs for DOO entities in the Fusion environment.
2. Run the Update SOA MDS composite to propagate the EFF definition to DOO SDO.

Customizing SOA Composites


This is an optional step. If your new task does not have any special mappings, enrichment or
processing needs, then the out of the box composites will be sufficient. However, if you need to
customize the processing and use your own logic for controlling status codes, line splitting, or EFF
enrichments, perform the steps mentioned below as applicable.

Setting up JDeveloper in Customization Mode

1. Customizations to DooTaskTemplateRequestInterfaceComposite and


DooTaskTemplateResponseInterfaceComposite should retain the name of the composite. For
DooTaskTemplateProcessComposite, each customization instance should have a different
name. You can choose a name that reflects the business purpose of the task that you are
trying to model.
2. See Oracle® Fusion Applications Extensibility Guide for details about how to set up the
development environment.
3. Start JDeveloper using Oracle Application Fusion Developer Role and create a SOA project
as shown below.

18
Implementing the Template Task Layer

Click Ok button. In the Create SOA Project window, enter the Project Name and Location as
shown in figure below.

19
Implementing the Template Task Layer

Select Empty Composite and Click the Finish button.

4. In the project panel, select the project name created in above step and then click FileÆ
Import. Select “SOA Archive into SOA Project” and press OK.

In the Import Composite Archive, select the location for SOA archive for your base
composite. For example, when customizing the process composite, pick
sca_DooTaskTemplateProcessComposite.jar (refer Note below) and provide a name in the
“Composite Name” field to match with your new project name. Also check the “Import For
Customization” checkbox. Click the Finish button.

20
Implementing the Template Task Layer

Note : If you do not have an integrated development environment that includes the source jar files, you
can use Enterprise Manager (EM) of WebLogic Server (WLS) to download the jar file for the seeded
composites shipped along with Fusion Distributed Order Orchestration. After modifications, you can
go back to Enterprise Manager to deploy a new version of the customized composite. Refer the figure
below to see how to download the jar file from WLS.

21
Implementing the Template Task Layer

5. In the Application Resources pane of JDeveloper, open Descriptors/ADF META-INF/adf-


config.xml and switch to the MDS Configuration tab.

In the Customization Configuration table, add the class oracle.apps.fnd.applcore.


customization.GlobalCC and save.

22
Implementing the Template Task Layer

Note : If you do not see the oracle.apps.fnd.applcore.customization.GlobalCC class, then perform the
following steps. Select and right click the composite name to bring up the Project Properties window.
In Libraries and Classpath, add the libraries - ‘Applications Core’ and 'Oracle XML parser v2’. Click
OK button. You should now be able to see the GlobalCC class as mentioned in the above step.

23
Implementing the Template Task Layer

6. While in the MDS Configuration editor, click on the link titled “Configure Design Time
Customization Layer Values”. This will open CustomizationLayerValues.xml file for editing.
In this file, replace the contents with the following:
<cust-layers xmlns="http://xmlns.oracfle.com/mds/dt">
<cust-layer name="Global" id-prefix="g">
<cust-layer-value value="Global" display-name="Global" id-prefix="1"/>
</cust-layer>
</cust-layers>

7. Restart JDeveloper and pick the Oracle Fusion Applications Customization role. This will allow you
to customize the predefined customization points and will help you restrict your changes to
these supported customization points only.

24
Implementing the Template Task Layer

When you start JDeveloper in this role, you will see a pane titled “Customization Context”.
Ensure that “Edit with following Customization Context” and the Global customization layer
value are selected.

8. While in the Oracle Fusion Applications Customization role, open the BPEL process you want to
customize and follow the steps below in conjunction with SOA Customization document to
add activities to the customizable scope as necessary to implement your customization. Notice
that in this role, you are not allowed to make any changes to the Oracle shipped artifacts and
changes are allowed only within the customizable scope.
Note : For each composite that you would like to customize, repeat the above steps before proceeding
to the customization steps below. This will set the base by creating the project by importing the
existing composite into JDeveloper and preparing to work in the customization scope by allowing
modifications only in these scopes.

Customizing DooTaskTemplateRequestInterfaceComposite

The DooTaskTemplateRequestInterfaceComposite can be used both to map SDO elements to request


EBM elements during outbound request flow as well as to map immediate response EBM elements to
SDO elements. We will perform both of these mappings in our example use case below.

25
Implementing the Template Task Layer

Customizing DOOTaskTemplateRequestInterfaceComposite for immediate response payload


The following section outlines the steps for customization of
DOOTaskTemplateRequestInterfaceComposite in order to receive custom EFF attribute values from
the immediate response EBM payload and pass it to the corresponding attributes in the Fulfillment
Line SDO. In our example, the Credit Check task layer receives the ‘Credit Rating’ value as part of the
immediate response EBM payload from the external fulfillment system.
Locate the customizable scope named ‘CreateResponseCustomizableScope’ within
TaskRequestInterface.BPEL as shown below.

Add a new Transform activity immediately after the seeded


XformCreateFulfillOrderOutputToDooSDO transformation activity.

26
Implementing the Template Task Layer

Right click this transform and edit it. In the General tab, provide an appropriate name for the
transform activity. Click Ok.

The BPEL process should now look like the following.

27
Implementing the Template Task Layer

Right click this transform again and edit it. Enter the source and target variable as below. It is
important to add the target SDO variable first and then the input EBM variable in the sources, since
you are copying the Extensible Flexfields from EBM to SDO. This will make an entry of '<xsl:param
name="inputVariable.payload"/>' to mark the EBM as parameter when you do the mapping.
Also, please refer to whitepaper ‘Oracle Fusion Distributed Order Orchestration: Extensible Flexfield Usage’ for
further details regarding this.
Enter a New name for the XSL mapper file and click the Ok button or the Create (plus) icon to open
the mapper file. In our example, we have entered the mapper file name
‘TransformationImmidiateResponseEFF’. The mappings between the EFF fields in EBM and SDO
are stored in this XSL file.

28
Implementing the Template Task Layer

The XSL mapper page opens up as below.

Right click ‘hdrtl:FulfillLineEffCategories’ and select Substitute Element or Type.

29
Implementing the Template Task Layer

Expand the hdtrl:FullLineEffCategories node and right click category node to Set Text.

Since we are using the Fulfill line EFF, add DOO_FULFILL_LINES_ADD_INFO text.

30
Implementing the Template Task Layer

Now perform the mapping between the EFF attributes of the input response payload EBM and the
EFF attributes present in the SDO data elements. Use the mouse to drag the connectors between the
EBM and SDO attributes. Save the changes to your project.

Customizing DOOTasktemplateRequestInterfaceComposite for Outbound request payload


The following section outlines the steps to customize DOOTaskTemplateRequestInterfaceComposite
in order to send custom EFF attribute values from DOO SDO to the Request EBM payload. In our
example, the manufacturing routing name is sent in the request payload from the Manufacturing task
layer to the external fulfillment system.
Locate the customizable scope named ‘CustomizationForCreateRequest_aggr’ within
TaskRequestInterface.BPEL as shown below.

31
Implementing the Template Task Layer

Add a new Transform activity immediately after the seeded


XFormDooSDOToCreateFulfillOrderInput transformation activity.

32
Implementing the Template Task Layer

Right click the newly created Transform activity and rename it appropriately using the general tab. In
our example we have named it ‘TransformSDOtoEBMforEFF’.

Right click this transform and edit it. In the Transformation tab, enter the source and target variable as
below. It is important to add the EBM first and SDO after that in the input sources to the XSL file, so
that the SDO is marked as xsl:param. Also, please refer to whitepaper ‘Oracle Fusion Distributed Order
Orchestration: Extensible Flexfield Usage’ for further details regarding this.

33
Implementing the Template Task Layer

Enter a New mapper XSL file and click the OK button or the Create (plus) icon to open the mapper
file.

Edit the XSL script directly as shown below to perform the mapping between EBM and SDO
attributes.

Save the changes to your project and then deploy the modified composite to test the changes made.

34
Implementing the Template Task Layer

Customizing DooTaskTemplateResponseInterfaceComposite

The following section outlines the steps to customize


DOOTaskTemplateResponseInterfaceComposite in order to receive custom EFF attribute values
from the Fulfillment system connector's Notification response (delayed) to the DOO SDO. In our
example, the Manufacturing system's connector sends the 'QC result' value, along with other details
such as the item and quantity manufactured. This 'QC result' will be stored within an EFF defined
within Fusion DOO system.
Locate the customizable scope named ‘ScopeXformEBM2SDO’ within TaskResponseInterface.BPEL,
as shown below.

Add a new Transform activity immediately after the seeded XFormToUpdateTemplateServiceInput


transformation activity.

35
Implementing the Template Task Layer

Right click the newly created Transform activity and rename it appropriately using the General tab. In
our example we have named it ‘TransformResponse’.

36
Implementing the Template Task Layer

Right click this transform and edit it. In the transformation tab, enter the source and target variables as
shown below. It is important to add the target SDO variable first and then the input EBM variable in
the sources, since you are copying the Extensible Flexfields from the EBM to the SDO. This will make
an entry of '<xsl:param name="inputVariable.payload"/>' to mark the EBM as parameter when you
do the mapping.
Also, please refer to the whitepaper ‘Oracle Fusion Distributed Order Orchestration: Extensible Flexfield Usage’
for further details regarding this.
Enter a New mapper XSL file and click the OK button or the Create (plus) icon to open the mapper
file. In our example we have named it TransformationResponseEFF.xsl.

Enter the XSL script directly as below to perform the mapping between EBM and SDO attributes.

37
Implementing the Template Task Layer

Save the changes to your project and then deploy the modified composite to test the changes made.

Customizing DooTaskTemplateProcessComposite

Customizing the TaskRequest.BPEL for Pre-processing logic

If you are customizing the outbound flow, open TaskRequest.BPEL in JDeveloper in customization
mode as described above. Locate a BPEL scope named “CustomizableScope”. You will notice that one
assign activity is present in this scope out of the box, which sets the value of variable
CUSTOM_TASK_SAVE_EFF_ENRICHMENTS to false. As noted earlier, you should only change
EFF values in this scope. Once you have changed these EFF values, if you want to update the database
with these new values, you should change this assign activity and set
CUSTOM_TASK_SAVE_EFF_ENRICHMENTS to true.

38
Implementing the Template Task Layer

Add a new Transform activity before the seeded ‘SaveEffEnrichments’ transform activity.

We will use this transform activity to introduce the business logic to derive the manufacturing routing
name. Rename the transform activity appropriately.

39
Implementing the Template Task Layer

Right click the transform activity and in the transformation tab, enter the source and target variables as
below. The variable that you can change the EFF values in is
GetValidFLinesResponse_outputVariable. Do not change any other variable.
Enter mapper XSL file as below and click OK to open the mapper file. Alternatively you can edit the
mapper file by clicking the edit icon.

You can edit the mapper file by manually writing the business logic to be implemented for EFF
enrichments using XSL script as shown below.

40
Implementing the Template Task Layer

Go back to the BPEL diagram and right click the seeded SaveEffEnrichments transformation activity.
Set the value of CUSTOM_TASK_SAVE_EFF_ENRICHMENTS to true. This will ensure that all
EFF values that were enriched through custom business logic will be saved to the database.

Save the changes to your project and then deploy the modified composite to test the changes made.
If you need to raise an exception during your business logic, you can set error text in
CUSTOM_TASK_ERROR_TEXT and raise the exception
{http://xmlns.oracle.com/apps/scm/doo/taskLayer/DooTaskTemplateProcessComposite}CustomT

41
Implementing the Template Task Layer

askFault. Note that CUSTOM_TASK_ERROR_TEXT is not translatable. If you need to log a


translatable message, you can set CUSTOM_TASK_ERROR_CODE and
CUSTOM_TASK_ERROR_TOKENS instead and then raise the same exception. The error code
used must be defined under the Order Orchestration application.

TaskResponse.BPEL

If you are customizing the inbound flow, open TaskResponse.BPEL in JDeveloper in customization
mode as described above. Locate a BPEL scope named “CustomizableScope”. In this scope, you can
make changes to the Invoke_processTaskResponseAsync_InputVariable variable.
Note that for the response flow, communicating the fulfillment status and indications of any splits are
two important pieces of information that flow in. In addition, there might be updates to some elements
and some fulfillment details, lot serial or serial number etc. If your fulfillment system does not send a
clear indication of a status code, you can use this scope to interpret the data and then populate the
Status element for each line. For example, some fulfillment systems might send a ShippedQuantity that is
equal to the OrderedQuantity, but they might not send a Status. In such cases, you can customize this
scope and add code to recognize that the line is now shipped and set the status code to SHIPPED.
Further, you can communicate two types of splits that take place in fulfillment systems – Quantity Split
or Shipset/Model Split. In both cases, you would like to split the Orchestration process so that the
fulfilled part can be progressed to the next step while the pending part will stay at the current step and
wait for further response from the fulfillment system.
In case of Quantity Splits, the fulfillment system has fulfilled a part of the requested quantity. The
requirement from TTL is that in such cases, we should expect two lines from the fulfillment system -
one for the fulfilled quantity and other for the remaining quantity. This can be achieved by sending a
single payload of ProcessFulfillmentOrderFulfillmentTaskNotificationEBM with a multiple Fulfillorder
Schedule Lines for each split quantity. In some situations, there may be a need to split into more than
two parts - that is acceptable as well. Let’s consider an example where we have requested fulfillment of
a 50 pieces of item A via fulfill line ID 100. The fulfillment system has fulfilled 30 and we still expect
20 more to be fulfilled later. If you want to split the process at this point, the input should be as
follows:
FulfillLineId Ordered FulfillmentSplitRefId Split Behavior
Quantity
1. 100 30 When populated this way, the quantity is
updated on the existing fulfillment line.
2. 20 100 When populated this way, new split
fulfillment line is created.

Table 1. Sample Quantity Split Data


Note that in this case, there should be a single schedule line in the response payload that has the
FulfillLineId populated and the FulfillmentSplitRefId not populated. This will be used to update the
existing fulfillment line. Then there could be multiple response lines in the payload that has the

42
Implementing the Template Task Layer

FulfillmentSplitRefId set to the original fulfillment line ID. These will be used to create new split
fulfillment lines that will be orchestrated independently. The total OrderedQuantity must match the
original value. As long as there are multiple response lines in the input that have the same FulfillLineId
and FulfillmentSplitRefId, TTL will see it as a request to split.

In case of Shipset or Model Split, you have a shipset or a model but the fulfillment system sent you a
response indicating that only some of the lines were fulfilled. In this case, we expect only the fulfilled
lines from the fulfillment system. If TTL receives only some of the expected lines in the fulfillment
system response, it will check if you want to split. It checks this by looking at the FinalStatusFlag
element of the FulfillLineDetail structure for these response lines. If this flag is set to Y, it indicates
that the fulfillment system is done working on these lines and that you want to split and let these lines
proceed for further orchestration while the unfulfilled lines will wait at the current step.
You can use this customization scope to manipulate the data to communicate your desired split to
TTL.

Creating Connector Services


DOO uses standard EBM payloads to send and receives messages to fulfillment systems. As part of
your DOO implementation, you will create connector services that connect these DOO touch points
to your fulfillment system or to AIA PIPs. Please refer to the whitepaper Oracle Fusion Distributed Order
Orchestration – Non Fusion Fulfillment System Connector for details about how to create the connector. TTL
uses the FulfillmentOrderEBO and the following operations. You can see Oracle Application Integration
Architecture (AIA) documentation for details of the messages used in these operations.
Purpose Operation
Create New ExecuteFulfillmentOrderFulfillmentTask
Update ExecuteUpdatedFulfillmentOrderFulfillmentTask
Cancel CancelFulfillmentOrderFulfillmentTask
Apply Hold HoldFulfillmentOrderScheduleFulfillmentTaskList
Release Hold ReleaseFulfillmentOrderScheduleFulfillmentTaskHoldList
Fulfillment System Response for Long- ProcessFulfillmentOrderFulfillmentTaskNotification
Running processes

Table 2. Operations Used by Template Task Layer


Appendix A of this document lists the EBM elements that are populated on the outbound messages
and the ones that are expected in responses.

43
Implementing the Template Task Layer

Conclusion
Template Task Layer provides a customizable way for you to embed various different tasks into your
order orchestration processes. While the seeded task layers help you implement the core tasks quickly,
the Task Layers provide the necessary extension capabilities that are needed to model a variety of
additional tasks. This paper provided details on the typical set of steps to perform to implement a task
using the Template Task Layer.

44
Implementing the Template Task Layer

Appendix A – Enterprise Business Messages


The following table summarizes the outbound/ inbound EBM messages that are generated while
performing different operations and their corresponding response payloads.

EBM Message Response Message


ExecuteFulfillmentOrderFulfillme Outbound ExecuteFulfillmentOrderFulfillmentT Inbound
ntTaskEBM askResponseEBM
ExecuteUpdatedFulfillmentOrder Outbound ExecuteUpdatedFulfillmentOrderFulf Inbound
FulfillmentTaskEBM illmentTaskResponseEBM
HoldFulfillmentOrderScheduleFul Outbound HoldFulfillmentOrderScheduleFulfill Inbound
fillmentTaskListEBM mentTaskListResponseEBM
ReleaseFulfillmentOrderScheduleF Outbound ReleaseFulfillmentOrderScheduleFulf Inbound
ulfillmentTaskHoldListEBM illmentTaskHoldListResponseEBM
ProcessFulfillmentOrderFulfillmen Inbound ProcessFulfillmentOrderFulfillmentT Outbound
tTaskNotificationEBM askNotificationResponseEBM
QueryFulfillmentOrderFulfillment Outbound QueryFulfillmentOrderFulfillmentTa Inbound
TaskEBM skResponseEBM

Outbound

Operations Create and Update

These operations use the ExecuteFulfillmentOrderFulfillmentTask and


ExecuteUpdatedFulfillmentOrderFulfillmentTask EBMs respectively. These EBMs have similar
structure and the mappings for both are as under:

EBM Entity EBM Element DOO Attribute Cross


Referen
ced?
ExecuteFulfillmentOrderFu
lfillmentTask

ExecuteUpdatedFulfillment
OrderFulfillmentTask
Identification/ID DOOHeader.OrderNumber
ApplicationObjectKey/ID DOOHeader.HeaderId
CurrencyCode DOOHeader.CurrencyCode Yes
OrderDateTime DOOHeader.OrderedDate
PartialShipmentAllowedIndicator DOOHeader. PartialShipAllowedFlag
TypeCode DOOHeader.OrderTypeCode

45
Implementing the Template Task Layer

Status/Code DOOHeader.StatusCode
Status/EffectiveDateTime DOOHeader.RequestCancelDate
Status/ReasonCode DOOHeader.CancelReasonCode Yes
Status/ Description DOOHeader.Comments
Status/ SubStatusCode DOOHeader.OpenFlag
CurrencyExchange/ ConversionRate DOOHeader.ConversionRate
CurrencyExchange/ ConversionTypeCode DOOHeader.ConversionType Yes
CurrencyExchange/ ConversionRateDateTime DOOHeader.ConversionDate
BusinessUnitReference/ DOOHeader.OrgId
BusinessUnitIdentification/
ApplicationObjectKey/ID
BusinessUnitReference/ DOOHeader.SourceOrgId
BusinessUnitIdentification/
AlternateObjectKey /ID
CustomerPurchaseOrderReference/ DOOHeader. CustomerPoNumber
Identification/ID
SalesOrderReference/ DOOHeader. SourceOrderNumber
SalesOrderIdentification/ID
SalesOrderReference/ DOOHeader.SourceOrderId
SalesOrderIdentification/
ApplicationObjectKey/ID
SalesOrderReference/ DOOHeader.SourceRevisionNumber
SalesOrderIdentification/Revision/Number
FulfillmentOrderCustomerParty/ DOOHeader.SoldToPartyId Yes
CustomerPartyReference/ PartyIdentification/
ApplicationObjectKey/ID
FulfillmentOrderCustomerParty/ DOOHeader.SoldToPartyContactId Yes
CustomerPartyReference/
Contact/Identification/
ApplicationObjectKey/ID
FulfillmentOrderCustomerParty/ DOOHeader.SoldToCustomerId
CustomerPartyReference/
CustomerPartyAccountIdentification/
ApplicationObjectKey/ID
FulfillmentOrderCustomerParty/ DOOHeader.SoldToCustomerId Yes
CustomerPartyReference/
CustomerPartyAccountIdentification/
AlternateObjectKey/ID
FulfillmentOrderCustomerParty/ DOOHeader.SoldToContactId
CustomerPartyReference/
CustomerPartyAccountContactIdentification/
ApplicationObjectKey/ID
FulfillmentOrderCustomerParty/ DOOHeader.SoldToContactId Yes
CustomerPartyReference/
CustomerPartyAccountContactIdentification/
AlternateObjectKey/ID
FulfillmentOrderCharge/ Identification/ DOOPriceAdjustments.PriceAdjustmentId
ApplicationObjectKey/ID
FulfillmentOrderCharge/ Charge/ TypeCode DOOPriceAdjustments. AdjustmentTypeCode
FulfillmentOrderCharge/ Charge/ Amount DOOPriceAdjustments.Amount
FulfillmentOrderCharge/ Charge/ Description DOOPriceAdjustments. AdjustmentName
FulfillmentOrderPayment/ PaymentSetId
FulfillmentOrderReceivedPayment/
ReceivedPaymentReference/
PaymentIdentification/
ApplicationObjectKey/ID
FulfillmentOrderPayment/ TransactionExtensionId
FulfillmentOrderReceivedPayment/
ReceivedPaymentReference/
PaymentIdentification/

46
Implementing the Template Task Layer

AlternateObjectKey/ID
FulfillmentOrderPayment/ ReceiptMethodId
FulfillmentOrderReceivedPayment/
ReceiptMethodReference/
ReceiptMethodIdentification/
ApplicationObjectKey/ID
FulfillmentOrderPayment/ ReceiptMethodId Yes
FulfillmentOrderReceivedPayment/
ReceiptMethodReference/
ReceiptMethodIdentification/
AlternateObjectKey/ID
FulfillmentTaskTypeCode TaskTypeCode
FulfillmentOrderLine
Identification/ID DOOFLine.LineNumber
Identification/ ApplicationObjectKey/ID DOOFLine.LineId
TypeCode DOOFLine.CategoryCode
Status/Code DOOFLine.StatusCode
OriginalOrderItemReference/ DOOFLine .
ItemIdentification/ AlternateObjectKey/ OriginalInventoryItemId
OriginalInventoryItemId
SalesOrderScheduleReference/ SourceOrderNumber
SalesOrderIdentification/ID
SalesOrderScheduleReference/ SourceOrderSystem
SalesOrderIdentification/ID@
schemeAgencyID
SalesOrderScheduleReference/ SourceOrderId
SalesOrderIdentification/AlternateObjectKeyI
D
SalesOrderScheduleReference/ SourceRevisionNumber
SalesOrderIdentification/Revision/Number
SalesOrderScheduleReference/ SourceLineNumber
SalesOrderLineIdentification/ID
SalesOrderScheduleReference/ SourceLineId
SalesOrderLineIdentification/ApplicationObje
ctKey/ID
SalesOrderScheduleReference/ SourceScheduleNumber
SalesOrderScheduleIdentification/ID
SalesOrderScheduleReference/ SourceScheduleId
SalesOrderScheduleIdentification
/ApplicationObjectKey/ID
FulfillmentOrderSchedule
Identification/ID DOOFLine .
FulfillLineNumber
Identification/ContextID DOOFLine .
ExtendedFulfillmentLineNumber
Identification/ApplicationObjectKey/ID DOOFLine .FulfillLineId
Identification/AlternateObjectKey/ID DOOFLine . DooInteractionKey

(With schemaID= “DooInteractionKey”)


Identification/AlternateObjectKey/ID DOOFLine . ExternalInteractionKey

(With schemaID= “ExternalInteractionKey”)


ExtendedAmount DOOFLine.ExtendedAmount
ActualShipDateTime DOOFLine.ActualShipDate
EarliestShipDateTime DOOFLine.EarliestAcceptableShipDate
FOBPointCode DOOFLine.FobPointCode Yes
FreightTermCode DOOFLine.FreightTermsCode Yes
OrderQuantity DOOFLine.OrderedQty

47
Implementing the Template Task Layer

OrderedQty@unitCode DOOFLine.UomCode Yes


PromisedDeliveryDateTime DOOFLine.PromiseArrivalDate
PromisedShipDateTime DOOFLine.PromiseShipDate
RequestedShipDateTime DOOFLine. RequestShipDate
RequestedDeliveryDateTime DOOFLine.RequestArrivalDate
ScheduledArrivalDateTime DOOFLine.
ScheduleArrivalDate
ScheduledShipDateTime DOOFLine.ScheduleShipDate
ShipmentPriorityCode DOOFLine.ShipmentPriority Yes
ShippedQuantity DOOFLine.ShippedQty
ModeOfTransportCode DOOFLine. Yes
ShipModeOfTransport
ServiceLevelCode DOOFLine. Yes
ShipClassOfService
ShipmentInstruction DOOFLine.
ShippingInstructions
TypeCode DOOFLine.RequestType
PartialShipmentAllowedIndicator DOOFLine.
PartialShipAllowedFlag
OverridenIndicator DOOFLine.
OverrideScheduleDateFlag
EstimatedTotalCost/Amount DOOFLine.
EstimateFulfillmentCost
CustomerLatestShipDateTime DOOFLine.
LatestAcceptableShipDate
CustomerLatestDeliveryDateTime DOOFLine.
LatestAcceptableArrivalDate
DemandClassificationCode DOOFLine.DemandClass Yes
CanceledQuantity DOOFLine.CanceledQty
FulfilledQuantity DOOFLine.FulfilledQty
FulfilledDateTime DOOFLine.FulfillmentDate
DeliveredQuantity DOOFLine.RmaDeliveredQty
PackingInstruction DOOFLine.PackingInstructions
SubstitutionAllowedIndicator DOOFLine.
SubstituteAllowedFlag
ItemSubstitutionReasonCode DOOFLine.
SubstituteReasonCode
PaymentTerm DOOFLine.PaymentTerm Yes
Status/Code DOOFLine.StatusCode
Status/EffectiveDateTime DOOFLine.RequestCancelDate
Status/ReasonCode DOOFLine.CancelReasonCode Yes
Status/ Description DOOFLine.Comments
UnitListPrice DOOFLine.UnitListPrice
UnitSalePrice DOOFLine.UnitSellingPrice
ItemReturnReason DOOFLine.ReturnReasonCode Yes
ShipmentSet/ Name DOOFLine.ShipSetName
RootParentFulfillmentOrderScheduleIdentifica DOOFLine.
tion/ ApplicationObjectKey/ID RootParentFulfillLineId
ParentFulfillmentOrderScheduleIdentification/ DOOFLine.ParentFulfillLineId
ApplicationObjectKey/ID
SplittedFulfillmentOrderScheduleIdentification DOOFLine.SplitFromFlineId
/ ApplicationObjectKey/ID
CustomerPurchaseOrderShipmentReference/ DOOFLine.
PurchaseOrderIdentification/ID CustomerPoNumber

48
Implementing the Template Task Layer

CustomerPurchaseOrderShipmentReference/ DOOFLine.
PurchaseOrderIdentification/ CustomerPoLineNumber
PurchaseOrderLineIdentification/ID
CarrierPartyReference/ PartyIdentification/ DOOFLine.CarrierId Yes
ApplicationObjectKey/ID
ItemReference/ ItemIdentification/ DOOFLine.InventoryItemId Yes
ApplicationObjectKey/ID
FulfillmentOrderScheduleTax/Tax/Code DOOFLine. Yes
TaxClassificationCode
FulfillmentOrderScheduleTax/Tax/ DOOFLine. Yes
TaxExemption/ ReasonCode TaxExemptionReasonCode
FulfillmentOrderScheduleTax/Tax/ DOOFLine.
CertificateNumber ExemptionCertificateNumber
FulfillmentOrderScheduleTax/Tax/ DOOFLine.TaxExemptFlag
LicenseIndicator
FulfillmentOrderScheduleCharge/ Charge/ DOOFLine.
TypeCode AdjustmentTypeCode
FulfillmentOrderScheduleCharge/ Charge/ DOOFLine.Amount
Amount
FulfillmentOrderScheduleCharge/ Charge/ DOOFLine.AdjustmentName
Description
FulfillmentOrderItem/ DOOFLine.ReservableFlag
ReservationAllowedIndicator
FulfillmentOrderItem/ ShippableIndicator DOOFLine.ShippableFlag
FulfillmentOrderItem/ DOOFLine.InvoiceEnabledFlag
InvoicingEnabledIndicator
FulfillmentOrderItem/ ItemReference/ DOOFLine.InventoryItemId
ItemIdentification/ ApplicationObjectKey/ID
FulfillmentOrderItem/ ItemReference/ DOOFLine.InventoryOrganizationID
ItemIdentification/ ApplicationObjectKey/
ContextID
FulfillmentOrderItem/ ItemReference/ DOOFLine.InventoryItemId Yes
ItemIdentification/ AlternateObjectKey/ ID
FulfillmentOrderItem/ ItemReference/ DOOFLine.CustomerItemId
ItemIdentification/ CustomerItemID
FulfillmentOrderItem/ DOOFLine.InvoicingRuleCode Yes
InvoicingRuleReference/
InvoicingRuleIdentification/
ApplicationObjectKey/ID
FulfillmentOrderItem/ DOOFLine.AccountingRuleCode Yes
AccountingRuleReference/
AccountingRuleIdentification/
ApplicationObjectKey/ID
FulfillmentOrderItem/ DOOFLine.InvoicingRuleCode Yes
InvoicingRuleReference/
InvoicingRuleIdentification/
ApplicationObjectKey/ID
FulfillmentOrderInventoryReservation/ DOOFLine.ReservedQty
ReservedQuantity
FulfillmentOrderInventoryReservation/ DOOFLine.ReservationId
InventoryReservationIdentification/
ApplicationObjectKey/ID
FulfillmentOrderShipToParty/CustomerParty DOOFLine.ShipToContactId
AccountContactIdentification/ApplicationObj
ectKey/ID
FulfillmentOrderShipToParty/CustomerParty DOOFLine.ShipToContactId Yes
AccountContactIdentification/AlternateObject
Key/ID
FulfillmentOrderShipToParty/CustomerParty DOOFLine.ShipToSiteUseId
AccountSiteUsageIdentification/ApplicationO
bjectKey/ID
FulfillmentOrderShipToParty/CustomerParty DOOFLine.ShipToSiteUseId Yes

49
Implementing the Template Task Layer

AccountSiteUsageIdentification/AlternateObje
ctKey/ID
FulfillmentOrderShipToParty/ DOOFLine.ShipToPartyId Yes
ShipToPartyReference/ PartyIdentification/
ApplicationObjectKey/ ID
FulfillmentOrderShipToParty/ DOOFLine.ShipToPartySiteId Yes
ShipToPartyReference/ LocationReference /
LocationIdentification /
ApplicationObjectKey/ ID
FulfillmentOrderShipToParty/ DOOFLine.ShipToAddressId Yes
ShipToPartyReference/ LocationReference /
Address/ Identification /
ApplicationObjectKey/ ID
FulfillmentOrderShipToParty/ DOOFLine.ShipToContactId Yes
ShipToPartyReference/ Contact /
Identification / ApplicationObjectKey/ ID
FulfillmentOrderShipToParty/ DOOFLine.ShipToCustomerId
ShipToPartyReference/
CustomerPartyAccountIdentification/
ApplicationObjectKey/ ID
FulfillmentOrderShipToParty/ DOOFLine.ShipToCustomerId Yes
ShipToPartyReference/
CustomerPartyAccountIdentification/
AlternateObjectKey/ ID
FulfillmentOrderBillToParty/CustomerPartyA DOOFLine.BillToContactId
ccountContactIdentification/ApplicationObjec
tKey/ID
FulfillmentOrderBillToParty/CustomerPartyA DOOFLine.BillToContactId Yes
ccountContactIdentification/AlternateObjectK
ey/ID
FulfillmentOrderBillToParty/CustomerPartyA DOOFLine.BillToSiteUseId
ccountSiteUsageIdentification/ApplicationObj
ectKey/ID
FulfillmentOrderBillToParty/CustomerPartyA DOOFLine.BillToSiteUseId Yes
ccountSiteUsageIdentification/AlternateObject
Key/ID
FulfillmentOrderBillToParty/ DOOFLine.BillToPartyId Yes
BillToPartyReference/ PartyIdentification/
ApplicationObjectKey/ ID
FulfillmentOrderBillToParty/ DOOFLine.BillToPartySiteId Yes
BillToPartyReference/ LocationReference /
LocationIdentification /
ApplicationObjectKey/ ID
FulfillmentOrderBillToParty/ DOOFLine.BillToAddressId Yes
BillToPartyReference/ LocationReference /
Address/ Identification /
ApplicationObjectKey/ ID
FulfillmentOrderBillToParty/ DOOFLine.BillToContactId Yes
BillToPartyReference/ Contact / Identification
/ ApplicationObjectKey/ ID
FulfillmentOrderBillToParty/ DOOFLine.BillToCustomerId
BillToPartyReference/
CustomerPartyAccountIdentification/
ApplicationObjectKey/ ID
FulfillmentOrderBillToParty/ DOOFLine.BillToCustomerId Yes
BillToPartyReference/
CustomerPartyAccountIdentification/
AlternateObjectKey/ ID
FulfillmentOrderScheduleSalesCommission/Sa DOOSalesCredit.SalesCreditType Yes
lesCommission/TypeCode
FulfillmentOrderScheduleSalesCommission/Sa DOOSalesCredit.Percent
lesCommission/Percentage
FulfillmentOrderScheduleSalesCommission/Sa DOOSalesCredit.SalespersonId

50
Implementing the Template Task Layer

lesCommission/ SalespersonPartyReference/
PartyIdentification/ ApplicationObjectKey/ID
FulfillmentOrderScheduleAllowance/ DOOPriceAdjustments. AdjustmentTypeCode
Allowance/ TypeCode
FulfillmentOrderScheduleAllowance/ Amount
Allowance/ Amount
FulfillmentOrderScheduleAllowance/ AdjustmentName
Allowance/Description

The response for CREATE and UPDATE operations are expected in


ExecuteFulfillmentOrderFulfillmentTaskResponseEBM and
ExecuteUpdatedFulfillmentOrderFulfillmentTaskResponseEBM respectively with the following
mappings:
EBM Entity EBM Element DOO Attribute Mandatory XRef

EBMHeader FaultNotification/FaultMessage/Code Header.ReturnCode


If EBM has this code populated, the DOO
ReturnCode will be set to ERROR
FaultNotification/FaultMessage/Text Heder.MessageDescription
FulfillmentOrderLine/ Identification/AlternateObjectKey/ID[@s FLine.FulfillLineId
FulfillmentOrderSchedul chemeID = 'FulfillLineId']
e
Identification/ID FLine.FulfillLineNumber
Identification/ AlternateObjectKey/ FLine.ExtendedFulfillmentLineNumber
ContextID
Identification/ AlternateObjectKey/ FLine.DooInteractionKey
ID[@schemeID = "DooInteractionKey"]
Identification/ AlternateObjectKey/ FLine.ExternalInteractionKey
ID[@schemeID =
"ExternalInteractionKey"]
Status/Code FLine.StatusCode
ShipFromPartyReference/ FLine.FulfillOrgId
LocationReference/
LocationIdentification/
ApplicationObjectKey/ ID
DeliveredQuantity FLine.RmaDeliveredQty
FulfilledQuantity FLine.FulfilledQty
ShippedQuantity FLine.ShippedQty
FulfillmentOrderInventoryReservation/ FLine.ReservedQty
ReservedQuantity
FulfilledDateTime FLine.FulfillmentDate
ItemSubstitutionReasonCode FLine.SubstituteReasonCode
FulfillmentOrderInventoryReservation/ FLine.ReservationId
InventoryReservationReference/
InventoryReservationIdentification/
ApplicationObjectKey/ D
EstimatedTotalCost/Amount FLine.EstimateFulfillmentCost
FulfillmentOrderFulfillm
entTaskEvent/
FulfillmentOrderShipme
ntTaskEvent
FulfillmentOrderShipmentAdvice/ FLineDetails.WaybillNumber

51
Implementing the Template Task Layer

Shipment/ WayBillNumberID
FulfillmentOrderShipmentAdvice/Shipme FLineDetails.BillOfLadingNumber
nt/ShipmentBillOfLading/BillOfLadingR
eference/BillOfLadingIdentification/ID
FulfillmentOrderShipmentRequestOrderLi FLineDetails.Quantity
ne/ ShipmentRequestOrderLine/
BackOrderedQuantity (If BasckorderedQuantity is specified, it
will be used. Otherwise, StagedQuantity
FulfillmentOrderShipmentRequestOrderLi will be used)
ne/ ShipmentRequestOrderLine/
StagedQuantity
FulfillmentOrderShipmentRequestOrderLi FLineDetails.StatusAsofDate
ne/ ShipmentRequestOrderLine/ Status/
EffectiveDateTime
FulfillmentOrderShipmentRequestOrderLi FLineDetails.Status
ne/ ShipmentRequestOrderLine/ Status/
Code
FulfillmentOrderShipmentRequestOrderLi FLineDetails.DeliveryName
ne/ ShipmentRequestOrderLine/
ShipmentName
FulfillmentOrderFulfillm
entTaskEvent /
FulfillmentOrderInvoicin
gTaskEvent
FulfillmentOrderInvoiceLine/ FLineDetails.BillingTransactionNumber
InvoiceLineReference/
InvoiceLineIdentification/ ID
FulfillmentOrderInvoiceLine/ FLineDetails.BillingTransactionDate
InvoiceDateTime
FulfillmentOrderInvoiceLine/ FLineDetails.BillingTransactionAmount
TotalAmount
FulfillmentOrderLine/
FulfillmentOrderSchedul
e/
ItemInstanceRange
StartingSerialNumberID FLineLotSerial.ItemSerialNumberFrom
EndingSerialNumberID FLineLotSerial ItemSerialNumberTo

Operation: Cancel

This operation uses the CancelFulfillmentOrderFulfillmentTaskEBM and the mappings are as under:

EBM Entity EBM Element DOO Attribute XRef

CancelFulfillmentOrderFulfill
mentTask
FulfillmentOrderIdentification/ID DOOHeader.OrderNumber
FulfillmentOrderIdentification DOOHeader.HeaderId
/ApplicationObjectKey/ID
FulfillmentTaskTypeCode DOOHeader.TaskTypeCode
Reason/Code DOOHeader.CancelReasonCode Yes
Description DOOHeader.Comments

52
Implementing the Template Task Layer

The response for a cancel request is expected in CancelFulfillmentOrderFulfillmentTaskResponseEBM


and maps as under:
EBM Entity EBM Element DOO Attribute Mandatory XRef

EBMHeader FaultNotification/FaultMessage/Code Header.ReturnCode


If EBM has this code populated, the DOO
ReturnCode will be set to ERROR
FaultNotification/FaultMessage/Text Heder.MessageDescription

Operation: Apply Hold

This operation uses the HoldFulfillmentOrderScheduleFulfillmentTaskListEBM

EBM Entity EBM Element DOO Attribute XRef

HoldFulfillmentOrderScheduleFu VerbCode “HOLD”


lfillmentTaskListEBM/EBMHea
der

HoldFulfillmentOrderScheduleFu HoldFulfillmentOrderScheduleFulfillmentTask OrderNumber


lfillmentTaskListEBM/DataArea List/FulfillmentOrderIdentification/ID
HoldFulfillmentOrderScheduleFulfillmentTask “OrderId”
List/FulfillmentOrderIdentification
ApplicationObjectKey/ID/@schemeID
HoldFulfillmentOrderScheduleFulfillmentTask HeaderId
List/FulfillmentOrderIdentification
ApplicationObjectKey/ID
HoldFulfillmentOrderScheduleFulfillmentTask LineNumber
List /FulfillmentOrderLineIdentification/ID
HoldFulfillmentOrderScheduleFulfillmentTask LineId
List /FulfillmentOrderLineIdentification
/ApplicationObjectKey/ID
HoldFulfillmentOrderScheduleFulfillmentTask “FulfillLineNumber”
List
/FulfillmentOrderScheduleIdentification/ID/
@ schemeID
HoldFulfillmentOrderScheduleFulfillmentTask FulfillLineNumber
List
/FulfillmentOrderScheduleIdentification/ID
HoldFulfillmentOrderScheduleFulfillmentTask “ExtendedFulfillmentLineNumber”
List / FulfillmentOrderScheduleIdentification
/ContextID/@ schemeID
HoldFulfillmentOrderScheduleFulfillmentTask ExtendedFulfillmentLineNumber
List / FulfillmentOrderScheduleIdentification
/ContextID
HoldFulfillmentOrderScheduleFulfillmentTask “FulfillLineID”
List / FulfillmentOrderScheduleIdentification/
ApplicationObjectKey /ID/@ schemeID
HoldFulfillmentOrderScheduleFulfillmentTask FulfillLineID
List / FulfillmentOrderScheduleIdentification/
ApplicationObjectKey /ID
HoldFulfillmentOrderScheduleFulfillmentTask “DooInteractionKey”
List / FulfillmentOrderScheduleIdentification/
ApplicationObjectKey /ID/@ schemeID
HoldFulfillmentOrderScheduleFulfillmentTask DooInteractionKey
List / FulfillmentOrderScheduleIdentification/
ApplicationObjectKey /ID

53
Implementing the Template Task Layer

HoldFulfillmentOrderScheduleFulfillmentTask “ExternalInteractionKey”
List / FulfillmentOrderScheduleIdentification/
ApplicationObjectKey /ID/@ schemeID
HoldFulfillmentOrderScheduleFulfillmentTask ExternalInteractionKey
List / FulfillmentOrderScheduleIdentification/
ApplicationObjectKey /ID
HoldFulfillmentOrderScheduleFulfillmentTask HoldName
List/TypeCode
HoldFulfillmentOrderScheduleFulfillmentTask HoldComments
List/Comment
HoldFulfillmentOrderScheduleFulfillmentTask TaskTypeCode
List/FulfillmentTaskTypeCode

The response comes via HoldFulfillmentOrderScheduleFulfillmentTaskListResponseEBM.

EBM Entity EBM Element DOO Attribute Mandatory XRef

HoldFulfillmentOrderScheduleFu FaultNotification/FaultMessage/Code “ERROR”


lfillmentTaskListResponseEBM/
EBMHeader
FaultNotification/FaultMessage/Text MessageDescription
HoldFulfillmentOrderScheduleFu HoldFulfillmentOrderScheduleFulfillmentTask FulfillLineId
lfillmentTaskListResponseEBM/ ListResponse/FulfillmentOrderScheduleIdenti
DataArea fication/ApplicationObjectKey/ID
HoldFulfillmentOrderScheduleFulfillmentTask True or false
ListResponse/SuccessfulIndicator]

Operation: Release Hold

This operation uses the ReleaseFulfillmentOrderScheduleFulfillmentTaskHoldListEBM

EBM Entity EBM Element DOO Attribute XRef

ReleaseFulfillmentOrderSchedule VerbCode “RELEASE”


FulfillmentTaskHoldListEBM/E
BMHeader

ReleaseFulfillmentOrderSchedule Process/@responseCode “OBJECT”


FulfillmentTaskHoldListEBM/D
ataArea
ReleaseFulfillmentOrderScheduleFulfillmentTa OrderNumber
skHoldList/FulfillmentOrderIdentification/ID
ReleaseFulfillmentOrderScheduleFulfillmentTa “OrderId”
skHoldList /FulfillmentOrderIdentification
ApplicationObjectKey/ID/@schemeID
ReleaseFulfillmentOrderScheduleFulfillmentTa HeaderId
skHoldList /FulfillmentOrderIdentification
ApplicationObjectKey/ID
ReleaseFulfillmentOrderScheduleFulfillmentTa LineNumber
skHoldList
/FulfillmentOrderLineIdentification/ID
ReleaseFulfillmentOrderScheduleFulfillmentTa LineId

54
Implementing the Template Task Layer

skHoldList
/FulfillmentOrderLineIdentification
/ApplicationObjectKey/ID
ReleaseFulfillmentOrderScheduleFulfillmentTa “FulfillLineNumber”
skHoldList
/FulfillmentOrderScheduleIdentification/ID/
@ schemeID
ReleaseFulfillmentOrderScheduleFulfillmentTa FulfillLineNumber
skHoldList
/FulfillmentOrderScheduleIdentification/ID
ReleaseFulfillmentOrderScheduleFulfillmentTa “ExtendedFulfillmentLineNumber”
skHoldList /
FulfillmentOrderScheduleIdentification
/ContextID/@ schemeID
ReleaseFulfillmentOrderScheduleFulfillmentTa ExtendedFulfillmentLineNumber
skHoldList /
FulfillmentOrderScheduleIdentification
/ContextID
ReleaseFulfillmentOrderScheduleFulfillmentTa “FulfillLineID”
skHoldList /
FulfillmentOrderScheduleIdentification/
ApplicationObjectKey /ID/@ schemeID
ReleaseFulfillmentOrderScheduleFulfillmentTa FulfillLineID
skHoldList /
FulfillmentOrderScheduleIdentification/
ApplicationObjectKey /ID
ReleaseFulfillmentOrderScheduleFulfillmentTa “DooInteractionKey”
skHoldList /
FulfillmentOrderScheduleIdentification/
ApplicationObjectKey /ID/@ schemeID
ReleaseFulfillmentOrderScheduleFulfillmentTa DooInteractionKey
skHoldList /
FulfillmentOrderScheduleIdentification/
ApplicationObjectKey /ID
ReleaseFulfillmentOrderScheduleFulfillmentTa “ExternalInteractionKey”
skHoldList /
FulfillmentOrderScheduleIdentification/
ApplicationObjectKey /ID/@ schemeID
ReleaseFulfillmentOrderScheduleFulfillmentTa ExternalInteractionKey
skHoldList /
FulfillmentOrderScheduleIdentification/
ApplicationObjectKey /ID
ReleaseFulfillmentOrderScheduleFulfillmentTa HoldName
skHoldList /TypeCode
ReleaseFulfillmentOrderScheduleFulfillmentTa HoldComments
skHoldList /Comment
ReleaseFulfillmentOrderScheduleFulfillmentTa TaskTypeCode
skHoldList /FulfillmentTaskTypeCode

Release Hold response uses the


ReleaseFulfillmentOrderScheduleFulfillmentTaskHoldListResponseEBM:

EBM Entity EBM Element DOO Attribute Mandatory XRef

ReleaseFulfillmentOrderSchedule FaultNotification/FaultMessage/Code “ERROR”


FulfillmentTaskHoldListResponse
EBM/EBMHeader
FaultNotification/FaultMessage/Text MessageDescription

55
Implementing the Template Task Layer

ReleaseFulfillmentOrderSchedule ReleaseFulfillmentOrderScheduleFulfillmentTa FulfillLineId


FulfillmentTaskHoldListResponse skHoldListResponse/FulfillmentOrderSchedul
EBM/DataArea eIdentification/ApplicationObjectKey/ID
ReleaseFulfillmentOrderScheduleFulfillmentTa True or false
skHoldListResponse/SuccessfulIndicator]

56
Implementing the Template Task Layer

Inbound

The following table lists the elements that TTL expects in the inbound responses.
Operation Name: ProcessFulfillmentOrderFulfillmentTaskNotification

EBM Entity EBM Element DOO Attribute Mandatory XRef

ProcessFulfillmentOrderFulfillme Identification/AlternateObjectKey/ID FulfillLineId *Yes


ntTaskNotificationEBM/DataAre
a/ProcessFulfillmentOrderFulfill
mentTaskNotification/Fulfillmen
tOrderLine/FulfillmentOrderSch
edule
Identification/AlternateObjectKey/ID/ “FulfillLineId” Yes
@schemeID
Identification/ID FulfillLineNumber
SalesOrderScheduleReference/SalesOrderLine SourceLineId
Identification/ApplicationObjectKey/ID
SalesOrderScheduleReference/SalesOrderLine SourceLineNumber
Identification/ID
SalesOrderScheduleReference/SalesOrderIden SourceOrderId
tification/ApplicationObjectKey/ID
SalesOrderScheduleReference/SalesOrderIden SourceOrderNumber
tification/ID
SalesOrderScheduleReference/SalesOrderSche SourceScheduleId
duleIdentification/ApplicationObjectKey/ID
SalesOrderScheduleReference/SalesOrderSche SourceScheduleNumber
duleIdentification/ID
ShipFromPartyReference/LocationReference/ FulfillOrgId
LocationIdentification/ApplicationObjectKey
/ID
OrderQuantity OrderedQty
DeliveredQuantity RmaDeliveredQty
FulfilledQuantity FulfilledQty
ShippedQuantity ShippedQty
FulfillmentOrderInventoryReservation/Reserv ReservedQty
edQuantity
ActualShipDateTime ActualShipDate
FOBPointCode FobPointCode Y
ServiceLevelCode ShipClassOfService Y
ModeOfTransportCode ShipModeOfTransport Y
ItemSubstitutionReasonCode SubstituteReasonCode
FulfillmentOrderInventoryReservation/Invent ReservationId
oryReservationReference/InventoryReservatio
nIdentification/ApplicationObjectKey/ID
SplittedFulfillmentOrderScheduleIdentification FulfillmentSplitRefId
/ApplicationObjectKey/ID
EstimatedTotalCost/Amount EstimateFulfillmentCost

57
Implementing the Template Task Layer

FreightTermCode FreightTermsCode Y
FulfillmentTaskTypeCode TaskType
Status/Code Status
FulfilledDateTime TaskFulfillmentDate
Identification/AlternateObjectKey/ID DooInteractionKey *Yes
Identification/AlternateObjectKey/ID/@ “DooInteractionKey”
schemeID
Identification/ApplicationObjectKey/Context ExtendedFulfillmentLineNu *Yes
ID mber
Identification/AlternateObjectKey/ID ExternalInteractionKey
Identification/AlternateObjectKey/ID/@ “ExternalInteractionKey”
schemeID
CarrierPartyReference/PartyIdentification/Ap Carrier Y
plicationObjectKey/ID
FulfillmentOrderItem/ItemReference/ItemIde InventoryItem Y
ntification/ApplicationObjectKey/ID

FulfillmentOrderFulfillmentTask
Event
FulfillmentOrderShipmentTaskEvent/ FulfillLineDetailTrans
FulfillmentTaskTypeCode /TaskType
FulfillmentOrderShipmentTaskEvent/Fulfillm FulfillLineDetailTrans
entOrderShipmentAdvice/Shipment/WayBill /WaybillNumber
NumberID
FulfillmentOrderShipmentTaskEvent/Fulfillm FulfillLineDetailTrans /
entOrderShipmentAdvice/Shipment/Shipmen BillOfLadingNumber
tBillOfLading/BillOfLadingReference/BillOfL
adingIdentification/ID
FulfillmentOrderShipmentTaskEvent/Fulfillm FulfillLineDetailTrans
entOrderShipmentRequestOrderLine/Shipme /Quantity
ntRequestOrderLine/BackOrderedQuantity
(OR)
FulfillmentOrderShipmentTaskEvent/Fulfillm
entOrderShipmentRequestOrderLine/Shipme
ntRequestOrderLine/StagedQuantity

FulfillmentOrderShipmentTaskEvent/Fulfillm FulfillLineDetailTrans /
entOrderShipmentRequestOrderLine/Shipme StatusAsofDate
ntRequestOrderLine/Status/EffectiveDateTim
e
FulfillmentOrderShipmentTaskEvent/Fulfillm FulfillLineDetailTrans /Status
entOrderShipmentRequestOrderLine/Shipme
ntRequestOrderLine/Status/Code
FulfillmentOrderShipmentTaskEvent/Fulfillm FulfillLineDetailTrans /
entOrderShipmentRequestOrderLine/Shipme DeliveryName
ntRequestOrderLine/ShipmentName
FulfillmentOrderShipmentTaskEvent/Fulfillm FulfillLineDetailTrans /
entOrderShipmentRequestOrderLine/Shipme FinalStatusFlag
ntRequestOrderLine/Status/SubStatusCode

FulfillmentOrderInvoicingTaskEv
ent
FulfillmentTaskTypeCode FulfillLineDetailTrans
/TaskType
FulfillmentOrderInvoicingTaskEvent/Fulfillm FulfillLineDetailTrans /
entOrderInvoiceLine/InvoiceLineReference/I BillingTransactionNumber
nvoiceLineIdentification/ID
FulfillmentOrderInvoicingTaskEvent/Fulfillm FulfillLineDetailTrans /
entOrderInvoiceLine/InvoiceDateTime BillingTransactionDate

58
Implementing the Template Task Layer

FulfillmentOrderInvoicingTaskEvent/Fulfillm FulfillLineDetailTrans /
entOrderInvoiceLine/TotalAmount BillingTransactionAmount
FulfillmentOrderInvoicingTaskEvent/Fulfillm FulfillLineDetailTrans /Status
entOrderInvoiceLine/InvoiceLine/corecom:St
atus/Code
FulfillmentOrderInvoicingTaskEvent/Fulfillm FulfillLineDetailTrans /
entOrderInvoiceLine/InvoiceLine/Status/Sub FinalStatusFlag
StatusCode

ItemInstanceRange
StartingSerialNumberID FulfillLineLotSerialNumber/
ItemSerialNumberFrom
EndingSerialNumberID FulfillLineLotSerialNumber/
ItemSerialNumberTo

Here is a sample XML payload for


ProcessFulfillmentOrderFulfillmentTaskNotificationEBM :

TTL_Delayed_Response_Input_Payload_Template.xml

Inbound Response uses


ProcessFulfillmentOrderFulfillmentTaskNotificationResponseEBM

EBM Entity EBM Element DOO Attribute XRef

ProcessFulfillmentOrderFulfillme FaultNotification/FaultMessage/Text messageName


ntTaskNotificationResponseEBM
/EBMHeader
FaultNotification/FaultMessage/Stack messageDescription

ProcessFulfillmentOrderFulfillme ProcessFulfillmentOrderFulfillmentTaskNotifi FulfillLineNumber


ntTaskNotificationResponseEBM cationResponse/FulfillmentOrderLine/
/DataArea FulfillmentOrderSchedule/Identification/ID
ProcessFulfillmentOrderFulfillmentTaskNotifi ExtendedFulfillmentLineNumber
cationResponse/FulfillmentOrderLine/
FulfillmentOrderSchedule/Identification/
ContextID
ProcessFulfillmentOrderFulfillmentTaskNotifi FulfillLineId
cationResponse/FulfillmentOrderLine/
FulfillmentOrderSchedule/Identification/
ApplicationObjectKey/ID
ProcessFulfillmentOrderFulfillmentTaskNotifi ExternalInteractionKey
cationResponse/FulfillmentOrderLine/
FulfillmentOrderSchedule/Identification/
AlternateObjectKey/ID
ProcessFulfillmentOrderFulfillmentTaskNotifi “ExternalInteractionKey”
cationResponse/FulfillmentOrderLine/
FulfillmentOrderSchedule/Identification/
AlternateObjectKey/ID/@ schemeID

59
Oracle Fusion Distributed Order Copyright © 2011, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only and the
Orchestration : Implementing the Template contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other
Task Layer warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or
April 2013 fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are
Authors: Alexander Vaidhyan, Shrikant Nene. formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any
Contributing Authors: Manoj Sehgal, means, electronic or mechanical, for any purpose, without our prior written permission.
Shailendra Baxi, Srinivasa Tadiboyina,
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Oracle Corporation
World Headquarters
AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices.
500 Oracle Parkway
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license
Redwood Shores, CA 94065
and are trademarks or registered trademarks of SPARC International, Inc. UNIX is a registered trademark licensed through X/Open
U.S.A.
Company, Ltd. 1010
Worldwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200

oracle.com