This chapter provides an overview of the adjustment integration flows and discusses Oracle Communications Billing and Revenue Management (BRM) and Siebel customer relationship management (Siebel CRM) interfaces, industry Oracle Application Integration Architecture (Oracle AIA) components, and integration services.
The Adjustment integration between Siebel CRM and BRM supports the following integration scenarios:
QueryAdjustment enables a customer service representative (CSR) to view the adjustments for an invoice in Siebel CRM.
CreateAdjustment enables a CSR to create different levels of adjustments (invoice, item, and event) for an invoice in Siebel CRM.
The invoice adjustment feature enables CSRs to make adjustments at three levels in the invoice (header, item, and event) in Siebel CRM. When a customer calls to dispute an item or multiple items on a bill, CSRs first identify the bill, and then find the disputed items on the bill.
The integration supports adjustment requests that are both amount-based and percentage-based for adjustments at the bill/header and event-level. Therefore, a CSR either captures an adjustment request for an absolute value (such as USD 2) or percentage value (such as. 2%).
In addition to invoice adjustments, a CSR can use this integration feature to make unbilled service usage adjustments at the event (call detail (CDR) record) level.
Caution:
In the billing system, taxes can only be applied on AR items after billing. Therefore, for Unbilled Event adjustments, the tax flag that is set in the Siebel CRM UI must be Exclude Tax.CSRs request adjustments on a variety of levels, as appropriate to the situation. For instance, if the customer made a 10-minute call that was mistakenly billed as a 30-minute call, the CSR requests an adjustment for that specific call at the call detail-level. If, however, the customers plan provided 100 free minutes a month, but charges started accruing after only 30 minutes, the CSR requests an adjustment at the summary-level instead. CSRs can create an adjustment request for one or more lines on a single invoice. The adjustment request can include the following details per line:
Account #
Invoice #
Request ID
Requested Date
Adjustment Amount Requested
Adjustment Type (for example, credit, debit)
Reason for Request
Comments
Status
Amount Approved
Approval Code
Date Approved
When the CSR clicks the Adjustments tab of the Siebel Billing Profile screen, the adjustment history information appears. The adjustment records that appear in this view are adjustment requests that have originated from Siebel CRM and stored within Siebel the database. The CSR must navigate to the Invoice Detail view to make adjustments at the header and item levels. For adjustments at the event-level, the CSR navigates to the event details view. Each adjustment request triggers a separate web services call in the billing system. The adjustment, if approved, is created in BRM and is reflected in the customers' next bill. If the adjustment is not approved, the adjustment request is updated with the reason for denial.
Figure 7-1 illustrates the flow for Adjustments:
To view the adjustments for an invoice and create different levels of adjustments in Siebel CRM:
Navigate to the Accounts screen and query an account. Scroll down to the Billing profile applet and click the Billing profile Name link.
Click the Bills tab to view the list of bills under the account. Click the Bill Number link to open the Bill Details screen.
Click the A/R Items tab to view the adjustments for an invoice.
In the Bills Detail view, an adjustment request can be captured at the header, item, or event level. Each of these sections in the view has an Adjust button.
After creating a new adjustment for a particular level and getting the approval, click the Submit button.
See "Mapping Siebel Billing Management UI Elements to BRM Customer Center" for more information on mapping Siebel CRM elements to BRM elements.
This integration flow uses the following interfaces:
AdjustmentSiebelCommsReqABCS with operation QueryAdjustment
QueryAccountBalanceAdjustmentSiebelCommsReqABCSImpl
QueryAccountBalanceAdjustmentBRMCommsProvABCSImpl
Figure 7-2 illustrates the QueryAccountBalanceAdjustment integration scenario.
When you initiate the QueryAccountBalanceAdjustment process, the following events occur:
In Siebel CRM, navigate to the Billing Profile screen.
Navigate to Accounts, query an account, and click the billing profile for the account. On the Billing Profile screen, click the Bill tab to view the list of bills under the account. To open the Bill Detail View screen, click the Bill No link. This opens the Bill details view with the following information: bill summary, service charges, and item charges. Click the A/R Items tab and a web service call is made to get the adjustments specific to this bill for the account.
Open an invoice and select the A/R Items tab. A web service call is made to get the adjustment for that invoice.
Navigate to the Bill tab and open the Bill Detail View.
Select the A/R Items tab. This invokes the AdjustmentSiebelCommsReqABCS web service, which in turn calls AdjustmentSiebelCommsReqABCS with operation QueryAdjustment.
AdjustmentSiebelCommsReqABCS is a generic Siebel adjustment interface service with several operations defined on the AccountBalanceAdjustmentEBO.
Invoking AdjustmentSiebelCommsReqABCS with operation QueryAdjustment routes the QueryAdjustmentReqMsg to QueryAccountBalanceAdjustmentSiebelCommsReqABCSImpl.
The QueryAccountBalanceAdjustmentSiebelCommsReqABCSImpl transforms the QueryAdjustmentReqMsg into QueryAccountBalanceAdjustmentList_InputVariable and routes the QueryAccountBalanceAdjustmentListReqMsg to the appropriate billing system.
As delivered, QueryAccountBalanceAdjustmentListReqMsg is routed to QueryAccountBalanceAdjustmentBRMCommsProvABCSImpl.
QueryAccountBalanceAdjustmentBRMCommsProvABCSImpl first transforms QueryAccountBalanceAdjustmentListReqMsg into the Invoke_PCM_OP_AR_GET_ACCT_ACTION_ITEMS_InputVariable as input of PCM_OP_AR_GET_ACCT_ACTION_ITEMS and calls BRMARServices with operation PCM_OP_AR_GET_ACCT_ACTION_ITEMS.
Invoking BRMARServices with operation PCM_OP_AR_GET_ACCT_ACTION_ITEMS invokes the BRM application programming interface (API) PCM_OP_AR_GET_ACCT_ACTION_ITEMS and returns the adjustment outputs Invoke_PCM_OP_AR_GET_ACCT_ACTION_ITEMS_OutputVariable to QueryAccountBalanceAdjustmentBRMCommsProvABCSImpl.
QueryAccountBalanceAdjustmentBRMCommsProvABCSImpl transforms the BRM API output Invoke_PCM_OP_AR_GET_ACCT_ACTION_ITEMS_OutputVariable into enterprise business message (EBM) output QueryAccountBalanceAdjustmentListRespMsg and returns it to QueryAccountBalanceAdjustmentSiebelCommsReqABCSImpl.
QueryAccountBalanceAdjustmentSiebelCommsReqABCSImpl then transforms the QueryAccountBalanceAdjustmentListRespMsg into QueryAdjustmentRespMsg, which is returned to AdjustmentSiebelCommsReqABCS.
AdjustmentSiebelCommsReqABCS returns the QueryAdjustmentRespMsg to the calling CMUExternalAdjustments as QueryAdjustmentRespMsg.
CMUAdjustmentResponseMessage is then written to the Siebel Balance Summary virtual business component (VBC) for the users.
This integration flow uses the following interfaces:
CreateAccountBalanceAdjustmentSiebelCommsReqABCSImpl
CreateAccountBalanceAdjustmentBRMCommsProvABCSImpl
UpdateAccountBalanceAdjustmentRespSiebelCommsProvABCSImpl
CreateAccountBalanceAdjustmentListResponseBRMCommsJMSConsumer
CreateAccountBalanceAdjustmentListResponseBRMCommsJMSProducer
CreateAccountBalanceAdjustmentSiebelCommsJMSConsumer
Figure 7-3 illustrates the CreateAccountBalanceAdjustment integration scenario.
When you initiate the CreateAccountBalanceAdjustment process, the following events occur:
In Siebel CRM, navigate to the Billing Profile screen.
Navigate to the Accounts screen, query an account, and click a billing profile for the account. On the Billing Profile screen, the Adjustment tab displays all the adjustment requests.
To create an adjustment for an invoice, click the Bills tab.
Select the bill against which an adjustment request must be created.
In the Bill Details view, an adjustment request can be captured at the header, item, or event level. Each of these sections in the view has an Adjust button.
Clicking this button creates a new adjustment request at that level.
To create an adjustment at the event-level, click the Net Amount link for the required item charge.
This opens the Event Details view to create the adjustment.
At the event-level, adjustments can be created for both monetary and nonmonetary resources such as free minutes.
You can also create adjustments for unbilled usage.
Unbilled adjustments are applicable only at the event-level for both monetary and nonmonetary resources.
The Adjust button on different screens calls the same web service to create the adjustment.
But on the BRM side, it is based on the adjustment level. The adjustment type is set by Siebel CRM. Based on the value in this column, the correct opcode is called.
After creating the new adjustment for a particular level and getting the approval, click the Submit button.
A web service call is made to SWICreateAdjustment, which in turn puts the message into the Queue AIA_CMUREQADJIOJMSQUEUE along with a Simple Object Access Protocol (SOAP) envelope. After submit, the adjustment Status changes to Submitted and the adjustment record becomes read-only. Adjustments are persisted in Siebel CRM and when the adjustments are accepted, the status of the record changes to Posted. If the changes are not approved, the status changes to Not Posted.
CreateAccountBalanceAdjustmentSiebelCommsJMSConsumer dequeues the message and transforms it into the Siebel request application business message (ABM) and routes the CreateAdjustmentReqMsg to CreateAccountBalanceAdjustmentSiebelCommsABCSImpl
The CreateAccountBalanceAdjustmentSiebelCommsABCSImpl transforms the CreateAdjustmentReqMsg into CreateAccountBalanceAdjustmentList_InputVariable and routes the CreateAccountBalanceAdjustmentList_InputVariable to the appropriate billing system.
As delivered, CreateAccountBalanceAdjustmentList_InputVariable is routed to CreateAccountBalanceAdjustmentBRMCommsProvABCSImpl.
CreateAccountBalanceAdjustmentBRMCommsProvABCSImpl first checks the parameters of the Adjustment type coming from the request (Billed or Unbilled) and based on the parameter, PCM_OP_AR_EVENT_ADJUSTMENT is invoked with the appropriate data.
After checking the parameters of a particular service from request, the CreateAccountBalanceAdjustmentBRMCommsProvABCSImpl service transforms the CreateAccountBalanceAdjustmentListReqMsg into the BRM input flist message and invokes the opcode.
Invoking BRM API PCM_OP_AR_EVENT_ADJUSTMENT with account ID, billing profile ID, and event ID returns the list of events associated with items.
BRMARServices sends the response back to CreateAccountBalanceAdjustmentBRMCommsProvABCSImpl service with the list of adjustments and status for opcode calls.
The Status field is mapped to the response and goes back to the Siebel CRM user interface (UI).
After getting the response back from BRMARService, the status of the adjustment in CreateAccountBalanceAdjustmentBRMCommsProvABCSImpl is checked.
If the status value returns as Fail, an error-handling framework service is called. This error-handling framework service calls the different error-handling services and logs the error for that particular failed adjustment request in the Admin Console.
Administrators can see the status of the particular failed adjustment request, adjustment ID, and integration ID of that particular request.
Administrators can also get the BRM description for a failed request.
CreateAccountBalanceAdjustmentBRMCommsProvABCSImpl then takes the response from the service, transforms Invoke_Event_PCM_OP_AR_EVENT_ADJUSTMENT_OutputVariable to the CreateAccountBalanceAdjustmentListRespMsg, and routes it to the CreateAccountBalanceAdjustmentListResponseBRMCommsJMSProducer.
CreateAccountBalanceAdjustmentListResponseBRMCommsJMSProducer then puts the message into the queue AIA_CRTADJLSTRSPJMSQUEUE.
CreateAccountBalanceAdjustmentListResponseBRMCommsJMSConsumer picks the message from AIA_CRTADJLSTRSPJMSQUEUE and routes the CreateAccountBalanceAdjustmentListResponseMsg to UpdateAccountBalanceAdjustmentRespSiebelCommsProvABCSImpl.
UpdateAccountBalanceAdjustmentRespSiebelCommsProvABCSImpl transforms the CreateAccountBalanceAdjustmentListRespMsg into SWISIAAdjustmentIO and invokes the Siebel Update web service with this message.
Note:
In the case of billed adjustments at the Bill and Item levels, the BRM provider calls PCM_OP_AR_BILL_ADJUSTMENT and PCM_OP_AR_ITEM_ADJUSTMENT opcodes.The QueryAdjustment integration flow uses:
BRMARServices with operation PCM_OP_AR_GET_ACCT_ACTION_ITEMS
The CreateAdjustment integration flow uses:
BRMARServices with operation PCM_OP_AR_EVENT_ADJUSTMENT
See Oracle Communications Billing and Revenue Management Opcode Flist Reference for more information.
The Adjustment integration flow uses these Siebel CRM interfaces:
SWICreateAdjustment: To submit the adjustment
SWIAdjustmentStatusUpdate: To update the adjustment
See "Web Services Reference" in Siebel Order Management Guide Addendum for Communications for more information.
The Adjustment integration uses the following delivered enterprise business objects (EBOs) and enterprise business messages (EBMs):
AccountBalanceAdjustmentEBO
QueryAccountBalanceAdjustmentListEBM
QueryAccountBalanceAdjutsmentListResponseEBM
CreateAccountBalanceAdjustmentListEBM
CreateAccountBalanceAdjustmentListResponseEBM
The industry enterprise business object (EBO) and enterprise business message XML schema (EBM XSD) files are located under the Metadata Services (MDS) repository at: $AIA_HOME/AIAMetaData/AIAComponents/EnterpriseObjectLibrary/Industry/Communications/EBO/
The industry enterprise business service (EBS) WSDL files are located under the MDS repository at: $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).
See "Configuring and Using Oracle Enterprise Repository as the Oracle SOA Repository" in Oracle Fusion Middleware Developer's Guide for Oracle Application Integration Architecture Foundation Pack for more information on how to use and configure OER to provide the AIA Reference Doc link.
EBOs can be extended such as adding new data elements. These extensions are protected and will remain intact even after a patch or an upgrade, so long as the extensibility guidelines are followed.
See "Working with AIA Design Patterns", AIA Assets Extensibility Patterns, Extending Existing Schemas in AIA in Oracle Fusion Middleware Developer's Guide for Oracle Application Integration Architecture Foundation Pack for more information.
These services are delivered with the Adjustment Integration flow:
AdjustmentSiebelCommsReqABCS
QueryAccountBalanceAdjustmentSiebelCommsReqABCSImpl
QueryAccountBalanceAdjustmentBRMCommsProvABCSImpl
CreateAccountBalanceAdjustmentSiebelCommsABCSImpl
CreateAccountBalanceAdjustmentBRMCommsProvABCSImpl
UpdateAccountBalanceAdjustmentRespSiebelCommsProvABCSImpl
CreateAccountBalanceAdjustmentListResponseBRMCommsJMSConsumer
CreateAccountBalanceAdjustmentListResponseBRMCommsJMSProducer
CreateAccountBalanceAdjustmentSiebelCommsJMSConsumer
Some of these services have been enabled to use Session Pool Manager.
See "Session Pool Manager" in Oracle Application Integration Architecture Pre-Built Integrations Utilities Guide for more information.
AdjustmentSiebelCommsReqABCS exposes the following operation related to Account Balance Adjustment on the Siebel ABM:
QueryAdjustment:
Figure 7-4 illustrates the relationship of AdjustmentSiebelCommsReqABCS with the other services in the integration flow.
QueryAccountBalanceAdjustmentSiebelCommsReqABCSImpl transforms the Siebel message into the AccountBalanceAdjustmentEBM and calls the provider to get the Adjustment response from the billing system. It then transforms the AccountBalanceAdjustmentEBM response back to a Siebel message and returns it to the calling Siebel web service.
Figure 7-5 illustrates the relationship of QueryAccountBalanceAdjustmentSiebelCommsReqABCSImpl with the other services in the integration flow.
Figure 7-5 QueryAccountBalanceAdjustmentSiebelCommsReqABCSImpl
QueryAccountBalanceAdjustmentBRMCommsProvABCSImpl transforms the AccountBalanceAdjustmentEBM message into an BRM API input format message and calls the API to get the adjustment details from the billing system. It then transforms the output from the API back to an AccountBalanceAdjustmentEBM message and returns it to the calling service.
Figure 7-6 illustrates the relationship of QueryAccountBalanceAdjustmentBRMCommsProvABCSImpl with the other services in the integration flow:
Figure 7-6 QueryAccountBalanceAdjustmentBRMCommsProvABCSImpl
CreateAccountBalanceAdjustmentSiebelCommsABCSImpl transforms the Siebel message into an AccountBalanceAdjustmentEBM message format and calls the provider to create the adjustment and get the response from the billing system. It then transforms the EBM response message to a Siebel message and routes it back to the AdjustmentSiebelCommsReqABCS service WSDL.
CreateAccountBalanceAdjustmentBRMCommsProvABCSImpl transforms the AccountBalanceAdjustmentListEBM into an BRM API input format and calls the APIs to get the bill, item charge, and event details or Resource Impact Event adjustments from the billing system. It then transforms the output from the APIs back to an AccountBalanceAdjustmentListResponseEBM format that returns it to the calling service.
UpdateAccountBalanceAdjustmentRespSiebelCommsProvABCSImpl transforms the AccountBalanceAdjustmentListResponseEBM into Siebel web service input formats and calls the web service to update the adjustment status.
This service is SPM enabled.
See "Session Pool Manager" in Oracle Application Integration Architecture Pre-Built Integrations Utilities Guide for more information.
This service picks the message from the queue AIA_CRTADJLSTRSPJMSQUEUE and routes the CreateAccountBalanceAdjustmentListResponseMsg to UpdateAccountBalanceAdjustmentRespSiebelCommsProvABCSImpl.
This process gets the CreateAccountBalanceAdjustmentListResponseEBM message from CreateAccountBalanceAdjustmentBRMCommsProvABCSImpl and puts the message into the Queue AIA_CMUREQADJIOJMSQUEUE.
This process picks the message with a SOAP envelope from the queue AIA_CMUREQADJIOJMSQUEUE, transforms the message into a Siebel Requestor ABM by opening the SOAP envelope, and calls the CreateAccountBalanceAdjustmentSiebelCommsABCSImpl with the ListOfCmuRequestAdjustmentIO message.