17 Implementing the Update Sales Order Business Flow

This chapter explains how the Oracle Application Integration Architecture (Oracle AIA) Oracle Communications Order to Cash Integration Pack (the integration) implements the Update Sales Order business flow.

About the Update Sales Order Business Flow

The following pre-built integration options enable the Update Sales Order business flow:

  • Order to Cash for Siebel CRM

  • Order to Cash for Oracle Communications Order and Service Management (OSM)

The Update Sales Order business flow includes the following integration flow:

  • Updating Statuses from OSM to Siebel CRM

About the Updating Statuses from OSM to Siebel CRM Integration Flow

This integration flow uses the following services:

  • Integration services for OSM:

    • UpdateSalesOrderOSMCFSCommsJMSConsumer

  • Integration services for Siebel CRM:

    • UpdateSalesOrderSiebelCommsJMSConsumer

    • UpdateSalesOrderSiebelCommsProvABCSImpl

Figure 17-1 shows the sequence of integration services for the Updating Status from OSM to Siebel CRM integration flow.

Figure 17-1 Updating Statuses from OSM to Siebel CRM

This image is described in the following text.

The integration sends order status updates from OSM in the central order management role (OSM COM) to Siebel CRM as follows:

  1. When OSM COM receives status update messages from OSM SOM or BRM, it creates an UpdateSalesOrderEBM message and adds it to the AIA_UPDSO_OUT_JMSQ queue.

  2. The UpdateSalesOrderOSMCFSCommsJMSConsumer service subscribed to the queue picks up the EBM.

  3. The consumer service adds the EBM to the AIA_UPDSO_OUT_SIEBEL_JMSQ queue.

  4. The UpdateSalesOrderSiebelCommsJMSConsumer service subscribed to the queue picks up the EBM and sends it to the UpdateSalesOrderSiebelCommsProvABCSImpl service.

    Note:

    UpdateSalesOrderSiebelCommsJMSConsumer has an error resequencer. If any update to Siebel CRM causes a system or business error, further updates to the account are locked in the sequencer table until the error is fixed. If the error is a business error, the message must be removed from the sequencer table. If the error is a system error, the message must be resubmitted.

    See "Supporting Order Priority" and "Using the Oracle Mediator Resequencer Feature" for more information about using sequencing logic to make updates to Siebel CRM.

  5. The provider service transforms the EBM into a Siebel CRM application business message (ABM) and invokes the Siebel CRM web service to update the order.

    During the transformation, UpdateSalesOrderSiebelCommsProvABCSImpl copies fulfillment status from the EBM to the DeliveryStatus attribute of the ABM. The Siebel CRM user interface shows this status in the Fulfillment Status field, which indicates the status of the order in OSM COM while the order is being fulfilled. The Fulfillment Status is a sub-status to the overall order status, which represents the overarching status throughout order capture and order fulfillment. The Siebel CRM user interface shows the overarching status in the Status field.

Defining Transaction Boundaries and Recovery Details

For this flow there are two transaction boundaries. Table 17-1 describes the transactions involved, the database operations, and what actions to take in case of an error.

If any update to Siebel CRM causes a system or business error, further updates to the account are locked in the sequencer table until the error is fixed. If the error is a business error, the message must be removed from the sequencer table. If the error is a system error, the message must be resubmitted.

See "Using Error Type to Control Response to Order Fallout" for more information on system and business errors.

The following services are involved:

  • UpdateSalesOrderOSMCFSCommsJMSConsumer

  • UpdateSalesOrderSiebelCommsJMSConsumer

  • UpdateSalesOrderSiebelCommsProvABCSImpl

Table 17-1 Transaction Boundaries and Recovery Details for the Siebel CRM Flow

Transaction DB Operations In Case of Error Recovery

UpdateSalesOrderOSMCFSCommsJMSConsumer picks up UpdateSalesOrderEBM from AIA_UPDSO_OUT_JMSQ and adds it to AIA_UPDSO_OUT_SIEBEL_JMSQ.

Message added to queue.

Roll back the message to AIA_UPDSO_OUT_JMSQ_ErrorQ.

Resubmit the order from AIA_UPDSO_OUT_JMSQ_ErrorQ.

UpdateSalesOrderSiebelCommsJMSConsumer picks up UpdateSalesOrderEBM from AIA_UPDSO_OUT_SIEBEL_JMSQ and adds it to the sequencer table defined by the UpdateSalesOrderSiebelCommsJMSConsumer_RS routing service.

Message added to the sequencer table.

Message available in Enterprise Manager Fusion Middleware Control in recoverable state.

Retry or abort the message from Enterprise Manager Fusion Middleware Control.

UpdateSalesOrderSiebelCommsJMSConsumer_RS sends the message to UpdateSalesOrderSiebelCommsProvABCSImpl, which invokes the Siebel web service to update the order.

AIA cross-reference entries.

Roll back the message to the sequencer table.

Resubmit the order from the sequencer table.


See the discussion of configuring Oracle AIA processes for error handling and trace logging in Oracle Fusion Middleware Developer's Guide for Oracle SOA Core Extension for more information about rollback procedures.

Siebel CRM Interfaces

The Update Sales Order business flow uses the following Siebel CRM interfaces:

  • SWIOrderUpsert

  • SWIOrderUpsertSubProcess

These are inbound Siebel web services used to update the order information back to Siebel CRM.

See Siebel Order Management Guide Addendum for Communications for more information about web services.

Industry Oracle AIA Components

The Update Sales Order business flow uses the following communications industry-specific Oracle AIA components:

  • SalesOrderEBO

  • UpdateSalesOrderEBM

The following directories contain the industry component files:

  • Enterprise business object (EBO) and enterprise business message (EBM) XML schema files:

    Oracle_home/comms_home/source/soainfra/apps/AIAMetaData/AIAComponents/EnterpriseObjectLibrary/Industry/Communications/EBO/

  • Enterprise business service (EBS) WSDL files:

    Oracle_home/comms_home/source/soainfra/apps/AIAMetaData/AIAComponents/EnterpriseBusinessServiceLibrary/Industry/Communications/EBO/

For detailed documentation of individual EBOs and EBMs, click the AIA Reference Doc link on EBO and EBM detail pages in the Oracle Enterprise Repository (OER).

EBOs can be extended, for instance, to add new data elements. These extensions are protected and remain intact after a patch or an upgrade, so long as the extensibility guidelines are followed.

See the discussion of Oracle AIA assets extensibility patterns in Oracle Fusion Middleware Developer's Guide for Oracle SOA Core Extension for more information about extending EBOs.

Integration Services

The following services are delivered with the Update Sales Order business flow:

  • UpdateSalesOrderOSMCFSCommsJMSConsumer

  • UpdateSalesOrderSiebelCommsJMSConsumer

  • UpdateSalesOrderSiebelCommsProvABCSImpl

UpdateSalesOrderOSMCFSCommsJMSConsumer

UpdateSalesOrderOSMCFSCommsJMSConsumer is a Mediator process with a JMS Adapter Service. It is subscribed to the AIA_UPDSO_OUT_JMSQ queue.

This process does the following:

  1. Picks up the UpdateSalesOrderEBM message.

  2. Adds UpdateSalesOrderEBM into the AIA_UPDSO_OUT_SIEBEL_JMSQ queue.

UpdateSalesOrderSiebelCommsJMSConsumer

UpdateSalesOrderSiebelCommsJMSConsumer service is a Java Messaging Service (JMS) consumer service. It is subscribed to the AIA_UPDSO_OUT_CPQ_JMSQ into which order update EBMs are added.

This consumer picks up UpdateSalesOrderEBM and sends it to the UpdateSalesOrderSiebelCommsProvABCSImpl service by using a Best Effort resequencer.

UpdateSalesOrderSiebelCommsProvABCSImpl

The UpdateSalesOrderSiebelCommsProvABCSImpl is service accepts the UpdateSalesOrderEBM message and uses the information in the input message to update order in Siebel CRM.

The main functions of this service are:

  • Updating the order line status: updates the order line status back to Siebel CRM.

  • Enriching the order: enriches the information back to Siebel CRM from a central fulfillment system to facilitate customer care, service, and asset-based ordering. It is also used to update or enrich the order line items with fulfillment attributes back to Siebel CRM. Among these attributes are service IDs and allocated resources such as port number and IP address.

  • Updating the order header: enriches the order header to Siebel CRM.

This process is an asynchronous, one-way service.

This service is enabled to use Session Pool Manager.

See Oracle Application Integration Architecture Pre-Built Integrations Utilities Guide for more information about Session Pool Manager.