Skip Headers
Oracle® Application Integration Architecture Oracle Communications Order to Cash Integration Pack Implementation Guide for Siebel CRM, Oracle Order and Service Management, and Oracle Billing and Revenue Management
Release 11.1

Part Number E22651-03
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

9 OLM - Process Sales Order Fulfillment Business Flow: Implementation

This chapter provides an overview of the Process Sales Order Fulfillment business flow and discusses the implementation of Siebel Customer Relationship Management (Siebel CRM) interfaces, industry Oracle Application Integration Architecture (Oracle AIA) components, and integration services.

This chapter includes the following sections:

9.1 Process Sales Order Fulfillment Business Flow Overview

This business flow is enabled using the Oracle Communications Order to Cash Siebel CRM and Oracle Order and Service Management (Oracle OSM) pre-built integration options.

Note:

If you have deployed Oracle Communications Order to Cash Siebel CRM and Oracle BRM options, but not the Oracle OSM option, a Test Orchestration Process (TOP) is installed to sanity test the out-of-the-box (OOTB) order flow. This must be replaced by your own order management system.

For more information, see Oracle Application Integration Architecture Installation and Upgrade Guide for Pre-Built Integrations, "Configuring and Deploying the Comms Order to Cash: SBL CRM and BRM Pre-Built Integration," Replacing Test Order Orchestration with your Order Management System.

The following integration flow involves submitting orders to Oracle OSM:

9.2 Submitting Orders from Siebel CRM to Oracle OSM Integration Flow

This integration uses the following interfaces:

Figure 9-1 illustrates an order submitted from Siebel CRM to Oracle OSM Central Fulfillment System (CFS) using Oracle AIA.

Figure 9-1 Siebel CRM to Oracle OSM CFS Sequence Diagram

This image is described in surrounding text.

When a new order process is initiated, the following events occur:

  1. In Siebel CRM, a user navigates to the Sales Order screen and clicks Submit to submit a new order. This action triggers Siebel to create a Siebel application business message (ABM) with all the captured details. Siebel then enqueues this ABM in the AIA_SALESORDERJMSQUEUE JMS Queue.

  2. After the Siebel ABM is enqueued in the AIA_SALESORDERJMSQUEUE, the ProcessSalesOrderFulfillmentSiebelCommsJMSConsumer dequeues the message and passes it on to the ProcessSalesOrderFulfillmentSiebelCommsReqABCSImpl. The ProcessSalesOrderFulfillmentSiebelCommsJMSConsumer has a JMS adapter service that polls for any messages in the AIA_SALESORDERJMSQUEUE.

    ProcessSalesOrderFulfillmentSiebelCommsJMSConsumer has an embedded sequencer to sequence the messages. If the ProcessSalesOrderFulfillmentSiebelCommsReqABCSImpl fails or if the ProcessSalesOrderFulfillmentOSMCFSCommsJMSProducer fails, then the new orders for that account remain waiting in the sequencer table. If the error is a system type error you must resubmit the message from the sequencer table. If the error is a business type error then you must remove the message from sequencer table so that order processing for the customer can resume.

  3. The ProcessSalesOrderFulfillmentSiebelCommsReqABCSImpl invokes the transformation logic to transform Siebel ABM to the ProcessSalesOrderFulfillmentEBM, and invokes the CommunicationsSalesOrderEBSV2 with the operation ProcessSalesOrderFulfillment.

    The Siebel order structure does not support multiple charge types for a single order line, while the order EBO structure does. For this reason, the order lines referencing a Complex Product (CP) of billing type Subscription and its component products of billing type Event, representing a multi-event billing product, are transformed into a single EBO order line referencing a product with multiple charge types.

  4. The CommunicationsSalesOrderEBSV2 routes this message to the ProcessSalesOrderFulfillmentOSMCFSCommsJMSProducer interface, which wraps ProcessSalesOrderFulfillmentEBM into CreateOrder message format and enqueues the message into the AIA_CRTFO_IN_JMSQ.

    The CreateOrder message is then wrapped in a SOAP envelope. Oracle OSM expects the following additional JMS properties to be set when the JMS payload:

    • JMSPriority

    • URI -- /osm/wsapi

    • _wls_mimehdrContent_Type -- text/xml; charset=utf-8

  5. Once the message is dropped to the Queue, the store and forward (SAF) mechanism forwards the message from Oracle AIA WebLogic to Oracle OSM WebLogic.

    Oracle OSM picks up the CreateOrder message and then further decomposes the order for fulfillment and provisioning.

For more information about how Oracle OSM processes the order, see Chapter 7, "Understanding the Process Integration for Order Lifecycle Management."

9.3 Supporting Order Priorities

Customers can add other order priority values in Siebel CRM. Additionally, customers can use the SWI_ORDER_JMS_PRIORITY mapping, which maps these string values to integers.

You are required to set up some JMS compatibility properties on the Siebel queue and to make manual changes to seeded priority values.

For more information about priority values, see the Siebel Order Management Guide Addendum for Communications, Employee Asset-Based Ordering, "Modifying the Order Priority Mapping."

The integration supports 10 priority values, 0-9, as dictated by JMS queuing technology. Implementers can extend Siebel to support priority values other than the four that are supported when delivered.

For more information, see the Siebel product documentation for Lists of Values.

These steps describe how the integration handles order priorities:

  1. When the order is submitted, Siebel sets the JMS Priority message in the JMS headers and also populates the following field: ListOfSWIOrderIO/SWIOrder/OrderPriority.

  2. Based on the priority, the ProcessSalesOrderFulfillmentSiebelCommsJMSConsumer consumes the message and routes it to the ProcessSalesOrderFulfillmentSiebelCommsReqABCSImpl. This process does a lookup on the SALESORDER_PRIORITY domain value map (DVM) and populates the ProcessSalesOrderFulfillmentEBM/DataArea/ProcessSalesOrderFulfillment/FulfillmentPriorityCode.

  3. The ProcessSalesOrderFulfillmentOSMCFSCommsJMSProducer looks for the FulfillmentPriorityCode and does a lookup on SALESORDER_PRIORITY DVM for the JMS column and populates the priority in the JMS Headers in JMSPriority field.

  4. The store and forward (SAF) mechanism honors the JMS priority and picks up the message with high priority first and passes it to Oracle OSM CFS.

  5. Oracle OSM CFS and Oracle OSM Provisioning honor the priority through internal mechanisms. Higher priority orders are fulfilled and provisioned first, followed by lower priority orders.

  6. Oracle OSM is expected to maintain the priority of the orders and must populate the FulfillmentPriorityCode element in all outbound messages.

  7. The population of JMS priority from the FulfillmentPriorityCode is done using the BPEL assign activity as follows:

    Look up the DVM column for priority value and copy it to the JMSPriority field in JMS headers:

    <assign>
                <copy>
                   <from expression="orcl:lookup-dvm('SALESORDER_PRIORITY','COMMON',bpws:getVariableData('priority_value'),'JMS',null)"/>
                    <to variable="msg_priority"/>
                </copy>
                <copy>
                    <from variable="msg_priority"/>
                    <to variable="jmsHeaders" part="outboundHeader"
                        query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundHeaders/ns5:JMSPriority"/>
                </copy>
            </assign>
    
    • jmsHeaders is a variable which is of type JMSOutboundHeadersAndProperties.

    • msg_priority is a string variable.

    The ProcessSalesOrderFulfillmentOSMCFSCommsJMSProducer follows this logic to populate the JMSPriority.

Other producers need not do a DVM lookup since the priority value is an integer and is directly populated in the EBMs in the FulfillmentPriorityCode. The integration can use this value to populate the JMS priority. Oracle OSM and Oracle AIA, unlike Siebel, follow the same values for JMS priorities.

9.4 Siebel CRM Interfaces

This integration flow uses the following Siebel interface:

This is the outbound Siebel web service used to submit orders.

For more information about web services, see the Siebel Order Management Guide Addendum for Communications, "Web Services Reference."

9.5 Industry Oracle AIA Components

These integration flows use these industry components:

The industry enterprise business object (EBO) and EBM XSD files are located here: $AIA_HOME/apps/AIAMetaData/AIAComponents/EnterpriseObjectLibrary/Industry/Communications/EBO/

The industry EBS WSDL files are located here: $AIA_HOME/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).

For more information about using the OER and configuring it to provide the AIA Reference Doc link, see Oracle Application Integration Architecture - Foundation Pack: Integration Developer's Guide, "Configuring and Using Oracle Enterprise Repository as the Oracle SOA Repository."

EBOs can be extended, for instance, to add new data elements. These extensions are protected, and remain intact after a patch or an upgrade.

For more information, see Oracle Application Integration Architecture - Foundation Pack: Integration Developer's Guide, "Extensibility for Oracle AIA Artifacts," Extending EBOs.

9.6 Integration Services

The following services are delivered with these integration flows:

9.6.1 ProcessSalesOrderFulfillmentSiebelCommsJMSConsumer

The ProcessSalesOrderFulfillmentSiebelCommsJMSConsumer is implemented as a Mediator process.

This consumer listens over the AIA_SALESORDERJMSQUEUE into which Siebel enqueues the simple object access protocol (SOAP)-wrapped Siebel Order application business message (ABM). This consumer dequeues the messages from this queue, unwraps the message from the SOAP envelope, and routes the Siebel ABM to the ProcessSalesOrderFulfillmentSiebelCommsReqABCSImpl.

9.6.2 ProcessSalesOrderFulfillmentSiebelCommsReqABCSImpl

The ProcessSalesOrderFulfillmentSiebelCommsReqABCSImpl is implemented as a business process execution language (BPEL) process with a single operation: process.

This service is invoked when an order is submitted in the Siebel application. This service is the Siebel ABCS implementation, which converts the Siebel ABM into the Order EBM before invoking the CommunicationsSalesOrderEBSV2. The service looks up the cross-reference values for the customer account ID, billing profile ID, pay profile ID, and product ID to find common IDs to appropriately populate the Order EBM. In the case of promotions and service bundles, if the cross-reference values are not present, new cross-reference values are created.

This service also creates the requisite cross-reference values for the order ID, order line ID, installed product ID, account ID, bill profile ID, pay profile ID, contact ID, and address ID between Siebel values and generated common values.

9.6.3 CommunicationsSalesOrderEBSV2

The CommunicationsSalesOrderEBSV2 is implemented as a Mediator service to perform routing wherever needed. The CommunicationsSalesOrderEBSV2 is the Order Entity EBS that has the following operation used by this integration flow:

  • ProcessSalesOrderFulfillment - The ProcessSalesOrderFulfillmentSiebelCommsReqABCSImpl invokes the ProcessSalesOrderFulfillment operation to send messages to ProcessSalesOrderFulfillmentOSMCFSCommsJMSProducer, which in turn puts a message in a queue for an Order Management system (like Oracle OSM) to pick up and process.

9.6.4 ProcessSalesOrderFulfillmentOSMCFSCommsJMSProducer

The ProcessSalesOrderFulfillmentOSMCFSCommsJMSProducer is a BPEL process that has a JMS Adapter Service, which enqueues the message ProcessSalesOrderFulfillmentEBM into AIA_CRTFO_IN_JMSQ after wrapping it into SOAP envelope (for putting WS-security information for Oracle OSM) and Oracle OSM's CreateOrder envelope.

This service has one operation: Initiate. It takes the

ProcessSalesOrderFulfillmentOSMCFSCommsJMSProducerRequestMessage as input.