Handling Decimal Rounding Logic in Siebel, Fusion and BRM

(Doc ID 1320370.1)

Last updated on OCTOBER 12, 2017

Applies to:

Oracle Communications Billing and Revenue Management - Version 7.4.0.0.0 to 7.5.0.0.0 [Release 7.4.0 to 7.5.0]
Information in this document applies to any platform.
Checked for relevance on 30-Apr-2013.

Goal

In a given integration framework, there is Siebel as CRM, BRM as billing system and Fusion integrates them using PIP. The requirement is that CSR will apply the price in Siebel, calculate the tax and collect payment from Payment gateway through Fusion. Siebel will send the price to BRM and BRM calculates the Tax again. Siebel and BRM calculate the tax at flat 15%.

The issue that we face is:

Scenario:

(All amounts in Dollars)

CSR sets the price as 177.395, calculates the tax and sends the amount to Fusion as follows:
Price = 177.395 (15% discount on 208.7, which is displayed in Siebel UI as 177.40)
Tax (15%) = 26.60925 (displayed in Siebel UI as 26.61)
Total = 204.00425 (displayed in Siebel UI as 204.00)
On Payment collection, 204.00 is sent to Payment Gateway, as the chosen Payment Gateway does not support payments more than 2 digits.
On Order Synchronization, Siebel Sales Order XML contains product price of 177.395 and same is sent by Fusion to BRM.

Based on the above information, BRM performs following:
Product Override Price = 177.40 (rounds to 2 decimal place, natural scale)
Tax (15%) = 26.61 (rounds to 2 decimal place, natural scale)
Total = 204.01(rounds to 2 decimal place, natural scale)
Hence bill is generated for 204.01

Now when Fusion posts the payment to BRM, it applies the amount 204.00425 in the payment OPCODE which is rounded to 204.00 (nature scale) and keep the 0.01 as balance or due to be collected. This results in keeping the invoice open.

Also, the rounding that is set in BRM is natural scale (rounding to 2 decimal places) for all the four types (Rating, Discounting, Taxation and AR/AP). However when I query from the back end, the amount that is stored in BRM database is 177.395.

Steps to reproduce this in Siebel:

a) Create a Sales Order with Product Start price 208.70
b) Select Discount 15%
c) Apply Tax 15%
d) Submit the Order and observe the data in the XML sent to Fusion.

What is the recommended solution to handle this scenario ?


Solution

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms