Decimal Precision
Overview
FullAccess users can set and display higher precision values, up to eight places, for currencies within the application.
Many customers have SKUs that are less than a cent; Oracle CPQ allows you to define precision in Currency attributes to help maintain smaller price values. You will be able to set decimal place precision for different currencies at the Host Company level. In addition, individual Currency attributes can have their own decimal precision.
Stored precision is the number of decimals used, when storing a value, i.e. writing it to the document XML. The stored value with stored precision will be used for calculations, e.g. in formulas and BML scripts.
Displayed precision is the number of decimals used, when displaying the value on the UI, i.e. when the user sees it on the transaction page.
If the displayed precision is less than the stored precision, the user will see a rounded value. Each currency has it's own values for stored and for displayed precision.
Administration
Setting Decimal Precision: Host Company
This section will show you how to set the default display for decimal precision, per currency, at the Host Company Level.
It is considered best practice that stored and displayed precision be equivalent, unless a discrepancy is expected behavior.
- Navigate to the Host Company Info page.
Click Admin to go to the Admin Home Page.
Click Host Company in the General section.
The Host Company Info page opens.
-
In the Supported Currencies section, set the Precision for each of the supported currencies.
Displayed precision cannot be greater than what is stored.
-
Click Update to save your changes.
Parts will show the default stored precision of the Host Company.
Stored precision values must match in test and production environments in order to migrate anything.
Setting Decimal Precision: Currency Attributes
This section will show you to how to set display for decimal precision, per currency, for Commerce and/or Configuration currency attributes.
-
Navigate to a Commerce or Configuration currency attribute.
- Click Admin to go to the Admin Home Page.
-
Click Process Definition in the Commerce and Documents section.
The Processes page opens.
-
For the Commerce Process that has the Currency attribute, confirm that Documents is selected in the Navigation drop-down and click List.
The Document List page opens.
-
For the main document, such as Quote, select Attributes in the Navigation drop-down and click List.
The Attribute List page opens.
-
Click the name of an attribute that has an Attribute Type of Currency.
The Currency Attribute Editor page opens.
- Click Admin to go to the Admin Home Page.
-
Click Catalog Definition in the Products section.
The Supported Products page opens.
-
Confirm that Product Families is selected in the Navigation drop-down and click List.
The Supported Product Families page opens.
-
For the Product Family with the Currency attribute, select Attributes in the Navigation drop-down and click List.
The Attributes Administration List page opens.
-
Click the name of an attribute that has an Attribute Type of Currency.
The Text Attribute Editor page opens.
-
Choose the decimal precision for each supported currency under Currency Properties.
If this is left blank, display precision will default to the Host Company settings.
-
Click Update to save your changes.
If precision is exceeded upon saving a currency attribute, an error will tell FullAccess users if precision values need to be changed.
Currency Attribute Hover Tooltip
A hover tooltip will appear if the stored precision is different than the displayed precision and the numbers are not equivalent. This functionality is available only on currency attributes. For more information, see the topic Currency Attribute Hover Tooltip.
Use cases
See the examples below for typical user-side behavior.
Scenario 1
In this scenario, the user searches for part "ABC" or configures a model that has a recommended item price.
- The Part Display page shows the part and price is "1.236"
- The price being carried to Commerce (stored value) is "1.2355"
- The Item Price in Commerce is "1.24", though the actual value is "1.2355".
- The Final Price is displayed as "1.24"
Scenario 2
In this scenario, the user edits a field manually and types in 0.7655
as the value. Once they click a Save action:
- The stored value is "0.7655"
- The Final Price is displayed as "0.77".
Scenario 3
In this scenario, the user in Scenario 2 initially tries to enter 0.76555
and click Save. However, the system throws an error saying precision is set to 4.
When formatting currency values in the Document Engine, precision will be pulled from the value provided in formatting function.
- If precision value is not mentioned in formatting function, precision of 2 will be displayed.
- The formatting function will not allow the admin to select the display precision on the document.
Notes
Consider the following tips regarding Decimal Precision:
-
Currency values are saved in stored precision in the Line Item Detail page.
-
You can view values in the SOAP XML or Printer-Friendly/History XML.
-
When stored and displayed precision for a part is greater than 2, Salesforce handles a parts export by rounding the values to 2 places.
Consider the following notes regarding Decimal Precision:
-
The system will maintain separate values for stored and displayed precision.
-
Existing data will not automatically change when precision is increased or decreased.
-
Rules will fire based on stored precision.
-
When formatting currency values in the Document Engine, precision will be pulled from the value provided in formatting function.
-
For parts import and export of precision less than 2, both sides of the integration add trailing zeroes.
-
On upgrade, the stored precision setting will be set to a value of 2, or the standard for the currency code.
Review the following warning regarding Decimal Precision:
-
Contact Oracle CPQ Ops
to set stored precision.
-
Stored precision should not be reduced after it is set. For example, do not reduce precision from 4 decimal places to 2.
-
Users cannot view the stored precision values.
-
For import, make sure that Oracle CPQ precision is not smaller than Salesforce precision.
Related Topics
See Also