Troubleshooting
Problem
When executing a report, an error is returned [Error:] PDS-PPE-0104 Un enregistrement a ete refuse. Debordement arithmetique. PPDSError 104 A record has been rejected; Arthmetic overflow. PPDSError 104
Cause
For many operations, Cognos BI will build a small cube in memory to handle the
aggregations. Floating point values in these cubes cannot have more the 18
significant digits, and by default Cognos assumes a precision of 7 decimal places.
Resolving The Problem
Preffered solution:
Use a CAST function on the column(s) in Framework Manager or Report Studio to control the number of decimals at a non-system level, and on a case-by-case basis:
cast(large_decimal_cl,decimal(17,2))
Alternative solution:
The system assumes 7 decimal digits by default for floating point values. This default can be modified using the instructions below.
This is a global setting. With the scale setting set to 2, there is a danger of losing data. If you (for instance) divide 1.05 by 2, expected result is .525, but in this case it would end up as .53) If all the system numbers are "currency" types, then we you probably get by with a setting of 3, but there are still potential problems aggregating large sets of numbers with long decimals (like .33333). The rounding errors will result in the totals being off by a small amount.
To modify the system default, add the following line in the qfs_config.xml under the /configuration directory:
Under the following line :
<!-- Enables DMB logging. Setting to 1, logs when data is loaded and cube is deleted. 2 logs when cube is created, reused, and Aged out. 0 is off -->
add :
<scaleOfFloatDouble value="3" />
Historical Number
1020998
Was this topic helpful?
Document Information
Modified date:
15 June 2018
UID
swg21339857