Symptom
In SAP Datasphere remote table which is based on CDS View (ABAP_CDS) of source system. It is found that for some columns, the decimal number is 17 whereas in source system CDS View, the decimal number is 12 or others.
Environment
SAP Datasphere
Reproducing the Issue
Example:
- Open remote table in SAP Datasphere.
- Check field type. It is DECIMAL(17,0).
- Go to source system, check the view, for corresponding column, it is DECIMAL(12,0).
Cause
There is a logic in the ODP layer which was not changed from 2011.
* Workaround to avoid arithmetic overflow
* for packed data type during (sum) aggregation
IF <ls_field>-fieldrole EQ if_rodps_odp=>c_fieldrole-keyfigure AND
<ls_field>-inttype EQ cl_abap_typedescr=>typekind_packed AND
<ls_field>-intlen LT 9.
<ls_field>-intlen = 9.
<ls_field>-leng = 2 * <ls_field>-intlen - 1. -->> intlen = 9
CLEAR <ls_field>-rollname.
ENDIF.
With this, Output length is 17 .
Resolution
This is working as per design.
Keywords
KBA , DS-DI-RT , Remote Tables , BC-BW-ODP , Operational Data Provisioning (ODP) and Delta Queue (ODQ) , Problem