Create Your Own Task Type

Create your task type to specify the services that you use to finish a fulfillment task.

Assume you need to create a new task type named Get_Customer_Acceptance.

  1. Go to the Setup and Maintenance work area, then go to the task.

    • Offering: Order Management

    • Functional Area: Orders

    • Task: Manage Task Types

  2. Add the task type.

    • On the Manage Task Types page, click Actions > Add Custom.

    • The page adds a new row. Enter a value.

      Attribute

      Value

      Task Type

      Get_Customer_Acceptance

    • Step out of the Task Type attribute.

    Notice that the page adds services in the Services list. The page copies the value that you enter in the Task Type attribute, appends it with the type of service, such as Create, then inserts the value in the Code column of the service. For example:

    Code

    Name

    Get_Customer_Acceptance Create

    Get_Customer_Acceptance Create

    Get_Customer_Acceptance Inbound

    Get_Customer_Acceptance Inbound

    Note

    • One service references the outbound Create operation code.

    • Another service references the Inbound operation code.

    • You must create at least one task for each new task type.

    • You can specify a name for each service, and you can add a service that references some other operation code, such as Change, Get Status, Apply Hold, Release Hold, or Cancel.

    • If you step out of the Task Type attribute, and then come back to the Task Type attribute and change the value, then the page doesn't update values in the Code column, and values between the task type and the services it references will be different. If you then click Save, the Code attribute in the Services list becomes read-only and you can't change it.

      The task type and its services will work, but having code names that are different from the task type might be confusing in other parts of your set up. So, we recommend that if you change the Task Type attribute, that you also change the Code in the Services list before you click Save.

      For example, assume you create a new task type, set the Task Type attribute to Get_Customer_Acceptance, tab out of the attribute, the page adds the Get_Customer_Acceptance Create service, you change the Task Type attribute to Get_Customer_Acceptance_During_Drop_Ship, but the Code attribute in the service is still Get_Customer_Acceptance Create. We recommend that you change the Code column in the services lists to Get_Customer_Acceptance_During_Drop_Ship Create before you click Save.

  3. Assign a status code to the task type.

    Order Management sets a default value for some system status codes, such as Pending, Change Pending, Cancel, or Canceled. The status code that each task type references also controls the values for the exit criteria on a wait step that uses the task type, and the value of the task status in the next orchestration process step. You can create a new status code, or you can assign a status code that already exists. For details, see Manage Status Values.

  4. Manage the task status condition. For details, see Manage Task Status Conditions.
  5. Click Save.

  6. Connect Order Management to the fulfillment system that will do the tasks and services that your new task type references. For details, see Overview of Connecting Order Management to Your Fulfillment System.

  7. Reference your new task type when you create the orchestration process step.

    Reference it in the same way that you reference a predefined task type.

For details about exit criteria, branches, wait steps, and using a task type in an orchestration process, seeOverview of Orchestration Processes.

Send a Response to Your Fulfillment System

You must use a web service to send a response to your fulfillment system.

  • The payload that you use is different depending on the service that you use.
  • These services can provide an immediate response or a delayed one.
  • You use one WSDL for an immediate response and a different WSDL for a delayed response.
For details, see Connect Order Management to Your Fulfillment System.

Fulfill Order Response Service

Here's an example.

<ns1:FulfillmentRequest
xmlns:ns1="http://xmlns.oracle.com/apps/scm/doo/taskLayer/fulfillOrder/DooTaskFulfillOrderResponseInterfaceComposite">
  <ns1:FLine
xmlns:ns2="http://xmlns.oracle.com/apps/scm/doo/common/process/model/">
<ns2:SourceOrderSystem>LEG</ns2:SourceOrderSystem>
  <ns2:FulfillLineId>300100135839049</ns2:FulfillLineId>
  <ns2:Status>COMPLETED</ns2:Status>
  <ns2:TaskType>my_task_type</ns2:TaskType>
  </ns1:FLine>
</ns1:FulfillmentRequest>

where

  • LEG is an example name of a source system. The term LEG usually means legacy. Replace it with the name that identifies your source system.

  • 300100135839049 is an example value that identifies the fulfillment line. Replace it with the value that identifies your line.
  • COMPLETED in the Status attribute is the status of the fulfillment line. Replace it with the status that your line is in.
  • my_task_type is the name of a custom task type. Replace it with the name of the task type that you created.

You must provide a value for each of these attributes.

Order Fulfillment Response Service

Here's an example.

 <typ:processFulfillmentResponse>
  <typ:responseMessageHeader>
            
<com:IntegrationContextCode>ExportCompliance</com:IntegrationContextCode>
  <com:FulfillmentSystem>LEG</com:FulfillmentSystem>
  </typ:responseMessageHeader>
  <!--Zero or more repetitions:-->
  <typ:fulfillLineList>
          
<com:FulfillLineIdentifier>300100564138254</com:FulfillLineIdentifier>
            
<com:TaskInstanceStatusCode>COMPLETED_VAR</com:TaskInstanceStatusCode>
  </typ:fulfillLineList>
</typ:processFulfillmentResponse>

where

  • LEG is an example name of a fulfillment system. Replace it with the name that identifies your fulfillment system.
  • 300100564138254 is an example value that identifies the fulfillment line. Replace it with the value that identifies your line.
  • COMPLETED_VAR is the status of a custom task type. Replace it with the status that your task type is in.

You must provide a value for each of these attributes.

Maintain Data Integrity

Order Management automatically maintains data integrity for your new task type. It:

  • Makes sure the service data object includes data for each required attribute.

  • Determines the transaction data to update as a result of the service call to your fulfillment system. This data resides in Order Management's transaction tables.

Maintaining data integrity makes sure the task type that you create displays correctly throughout the Order Management work area. Order Management also makes sure functionality works correctly with your new task type for:

  • Status update

  • Wait step

  • Forward planning

  • Jeopardy

  • Hold processing

  • Split processing

  • Change management

  • Error recovery

Include Your Charges

You must include values for the SourceChargeComponentId attribute and the HeaderCurrencyUnitPrice attribute in the Charge Components entity in your fulfillment response.

We recommend that you thoroughly test your entire fulfillment flow when you use a custom task to update an existing or add a new charge, including the fulfilment response. You must test these use cases:

  • Freeze your pricing and freight charges, and then copy a sales order.
  • Don't freeze your pricing and freight charges, and then copy a sales order.
  • Revise a sales order.
  • Create a return order that has the charge from the original order.

Do Other Optional Setups for Your New Task Type

Type of Setup

Description

Preprocessing

Add preprocessing logic. For example:

  • Set default values for data onto the outbound request.

  • Validate data on the outbound request.

Postprocessing

Add postprocessing logic. For example:

  • Set default values for data on the inbound request.

  • Validate data on the inbound request.

  • Interpret attributes or messages that your fulfillment system returns that might require Order Management to split processing across more than one orchestration process.

Change management

Use change management on an orchestration process step that references your new task type. Specify the attributes for the task type on the Manage Order Attributes That Identify Change page.

Make sure your task type references the Update service and the Cancel service, and the connectors that these services require.

Hold code

To apply a hold to your new service, create hold codes for it. Hold All applies to your new service and to services that already exist.

Jeopardy threshold

To include a jeopardy score for your new task, set up a jeopardy threshold for it.

Processing constraint

Create a processing constraint that controls when to use your new task. For example, use a processing constraint that specifies the attributes that are required in the outbound request or on the inbound reply.

Data set used as part of outbound request

Consider these requests.

  • GetValidFLineData

  • The preprocessing service

  • Routing rules for the interface

If you use one of them, then the template task uses a complete data set to communicate Order Management attributes.

You can reduce the data set to make processing more efficient.

Register error messages

If your fulfillment system sends error messages to Order Management and you prefer to process and display them in Order Management, then you must register them.