This chapter describes the Bill Fulfillment Order business flow and explains how the Oracle Communications Order to Cash Integration Pack for Siebel customer relationship management (Siebel CRM), Oracle Communications Order and Service Management (OSM), and Oracle Communications Billing and Revenue Management (BRM) (the integration) implements the business flow using BRM interfaces, communications industry-specific Oracle Application Integration Architecture (Oracle AIA) components, and integration services.
The following pre-built integration option enables the Bill Fulfillment Order business flow:
Oracle Communications Order to Cash for Siebel CRM, OSM, and BRM Pre-Built Integration option
The Bill Fulfillment Order business flow supports the following integration flow:
Interfacing Orders to Create Transaction Data in BRM
The Interfacing Orders to Create Transaction Data in BRM integration flow uses the following services:
ProcessFulfillmentOrderBillingOSMCFSCommsJMSConsumer
ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl
ProcessFulfillmentOrderBillingOSMCFSCommsJMSProducer
Figure 13-1 illustrates the integration components used by OSM to interface orders to create transaction data in BRM.
The integration interfaces orders to create transaction data in BRM as follows:
While decomposing and orchestrating an order created by the Process Sales Order Fulfillment business flow, OSM creates a ProcessFulfillmentOrderBillingEBM message and drops it into the AIA_CRTBO_OUT_JMSQ JMS queue.
The ProcessFulfillmentOrderBillingOSMCFSCommsJMSConsumer service picks up ProcessFulfillmentOrderBillingEBM and sends it to the ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl service.
ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl uses ProcessFulfillmentOrderBillingEBM to invoke opcodes and create billing data in BRM, including billing artifacts, service instances with balance group information, purchased products, purchased discounts, and sharing groups.
The opcodes send output response messages, which ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl transforms into the ProcessFulfillmentOrderBillingResponseEBM message and sends back to the ProcessFulfillmentOrderBillingResponseOSMCFSCommsJMSProducer service.
ProcessFulfillmentOrderBillingResponseOSMCFSCommsJMSProducer drops ProcessFulfillmentOrderBillingResponseEBM into the AIA_UPDBO_IN_JMSQ queue where OSM receives updates.
For this flow there is one transaction boundary. Table 13-1 describes the transaction involved, the database operations, and what actions to take in case of an error.
See "Using Error Type to Control Response to Order Fallout" for more information about system errors and business errors.
The following services are involved:
ProcessFulfillmentOrderBillingOSMCFSCommsJMSConsumer
ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl
ProcessFulfillmentOrderBillingBRMCommsAddSubProcess
ProcessFulfillmentOrderBillingBRMCommsDeleteSubProcess
ProcessFulfillmentOrderBillingBRMCommsMoveAddSubProcess
ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess
ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess
ProcessFulfillmentOrderBillingResponseOSMCFSCommsJMSProducer
Table 13-1 Transaction Boundaries and Recovery Details
Transaction | DB Operations | In Case of Error | Recovery |
---|---|---|---|
The ProcessFulfillmentOrderBillingOSMCFSCommsJMSConsumer service passes the message to the ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl service, which creates billing artifacts and call one or more subprocesses. The response message is then routed to the ProcessFulfillmentOrderBillingResponseOSMCFSCommsJMSProducer service. |
AIA cross-references created. BRM data created. Message goes to the AIA_UPDBO_IN_JMSQ queue. |
Rollback AIA cross-references. Rollback data created in BRM. Message goes back to the originating queue (AIA_CRTBO_OUT_JMSQ_ErrorQ). |
Resubmit the order from the AIA_CRTBO_OUT_JMSQ_ErrorQ queue. |
See "Configuring Oracle AIA Processes for Error Handling and Trace Logging", Configuring Fault Policies to Not Issue Rollback Messages in Oracle Fusion Middleware Developer's Guide for Oracle Application Integration Architecture Foundation Pack for more information about rollback procedures.
The Bill Fulfillment Order business flow uses these services:
PCM_OP_CUST_CREATE_PROFILE
PCM_OP_CUST_DELETE_PROFILE
PCM_OP_CUST_MODIFY_CUSTOMER
PCM_OP_CUST_MODIFY_PROFILE
PCM_OP_CUST_SET_STATUS
PCM_OP_CUST_UPDATE_SERVICES
PCM_OP_READ_FLDS
PCM_OP_READ_OBJ
PCM_OP_SEARCH
PCM_OP_SUBSCRIPTION_CANCEL_DISCOUNT
PCM_OP_SUBSCRIPTION_CANCEL_PRODUCT
PCM_OP_SUBSCRIPTION_ORDERED_BALGRP
PCM_OP_SUBSCRIPTION_PURCHASE_DEAL
PCM_OP_SUBSCRIPTION_SERVICE_BALGRP_TRANSFER
PCM_OP_SUBSCRIPTION_SET_PRODINFO
PCM_OP_SUBSCRIPTION_SHARING_GROUP_CREATE
PCM_OP_SUBSCRIPTION_SHARING_GROUP_DELETE
PCM_OP_SUBSCRIPTION_SHARING_GROUP_MODIFY
PCM_OP_SUBSCRIPTION_SET_BUNDLE
PCM_OP_SUBSCRIPTION_SET_DISCOUNT_STATUS
PCM_OP_SUBSCRIPTION_SET_PRODUCT_STATUS
PCM_OP_SUBSCRIPTION_TRANSFER_SUBCRIPTION
See the BRM documentation for more information.
The Bill Fulfillment Order business flow uses these industry components:
FufillmentOrderEBO
ProcessFulfillmentOrderBillingEBM
ProcessFulfillmentOrderBillingResponseEBM
The industry enterprise business object (EBO) and enterprise business message XML schema (EBM XSD) files are located in: $AIA_HOME/AIAMetaData/AIAComponents/EnterpriseObjectLibrary/Industry/Communications/EBO/
The industry enterprise business service (EBS) WSDL files are located in: $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
The following services are delivered with the Bill Fulfillment Order business flow:
ProcessFulfillmentOrderBillingOSMCFSCommsJMSConsumer
ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl
ProcessFulfillmentOrderBillingBRMCommsAddSubProcess
ProcessFulfillmentOrderBillingBRMCommsMoveAddSubProcess
ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess
ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess
ProcessFulfillmentOrderBillingBRMCommsDeleteSubProcess
ProcessFulfillmentOrderBillingBRMCommsSharingGroupSubProcess
ProcessFulfillmentOrderBillingOSMCFSCommsJMSProducer
The ProcessFulfillmentOrderBillingOSMCFSCommsJMSConsumer service is a Mediator process that has a JMS Adapter Service, which continuously polls the AIA_CRTBO_OUT_JMSQ queue. The ProcessFulfillmentOrderBillingOSMCFSCommsJMSConsumer service dequeues the ProcessFulfillmentOrderBillingEBM message and routes it to the ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl service.
This service has one operation: Consume_Message.
The ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl service consists of a BPEL process with one operation: ProcessBilling. It receives the Order EBM and then converts the message into a BRM-specific message based on which opcode must be invoked.
This service communicates with BRM using the custom Java EE Connector Architecture (JCA) adapter provided by BRM. It uses the default capability of the custom JCA adapter to define unit transactions for every order. (Do all or none.)
The routing to the right BRM instance is done using dynamic end point binding in the BPEL process using the target application that is decided.
This service accepts the appropriate ProcessFulfillmentOrderBillingEBM message and is responsible for transforming to the relevant BRM ABM and invoking the corresponding opcode.
The ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl service performs the following activities:
Evaluates the product type of the order line and the action code. If the particular order line is a service bundle, subscription, discount, or item and if this line has never been interfaced to BRM, it calls the subprocesses as described in Table 13-2.
Table 13-2 Subprocesses Called by Action Code, Billing Mode, and Fulfillment Mode
Action Code | Billing Mode | Fulfillment Mode | Subprocess |
---|---|---|---|
ADD |
INITIATE BILLING |
DO |
ProcessFulfillmentOrderBillingBRMCommsAddSubProcess and ProcessFulfillmentOrderBillingBRMCommsSharingGroupSubProcess |
ADD |
FULFILL BILLING |
DO |
ProcessFulfillmentOrderBillingBRMCommsAddSubProcess and ProcessFulfillmentOrderBillingBRMCommsSharingGroupSubProcess |
ADD |
INITIATE BILLING |
REDO |
|
ADD |
INITIATE BILLING |
UNDO |
|
DELETE |
FULFILL BILLING |
DO |
ProcessFulfillmentOrderBillingBRMCommsDeleteSubProcess and ProcessFulfillmentOrderBillingBRMCommsSharingGroupSubProcess |
SUSPEND or RESUME |
FULFILL BILLING |
DO |
ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess |
UPDATE |
FULFILL BILLING |
DO |
ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess and ProcessFulfillmentOrderBillingBRMCommsSharingGroupSubProcess |
MOVE-ADD |
FULFILL BILLING |
DO |
ProcessFulfillmentOrderBillingBRMCommsMoveAddSubProcess and ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess |
When an order has one or multiple special rating products, ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl calls the following opcodes:
PCM_OP_CUST_CREATE_PROFILE: called on new orders. The POID on the opcode response is populated in the AIA XREF database.
PCM_OP_CUST_DELETE_PROFILE: called to deleting a special rating product. The POID on the opcode response is deleted from the AIA XREF database.
PCM_OP_CUST_MODIFY_PROFILE: called to modify the customer's profile after deleting a special rating product.
For Promotion on Invoice, ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl calls the PCM_OP_SUBSCRIPTION_SET_BUNDLE opcode and different values are passed depending on the particular functional operation.
When the order has promotion group or family plan order lines, ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl calls the ProcessFulfillmentOrderBillingBRMCommsSharingGroupSubProcess service. See "ProcessFulfillmentOrderBillingBRMCommsSharingGroupSubProcess".
After all of these activities, the data is cross-referenced to the AIA XREF database.
In case of errors, AIA can send a response message to the order management system, depending on the value of the responseCode attribute of the DataArea on ProcessFulfillmentOrderBillingEBM.
If the value of responseCode is REQUIRED_FOR_BUSINESS_AND_SYSTEM_ERRORS, AIA sends a response message to the order management system for all errors. If the value of responseCode is REQUIRED_FOR_BUSINESS_ERRORS, AIA only sends a response message to the order management system for business errors.
Note:
OSM does not expect a response for errors. Instead, OSM uses the Oracle AIA order fallout notification to both generate a trouble ticket and change the order and line status to indicate failure.The ProcessFulfillmentOrderBillingBRMCommsAddSubProcess is a synchronous BPEL process that is called by the ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl. This call depends on the action code present on the order line and also the type of product.
The ProcessFulfillmentOrderBillingBRMCommsAddSubProcess is called for a service bundle, account-level product, or account-level discount that is being newly added either as a part of a new order or an update order and that has an action code of Add.
The ProcessFulfillmentOrderBillingBRMCommsAddSubProcess is never called for any one-time penalty charges that also have an action code of Add, but are being added as a part of the MACD operation performed on a service bundle or a promotion.
The ProcessFulfillmentOrderBillingBRMCommsAddSubProcess receives a custom message that has the ProcessFulfillmentOrderBillingEBM, XREFPopulate, and XREFDelete DataStructure.
The structure of the message coming in to the ProcessFulfillmentOrderBillingBRMCommsAddSubProcess comprises:
ProcessFulfillmentOrderBillingEBM
XREFPopulate
XREFDelete
Depending on the type of product for every order Line, the following operations are performed in the ProcessFulfillmentOrderBillingBRMCommsAddSubProcess:
The incoming payload is tunneled through two transforms. The first transform groups all the service bundles per service account and the second transform groups all the account-level purchases.
When the product type is service bundle, the BPEL process accumulates all of the children inside the service bundle and calls the PCM_OP_CUST_MODIFY_CUSTOMER opcode. During this call, the ProcessFulfillmentOrderBillingBRMCommsAddSubProcess also transforms the ProcessFulfillmentOrderBillingEBM into a BRM-specific message. All the service bundles per service account per billing profile are passed in one single PCM_OP_CUST_MODIFY_CUSTOMER opcode call.
When the product type is an account-level subscription, discount, or item, then this BPEL process calls the PCM_OP_SUBSCRIPTION_PURCHASE_DEAL opcode. During this call, the ProcessFulfillmentOrderBillingBRMCommsAddSubProcess also transforms the ProcessFulfillmentOrderBillingEBM into a BRM-specific message.
After the BRM opcode calls are successfully carried out, this BPEL process captures the POID (ObjectIdentifier) returned by BRM and populates the XREFPopulateData. See Table 25-2, "Order Lifecycle Management Cross-References" for more details about the cross-references populated.
For ITEM, the POID (ObjectIdentifier) is returned by BRM only during INITIATE BILLING mode.
This service communicates with BRM using the JCA adapter provided by BRM. The service uses the default capability of the JCA adapter to define unit transactions for every order. (Do all or none.)
This service supports two modes of billing:
Initiate billing
Fulfill billing
The ProcessFulfillmentOrderBillingBRMCommsMoveAddSubProcess is a synchronous BPEL process that is called by the ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl. This call depends on the action code present on the order line and also the type of product. It has one operation: processBillingMove.
The structure of the message coming in ProcessFulfillmentOrderBillingBRMCommsMoveAddSubProcess comprises:
ProcessFulfillmentOrderBillingEBM
XREFPopulate
XREFDelete
When the action code on the order line is MoveAdd and the product type is a service bundle, a subscription product, an account-level product, or an account-level discount, the ProcessFulfillmentOrderBillingBRMCommsMoveAddSubProcess is called.
This process supports the following situations:
Transferring a service from one billing profile, service account, or billing account to another when service-level balance groups are enabled. This includes changing the paying account for services on a child account.
The ProcessFulfillmentOrderBillingBRMCommsMoveAddSubProcess service calls the ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess service. See "ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess" for information about how the Update subprocess implements the service transfer.
Changing the paying account for services on a child account when service-level balance groups are disabled. Both billing profile and billing account must be changed.
The ProcessFulfillmentOrderBillingBRMCommsMoveAddSubProcess service calls the ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess service. See "ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess" for information about how the Update subprocess implements the changes to billing profile and billing account.
Changes to ServiceID, Price Override, and Discount Override made as part of a move-add command.
To process the changes, after ProcessFulfillmentOrderBillingBRMCommsMoveAddSubProcess is invoked, ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl invokes ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess.
Simple Move-Add of the service bundles from one location to another.
There is no BRM interaction for this operation. Only the entries in the cross-reference tables are repointed.
A Move-Add order accompanied by a one-time penalty charge.
When a one-time penalty charge is associated, the ProcessFulfillmentOrderBillingBRMCommsMoveAddSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message and calls the PCM_OP_SUBSCRIPTION_PURCHASE_DEAL BRM opcode.
The structure of the message coming in the ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess comprises:
ProcessFulfillmentOrderBillingEBM
XREFPopulate
XREFDelete
The ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess is a synchronous BPEL process that is called by the ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl. This call depends on the action code present on the order line and also the type of product. It has one operation: processBillingSuspendResume.
When the action code is Suspend or Resume and the ProductType is a service bundle or an account-level subscription or account-level discount, then the ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess is called.
The following operations are done by this process:
When the action code is Suspend or Resume and the product type is a service bundle.
ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message and calls the PCM_OP_CUST_SET_STATUS BRM opcode.
When the action code is Suspend, then the ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess passes the Flag= 10102.
When the action code is Resume, then the ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess passes the Flag= 10100.
When the action code is Suspend or Resume and the product type is Account-Level Discount:
ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message and calls the PCM_OP_SUBSCRIPTION_SET_DISCOUNT_STATUS BRM opcode.
When the action code is Suspend, then the ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess passes the Flag= 2.
When the action code is Resume, then the ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess passes the Flag= 1.
When the action code is Suspend or Resume and the product type is Account-Level Subscription.
ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message and calls the PCM_OP_SUBSCRIPTION_SET_PRODUCT_STATUS BRM opcode.
When the action code is Suspend, then the ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess passes the Flag= 2.
When the action code is Resume, then the ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess passes the Flag= 1.
For Operation 1, a one-time penalty charge may or may not be associated.
When a one-time penalty charge is associated with the service bundle, then depending on the action code, the one-time charge gets added in the following manner:
When the action code is Suspend, the one-time charge gets added first.
ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message and calls the PCM_OP_SUBSCRIPTION_PURCHASE_DEAL BRM opcode.
After the one-time charge is added, then Operation 1 is run to suspend the service bundle.
When the action code is Resume, the one-time charge gets added after the service bundle is resumed.
Operation 1 is run to resume the service bundle.
Afterwards, the one-time charge gets added:
ProcessFulfillmentOrderBillingBRMCommsSuspendResumeSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message and calls the PCM_OP_SUBSCRIPTION_PURCHASE_DEAL BRM opcode.
The ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess service is a synchronous BPEL process that is called by the ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl service. This call depends on the action code present on the order line and the type of product. It has one operation: processBillingUpdate.
The structure of the message coming in ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess comprises:
ProcessFulfillmentOrderBillingEBM
XREFPopulate
XREFDelete
When the action code is Update and the product type is a service bundle, subscription product, or account-level discount, the ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess is called.
This process supports the following update situations:
Updating billing profiles, billing accounts, or service accounts for service bundles.
When service-level balance groups are enabled, you can transfer a service from one billing profile, billing account, or service account to another. This includes changing the paying account for the services on a child account.
ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message including new billing profile, service account, billing account, and balance group information. The process then calls the PCM_OP_CUST_MODIFY_CUSTOMER opcode to update the billing profile or billing account, and the PCM_OP_SUBSCRIPTION_SERVICE_BAL_GRP_TRANSFER opcode to transfer the services to the new service account and update the balance group POIDs in the cross-reference table.
When service-level balance groups are disabled, you can change the paying account for the services on a subordinate account by updating both the billing profile and the billing account.
ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message including new billing profile and billing account. The process then calls the PCM_OP_CUST_MODIFY_CUSTOMER opcode to update the billing profile and billing account in BRM.
Updating the service ID for a particular service bundle.
During this scenario, you can update the service ID for one or more service bundles as part of regular modify orders or as part of Move-Add.
ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message and calls the PCM_OP_CUST_UPDATE_SERVICES BRM opcode.
Price override
During this scenario, you can change the PriceOverride on a product line.
ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message and calls the PCM_OP_SUBSCRIPTION_SET_PRODINFO BRM opcode.
Discount override
During this scenario, you can change the DiscountOverride on a product line.
ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message and calls the PCM_OP_SUBSCRIPTION_SET_PRODINFO BRM opcode.
TBO End Date
During this scenario, you can change the EffectiveEndDate on a product line.
ProcessFulfillmentOrderBillingBRMCommsUpdateSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message and calls the PCM_OP_SUBSCRIPTION_SET_PRODINFO BRM opcode in case of SUSCRIPTION products and calls PCM_OP_SUBSCRIPTION_SET_DISCOUNTINFO in case of discount products.
The ProcessFulfillmentOrderBillingBRMCommsDeleteSubProcess is a synchronous BPEL process that is called by ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl. This call depends on the action code present on the order line and also the type of product. It has one operation: processBillingDelete.
When the action code is Delete and the product type is a service bundle or an account-level subscription or account-level discount, then the ProcessFulfillmentOrderBillingBRMCommsDeleteSubProcess is called.
The following operations are done by this process:
When the action code is Delete and the product type is Service Bundle, the ProcessFulfillmentOrderBillingBRMCommsDeleteSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message and calls the PCM_OP_CUST_SET_STATUS BRM opcode.
The ProcessFulfillmentOrderBillingBRMCommsDeleteSubProcess passes the StatusFlag=4 and Status = 10103 in this case.
When the action code is Delete and the product type is Discount, the ProcessFulfillmentOrderBillingBRMCommsDeleteSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message and calls the PCM_OP_SUBSCRIPTION_CANCEL_DISCOUNT BRM opcode.
When the action code is Delete and the product type is Account-Level Subscription, the ProcessFulfillmentOrderBillingBRMCommsDeleteSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message and calls the PCM_OP_SUBSCRIPTION_CANCEL_PRODUCT BRM opcode.
During these operations, the ProcessFulfillmentOrderBillingBRMCommsDeleteSubProcess also checks for the existence of any one-time penalty charge. If present, then the ProcessFulfillmentOrderBillingBRMCommsDeleteSubProcess converts the ProcessFulfillmentOrderBillingEBM into a BRM-specific message and calls the PCM_OP_SUBSCRIPTION_PURCHASE_DEAL BRM opcode.
ProcessFulfillmentOrderBillingBRMCommsSharingGroupSubProcess is a BPEL process called by ProcessFulfillmentOrderBillingBRMCommsProvABCSImpl for order lines containing promotion groups, promotion group memberships, and promotion group rewards or for family plan order lines with the Community Member or Community Offer attributes enabled.
ProcessFulfillmentOrderBillingBRMCommsSharingGroupSubProcess calls the following opcodes:
PCM_OP_SUBSCRIPTION_SHARING_GROUP_CREATE: called to create a new sharing group. The sharing group POID on the opcode response is added to the Oracle AIA XREF database.
PCM_OP_SUBSCRIPTION_SHARING_GROUP_MODIFY: called to add or remove a member or reward to or from an existing sharing group.
PCM_OP_SUBSCRIPTION_SHARING_GROUP_DELETE: called to delete an existing sharing group. The sharing group POID on the opcode response is deleted from the Oracle AIA XREF database.
PCM_OP_SUBSCRIPTION_ORDERED_BALGRP: called after adding or deleting a member to or from a sharing group to create, update, or delete an ordered balance group for the member that sets the order in which BRM applies discounts, chargeshares, and extended rating attributes.
The ProcessFulfillmentOrderBillingResponseOSMCFSCommsJMSProducer is a BPEL process that has an adapter service, which produces the order response messages to the AIA_UPDBO_IN_JMSQ.
This process has only one operation: Produce_ProcessFOBResponse to produce the message into the AIA_UPDBO_IN_JMSQ AIA queue. This operation is called after the order is interfaced into BRM.