4 Implementing the Synchronize Product and Price Business Flow

This chapter explains how the Oracle Application Integration Architecture (Oracle AIA) Oracle Communications Order to Cash Integration Pack (the integration) implements the Synchronize Product and Price business flow.

About the Synchronize Product and Price Business Flow

The following pre-built integration options enable the Synchronize Product and Price business flow:

  • Order to Cash for Oracle Communications Billing and Revenue Management (BRM)

  • Order to Cash for Siebel CRM

The Synchronize Product and Price business flow includes the following integration flows:

  • Product Synchronization integration flow

  • Discount Synchronization integration flow

  • Chargeshare Synchronization integration flow

About the Product Synchronization Integration Flow

The product synchronization integration flow lets you synchronize new or updated products and their prices from BRM to Siebel CRM. You use the products in quotes and orders in Siebel CRM.

The product message from Siebel CRM contains all of the required product and price data. The integration separates the product data from the price data, calls web services to create the products, receives a response from Siebel CRM, then calls web services to add the pricing data.

Products in BRM can have multiple events, each with a price. In Siebel CRM, each product has only one price. 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.

This integration flow includes the following services:

  • Integration services for BRM:

    • SyncProductBRMCommsReqABCSImpl

    • SyncProductInfoChangeBRMAQ

  • Integration services for Siebel CRM:

    • SyncItemCompositionListSiebelCommsProvABCSImpl

    • SyncItemCompositionListSiebelCommsJMSConsumer

    • ProductOptimizedSyncPriceListListSiebelCommsProvABCSImpl

    • ProductOptimizedSyncPriceListListSiebelCommsJMSConsumer

  • Integration services:

    • CommunicationsItemCompositionEBSV1

    • CommunicationsPriceListEBSV2

Figure 4-1 shows the sequence of integration services through which the product message passes for the Product Synchronization integration flow with Siebel CRM.

Figure 4-1 Product Synchronization Sequence with Siebel CRM

This figure is described in the surrounding text.

The integration synchronizes products as follows:

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

    The product is added to the BRM product queue as an ABM.

  2. The SyncProductInfoChangeBRMAQ adapter, which polls the BRM product queue, picks up the ABM and invokes the SyncProductBRMCommsReqABCSImpl service.

  3. The requester service transforms the BRM product message into a SyncItemCompositionListEBM message and sends it to the CommunicationsItemCompositionEBSV1 mediator service.

  4. The item mediator service checks adds the request EBM to the Siebel CRM JMS queue.

  5. The SyncItemCompositionListSiebelCommsJMSConsumer service picks up the request EBM and sends it to the SyncItemCompositionListSiebelCommsProvABCSImpl service.

  6. The provider service transforms the item request EBM into the Siebel CRM product message and calls the Siebel CRM product web service.

    The web service creates the products in Siebel CRM and returns a response message to the provider service.

  7. The provider service transforms the response message to a SyncItemCompositionResponseEBM and adds it to the Siebel CRM JMS queue.

  8. The Siebel CRM JMS consumer service picks up the response EBM and sends it to the item mediator service.

  9. The item mediator service sends the response EBM to the BRM requester service.

  10. The BRM requester services transforms the item response EBM into the SyncPriceListListEBM message and sends it to the CommunicationsPriceListEBSV2 mediator service.

  11. The price list mediator service adds the request EBM to the Siebel CRM JMS queue.

  12. The ProductOptimizedSyncPriceListListSiebelCommsJMSConsumer service picks up the request EBM and sends it to the ProductOptimizedSyncPriceListListSiebelCommsProvABCSImpl service.

  13. For price list items with multiple events:

    1. The price list provider service identifies the event to be associated with the main product, transforms SyncPriceListListEBM to a SyncItemCompositionListEBM message, and sends it to the SyncItemCompositionListSiebelCommsProvABCSImpl service.

    2. The Siebel item requester service transforms the EBM to a Siebel CRM product ABM and calls the Siebel CRM product web service.

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

    3. The provider service transforms the response to an ItemCompositionResponseEBM message and returns it to ProductOptimizedSyncPriceListListSiebelCommsProvABCSImpl.

  14. The price list provider service transforms SyncPriceListListEBM to a product ABM and calls the Siebel CRM product web service to update the products with pricing information.

    The web service completes the request and returns a response message.

  15. The price list provider service transforms the message to a price list ABM and calls the Siebel CRM price list web service to update the price list with the pricing information.

    The web service completes the request and returns a response message.

About the Discount Synchronization Integration Flow

The discount synchronization integration flow lets you synchronize new or updated discounts from BRM to Siebel CRM. You use the discounts in quotes and orders in Siebel CRM.

The discount synchronization integration flow synchronizes only the basic discount attributes. It does not synchronize any price information. When you create discounts in BRM, include relevant details in the description.

This integration flow includes the following services:

  • Integration services for BRM:

    • SyncDiscountInfoChangeBRMAQ

    • SyncDiscountBRMCommsReqABCSImpl

  • Integration services for Siebel CRM:

    • SyncItemCompositionListSiebelCommsProvABCSImpl

    • SyncItemCompositionListSiebelCommsJMSConsumer

  • Integration services:

    • CommunicationsItemCompositionEBSV1

Figure 4-2 shows the sequence of integration services through which the product message passes for the Discount Synchronization integration flow with Siebel CRM.

Figure 4-2 Discount Synchronization Sequence with Siebel CRM

This figure is described in the surrounding text.

The integration synchronizes discounts as follows:

  1. A BRM user creates or edits discounts and commits them to the BRM database.

    The discount definition is added to the BRM discount queue as an application business message (ABM).

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

  3. The requester service transforms the BRM discount message into the SyncItemCompositionListEBM message and sends it to the CommunicationsItemCompositionEBSV1 mediator service.

  4. The mediator service adds the item EBM to the Siebel CRM JMS queue.

  5. The SyncItemCompositionListSiebelCommsJMSConsumer service picks up the message and sends it to the SyncItemCompositionListSiebelCommsProvABCSImpl service.

  6. The provider service transforms the SyncItemCompositionListEBM message into the Siebel CRM product message and calls the Siebel CRM product web service.

    The web service creates the discounts in Siebel CRM and returns a response message to the provider service.

About the Chargeshare Synchronization Integration Flow

The chargeshare synchronization integration flow lets you synchronize new or updated chargeshares from BRM to Siebel CRM as simple products. In Siebel CRM, you use the chargeshares as rewards when creating promotion groups.

This integration flow includes the following services:

  • Integration services for BRM:

    • SyncSponsorshipInfoChangeBRMAQ

    • SyncSponsorshipBRMCommsReqABCSImpl

  • Integration services for Siebel CRM:

    • SyncItemCompositionListSiebelCommsProvABCSImpl

    • SyncItemCompositionListSiebelCommsJMSConsumer

Figure 4-3 shows the sequence of integration services through which the product message passes for the Chargeshare Synchronization integration flow with Siebel CRM.

Figure 4-3 Chargeshare Synchronization Sequence with Siebel CRM

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.

    The SponsorshipInfoChangeABM message, which contains the definition of the chargeshare, is added to 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. The requester service transforms the BRM discount message into the SyncItemCompositionListEBM message and sends it to the CommunicationsItemCompositionEBSV1 mediator service.

  4. The mediator service checks adds the item EBM to the Siebel CRM JMS queue.

  5. The SyncItemCompositionListSiebelCommsJMSConsumer service picks up the message and sends it to the SyncItemCompositionListSiebelCommsProvABCSImpl service.

  6. SyncItemCompositionListSiebelCommsProvABCSImpl transforms the SyncItemCompositionListEBM message into the Siebel CRM product message and calls the Siebel CRM SWIProductIntegrationIO web service.

    The Siebel CRM web service creates the chargeshares 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 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 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:

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.

CommunicationsItemCompositionEBSV1

The CommunicationsItemCompositionEBSV1 enterprise business service is a mediator service that sends the SyncItemCompositionListEBM message to Siebel CRM. It receives the response message from the provider service and returns it to the BRM requester service.

SyncItemCompositionListSiebelCommsJMSConsumer

The SyncItemCompositionListSiebelCommsJMSConsumer is a JMS consumer service. It is subscribed to the AIA_SYNCPROD_SBL_JMSQ queue into which item EBMs are added.

This consumer picks up SyncItemCompositionListEBM and sends it to SyncItemCompositionListSiebelCommsProvABCSImpl. It also picks up the response EBM and sends it to CommunicationsItemCompositionEBSV1.

SyncItemCompositionListSiebelCommsProvABCSImpl

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

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.

CommunicationsPriceListEBSV2

The CommunicationsPriceListEBSV2 enterprise business service is a mediator service that sends the SyncPriceListListEBM message to a Siebel CRM provider service. It receives the response message from the provider service and returns it to the BRM requester service.

ProductOptimizedSyncPriceListListSiebelCommsJMSConsumer

ProductOptimizedSyncPriceListListSiebelCommsJMSConsumer is a JMS consumer service. It is subscribed to the AIA_SYNCPL_SBL_JMSQ queue into which price list EBMs are added.

This consumer service picks up SyncPriceListListEBM and sends it to ProductOptimizedSyncPriceListListSiebelCommsProvABCSImpl. It also picks up the response EBM and sends it to CommunicationsPriceListEBSV2.

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 PriceListListResponseEBM.

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.