Report Center reports failed with error: A record was rejected. An arithmetic overflow occurred. PPDSError 104

Document ID : KB000050671
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

Fact: eHealth 6.2.x
Fact: eHealth 6.1.x
Fact: Report Center sample report for interfaces, for example "Report Center - Utilization History Report for Interfaces" always fails with following error message:
A record was rejected. An arithmetic overflow occurred. PPDSError 104

Fact: As per KB IBM/Cognos for the error PPDSError 104 ( http://www-01.ibm.com/support/docview.wss?uid=swg21339857):

*****
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 8 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 we assume 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.

HOWEVER, please remember that 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, we should get .525, but in this case it would end up as

.53) If all the system numbers are "currency" types, then we can probably get by with a setting of 3, but we'll still potentially have problems aggregating large sets of nubmers 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" />

*****

Solution:

  1. Locate Report Center/Cognos configuration directory $NH_HOME/crn/configuration

  2. Open configuration file qfs_config.xml

  3. Find 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 -->

  4. Add following line:
    <scaleOfFloatDouble value="3" />

  5. Save the file, and restart Report Center by:
    nhReportCenter stop
    nhReportCenter start

The error in report will be gone.

Note:
Using CAST function here is not recommended and supported by CA Support, as it requires modifying/customizing the report variables.