OpenUI: Rounding of number in database for DTYPE_CURRENCY fields (Doc ID 1916258.1)

Last updated on OCTOBER 07, 2016

Applies to:

Siebel CRM - Version 8.1.1.10 [23021] and later
Information in this document applies to any platform.

Symptoms

The following two issues are reproducible in OPEN UI but not in HI Mode.

 

1) When DTYPE_CURRENCY type fields with set Precision and Scale properties are updated via Open UI, Siebel application is rounding off the value saved at database level.

Example:
For a DTYPE_CURRENCY field with scale 22 and precision 7 set on BC Field level, when the user enters a value like '12.3456789', the value is rounded and stored in DB as '12.35'. In HI mode the value is stored correctly as '12.3456789'.

 


2) In Open UI, if the user set focus on a DTYPE_CURRENCY type fields with set Precision and Scale properties and if this field contains already a value, the field current value is rounded and the new rounded value saved at database level even if the user has not modified the existing value.

Example:
If a value like '12.3456789' is already set at database level for a DTYPE_CURRENCY field with scale 22 and precision 7 set on BC Field level, when the user set focus on such field in OpenUI without changing its value, the value gets rounded and stored as '12.35' at database level.

 

 

Replication Steps:

 

Configuration
-------------

1) Open Siebel Tools, navigate to Business Components and query for Opportunity Product BC

2) One of the field on this BC is called "Product Price": this is a DTYPE_CURRENCY type field. Lock the object, and add the following properties

Precision = 22
Scale = 7

3) Save, then compile the selected object.

 

Repro Steps
-----------

# Issue 1:

1) Login to Siebel Call Center HI application and navigate to Opportunities > List Opportunities

2) Create a new Opportunity and open it. In the Form applet, select Product view and create a new record

3) Locate the 'Net Price' field, add value '12.345678', then save the record. The value will appear as '$12.35'.

4) Navigate to Help > About Record and write down the ROW_ID for the record created in Step 3.

5) Connect via a SQL Client Tool to the database server and run the query below:
select NET_PRICE from S_REVN where ROW_ID = '<value found in Step 4>';
The query result is '12.345678'.

6) Login to Siebel Call Center Open UI application, and open the Opportunity created previously.

7) Locate the 'Net Price' field, add value '18.345678', then save the record. The value will appear as '$18.35'.

8) Connect via a SQL Client Tool to the database server and run the query below:
select NET_PRICE from S_REVN where ROW_ID = '<value found in Step 4>';
The query result is '18.35'.

 

# Issue 2:

1) Login to Siebel Call Center HI application and navigate to Opportunities > List Opportunities

2) Create a new Opportunity and open it. In the Form applet, select Product view and create a new record

3) Locate the 'Net Price' field, add value '12.345678', then save the record. The value will appear as '$12.35'.

4) Navigate to Help > About Record and write down the ROW_ID for the record created in Step 3.

5) Connect via a SQL Client Tool to the database server and run the query below
select NET_PRICE from S_REVN where ROW_ID = '<value found in Step 4>';
The query result is '12.345678'.

6) Login to Siebel Call Center Open UI application, and open the Opportunity created previously.

7) Open the Product View, and locate the record created in Step 3.

8) Click on Product field, then using the TAB key, change focus from one field to the next ones without modifying any of the existing values.

8) Connect via a SQL Client Tool to the database server and run the query below
select NET_PRICE from S_REVN where ROW_ID = '<value found in Step 4>';
The query result is '12.35'.

Cause

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