4 Implementing the Synchronize Product and Price Business Flow

This chapter describes the Synchronize Product and Price business flow and explains how the Oracle Communications Order to Cash for Siebel customer relationship management (Siebel CRM) and Oracle Communications Billing and Revenue Management (BRM) Pre-built Integration option (the integration) implements the business flow using BRM interfaces, communications industry-specific Oracle Application Integration Architecture (Oracle AIA) components, and integration services.

Synchronize Product and Price Business Flow Overview

The Synchronize Product and Price integration between BRM and Siebel CRM supports the following integration flows (in real time or batch mode):

  • Product Synchronization integration flow: lets you create new products in BRM and synchronize them to Siebel CRM.

  • Billing Discount Synchronization integration flow: lets you create billing discounts in BRM and synchronize them to Siebel CRM.

  • Chargeshare Synchronization integration flow: lets you create chargeshares in BRM and synchronize them to Siebel CRM.

Product Synchronization Integration Flow

The product synchronization integration flow lets you create new products in BRM and synchronize them to Siebel CRM. You use the products in the Order Capture and Asset Tracking modules in Siebel CRM.

This integration flow also lets you update existing products in BRM and synchronize the updates to Siebel CRM.

Products in BRM can have multiple events, each with a price. In Siebel CRM, each product has only one price for each product. The product synchronization integration flow takes multiple events with recurring prices first. If no recurring price event exists, then the integration takes the first event and makes that the main (parent) product with a price.

After synchronizing the product data from BRM to Siebel CRM, Siebel CRM returns a message containing both the product and the price data. The integration separates the product data from the price list data, and then synchronizes the price data in a separate process.

This integration flow includes the following services:

  • SyncProductBRMCommsReqABCSImpl with operation SyncProduct

  • SyncItemCompositionListSiebelCommsProvABCSImpl with operation SyncItemCompositionList

  • ProductOptimizedSyncPriceListListSiebelCommsProvABCSImpl with operation ProductOptimizedSyncPriceListList

Figure 4-1 shows the sequence of Oracle AIA services that synchronize products.

Figure 4-1 Product Synchronization Sequence Diagram

This figure is described in the surrounding text.

The integration synchronizes products as follows:

  1. A BRM user creates or edit a product and commits it to the BRM database.

    The product drops into the BRM product queue.

  2. The SyncProductInfoChangeBRMAQ adapter, which polls the BRM product queue, picks up the message and invokes the SyncProductBRMCommsReqABCSImpl service with the SyncProduct operation.

  3. SyncProductBRMCommsReqABCSImpl transforms the BRM product message into an ItemCompositionEBM message and sends it to the SyncItemCompositionListSiebelCommsProvABCSImpl service.

  4. SyncItemCompositionListSiebelCommsProvABCSImpl transforms ItemCompositionEBM into the Siebel CRM product message and calls the Siebel CRM product web service with the SWIProductImportUpsert operation.

    The Siebel CRM web service completes the request and returns a response message. SyncItemCompositionListSiebelCommsProvABCSImpl transforms the Siebel CRM response message to an ItemCompositionResponseEBM and returns it to SyncProductBRMCommsReqABCSImpl.

  5. SyncProductBRMCommsReqABCSImpl transforms the BRM product message into the PriceListListEBM message and routes the message to the ProductOptimizedSyncPriceListListSiebelCommsProvABCSImpl service.

  6. ProductOptimizedSyncPriceListListSiebelCommsProvABCSImpl identifies the event to be associated with the main product, transforms SyncPriceListListEBM to a SyncItemCompositionListEBM message, and sends it to the SyncItemCompositionListSiebelCommsProvABCSImpl service.

  7. SyncItemCompositionListSiebelCommsProvABCSImpl transforms ItemCompositionEBM to the Siebel CRM product message and calls the Siebel CRM product web service with the SWIProductImportUpsert operation.

    The Siebel CRM web service completes the request and returns a response message. SyncItemCompositionListSiebelCommsProvABCSImpl transforms the Siebel CRM response message to an ItemCompositionResponseEBM message and returns it to ProductOptimizedSyncPriceListListSiebelCommsProvABCSImpl.

  8. ProductOptimizedSyncPriceListListSiebelCommsProvABCSImpl transforms PriceListEBM to a Siebel CRM price list message and calls the Siebel CRM price list web service with the Price_spcList_spcItem_spcInsertOrUpdate operation.

    ProductOptimizedSyncPriceListListSiebelCommsProvABCSImpl transforms PriceListListEBM to a Siebel CRM product message and calls the Siebel CRM product web service with the SWIProductImportUpsert operation.

    The Siebel CRM web service completes the request and returns a response message. ProductOptimizedSyncPriceListListSiebelCommsProvABCSImpl transforms the Siebel CRM response message to a PriceListListResponseEBM.

Billing Discount Synchronization Integration Flow

The billing discount synchronization integration flow lets you create billing discounts in BRM and synchronize them to Siebel CRM. You use the billing discounts in the Order Capture module in Siebel CRM.

This integration flow also lets you update billing discounts in BRM and synchronize the updates to Siebel CRM.

The billing discount synchronization integration flow synchronizes only the basic billing discount attributes. It does not synchronize any price information. Add the billing discount detail information in the description of the billing discount when creating billing discounts.

This integration flow includes the following services:

  • SyncDiscountBRMCommsReqABCSImpl with operation SyncDiscount

  • SyncItemCompositionListSiebelCommsProvABCSImpl with operation SyncItemCompositionList

Figure 4-2 shows the sequence of Oracle AIA services that synchronize discounts.

Figure 4-2 Billing Discount Synchronization Sequence Diagram

This figure is described in the surrounding text.

The integration synchronizes billing discounts as follows:

  1. A BRM user creates or edits a discount and commit it to the BRM database.

    The discount drops into the BRM discount queue.

  2. The SyncDiscountInfoChangeBRMAQ adapter, which polls the BRM discount queue, picks up the message and invokes the SyncDiscountBRMCommsReqABCSImpl service with the SyncDiscount operation.

  3. SyncDiscountBRMCommsReqABCSImpl transforms the BRM discount message into the ItemCompositionEBM message and sends it to the SyncItemCompositionListSiebelCommsProvABCSImpl service.

  4. The SyncItemCompositionListSiebelCommsProvABCSImpl service transforms the ItemCompositionEBM message into the Siebel CRM product message and calls the Siebel CRM product web service with the SWIProductImportUpsert operation.

    The Siebel CRM web service completes the request and returns a response message to the SyncItemCompositionListSiebelCommsProvABCSImpl service.

Chargeshare Synchronization Integration Flow

The chargeshare synchronization integration flow lets you create chargeshares in BRM and synchronize them to Siebel CRM as simple products of billing type Sponsorship. You use the chargeshares as rewards when creating promotion groups in Siebel CRM.

This integration flow also lets you update the chargeshares in BRM and synchronize the updates to Siebel CRM.

This integration flow delivers the following services:

  • SyncSponsorshipInfoChangeBRMAQ

  • SyncSponsorshipBRMCommsReqABCSImpl

Figure 4-3 shows the sequence of Oracle AIA services that synchronize chargeshares.

Figure 4-3 Chargeshare Synchronization Sequence Diagram

Surrounding text describes Figure 4-3 .

The integration synchronizes chargeshares as follows:

  1. A BRM user creates or edits chargeshares and commits them to the BRM database. If real-time product synchronization is disabled, the BRM user also runs the batch synchronization utility.

    The SponsorshipInfoChangeABM message, which contains the definition of the chargeshare, drops into the BRM chargeshare queue.

  2. The SyncSponsorshipInfoChangeBRMAQ adapter, which polls the BRM chargeshare queue, picks up the message and calls the SyncSponsorshipBRMCommsReqABCSImpl service with the SyncSponsorship operation.

  3. SyncSponsorshipBRMCommsReqABCSImpl transforms the BRM message into the ItemCompositionEBM message and sends it to the SyncItemCompositionListSiebelCommsProvABCSImpl service.

  4. The SyncItemCompositionListSiebelCommsProvABCSImpl service transforms the ItemCompositionEBM message into the Siebel CRM product message and calls the Siebel CRM product web service with the SWIProductImportUpsert operation.

    The Siebel CRM web service completes the request and returns a response message to the SyncItemCompositionListSiebelCommsProvABCSImpl service.

BRM Interfaces

The Synchronize Product and Price business flow uses the following BRM interfaces:

  • SyncProductInfoChangeBRMAQ: This adapter polls the BRM product queue. It dequeues whenever it sees a message in the queue and invokes SyncProductBRMCommsReqABCSImpl with the operation SyncProduct.

  • SyncDiscountInfoChangeBRMAQ: This adapter polls the BRM discount queue. It dequeues whenever it sees a message in the queue and invokes SyncDiscountBRMCommsReqABCSImpl with the operation SyncDiscount.

  • SyncSponsorshipInfoChangeBRMAQ: This adapter polls the BRM chargeshare queue. It dequeues whenever is sees a message in the queue and invokes SyncSponsorshipBRMCommsReqABCSImpl with the operation SyncSponsorship.

Siebel CRM Interfaces

The Synchronize Product and Price business flow uses the following Siebel CRM interfaces:

  • SWIISSPriceListItemIO: This web service is used to perform basic operations on a price list such as insert or update (upsert).

  • SWIProductImport: This inbound web service is used to support Insert or Update of product details, which allows the import of external product information into the Siebel CRM database.

See the discussion of Siebel CRM primary web services in Siebel CRM Web Services Reference for more information.

Industry Oracle AIA Components

The Synchronize Product and Price business flow uses the following communications industry Oracle AIA components:

  • ItemCompositionEBO

  • SyncItemCompositionListEBM

  • SyncItemCompositionListResponseEBM

  • PriceListEBO

  • SyncPriceListListEBM

  • SyncPriceListListResponseEBM

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

The industry enterprise business service (EBS) WSDL files are located here: $AIA_HOME/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 Oracle Fusion Middleware Developer's Guide for Oracle Application Integration Architecture Foundation Pack for more information about:

  • Configuring and using OER as the Oracle SOA Repository to provide the AIA Reference doc link

  • Extending existing schemas and EBOs

Integration Services

The following services are delivered with the Synchronize Product and Price business flow:

  • SyncProductBRMCommsReqABCSImpl

  • SyncDiscountBRMCommsReqABCSImpl

  • SyncSponsorshipBRMCommsReqABCSImpl

  • SyncItemCompositionListSiebelCommsProvABCSImpl

  • ProductOptimizedSyncPriceListListSiebelCommsProvABCSImpl

Some of these services have been enabled to use Session Pool Manager.

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

SyncProductBRMCommsReqABCSImpl

SyncProductBRMCommsReqABCSImpl has the operation SyncProduct and performs all of the Product/Item-related actions such as Create Product/Item, Update Product/Item, and Sync Product/Item.

This service accepts a BRM product message as a request and does not return a response. A BRM product message has two sets of information:

  • Standard product attributes.

  • Pricing information that can be mapped to a PriceLine of a PriceList.

Because it has two sets of information, the BRM product message is transformed into two EBMs: one for the product (SyncItemCompositionListEBM) and another for the PriceLine (SyncPriceListList EBM).

The program first prepares the SyncItemCompositionListEBM with the basic product information.

After the SyncItemCompositionList is complete, it prepares a SyncPriceListListEBM with the pricing information of the BRM message. It fetches the PriceList name from a configuration parameter.

The configuration parameter is located in the AIAConfigurationProperties.xml file.

SyncDiscountBRMCommsReqABCSImpl

SyncDiscountBRMCommsReqABCSImpl is a BPEL service and it is the BRM discount request ABC implementation. It has the operation SyncDiscount. This accepts a BRM discount message as a request and does not return a response.

The BRM discount message has basic discount attributes and does not contain any pricing information. The BRM discount message is transformed into the SyncItemCompositionListEBM with the basic discount information.

SyncSponsorshipBRMCommsReqABCSImpl

SyncSponsorshipBRMCommsReqABCSImpl is a BPEL service and it is the BRM chargeshare requestor ABCS implementation. It has the operation SyncSponsorship. This accepts a BRM chargeshare message as a request and does not return a response.

The BRM chargeshare message has basic chargeshare attributes and does not contain any pricing information. The BRM chargeshare message is transformed into the SyncItemCompositionListEBM with the basic chargeshare information.

SyncItemCompositionListSiebelCommsProvABCSImpl

The SyncItemCompositionListSiebelCommsProvABCSImpl process accepts the SyncItemCompositionListEBM. It transforms SyncItemCompositionListEBM into the Siebel CRM product ABM. It then invokes the Siebel CRM Product web service to create products and product structures in Siebel.

This service is enabled to use Session Pool Manager.

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

ProductOptimizedSyncPriceListListSiebelCommsProvABCSImpl

The ProductOptimizedSyncPriceListListSiebelCommsProvABCSImpl service performs all of the PriceList-related actions such as Create PriceList, Update PriceList, Sync PriceList, and Sync PriceListList. This operation has the standard create, read, update, delete (CRUD) operations.

This service transforms the PriceListEBM into a Siebel CRM price list message and then calls the Siebel CRM price list web service on operation Price_spcList_spcItem_spcInsertOrUpdate. The ProductOptimizedSyncPriceListListSiebelCommsProvABCSImpl transforms the PriceListListEBM into a Siebel CRM product message and then calls the Siebel CRM product web service on operation SWIProductImportUpsert. The Siebel CRM web service completes the request and returns a response message. SWIProductImportUpsert then transforms the Siebel CRM response message to a PriceList ListResponseEBM.

This service is Session Pool Manager enabled.

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