Infoset: Key Figures are 'multiplied' in case the Join is not Unique
DataStore 'ZZSALES'
CUSTOMER | MATERIAL | QUANTITY | PRICE |
---|---|---|---|
MILLER | 1001 | 2 | 500 USD |
MILLER | 1002 | 3 | 150 USD |
DataStore 'ZZMATERIAL'
MATERIAL | STOREHOUSE | PIECES |
---|---|---|
1001 | S1 | 5 |
1001 | S2 | 4 |
1002 | S1 | 20 |
In the InfoSet, the two InfoProviders are joined:ZZSALES-MATERIAL with ZZMATERIAL-MATERIAL
If a query defined on this infoobject has Customer, Material and Storehouse in the drilldown, the result is as follows:
CUSTOMER | MATERIAL | QUANTITY | PRICE | STOREHOUSE |
---|---|---|---|---|
MILLER | 1001 | 2 | 500 USD | S1 |
MILLER | 1001 | 2 | 500 USD | S2 |
MILLER | 1002 | 3 | 150 USD | S1 |
Since the Material 1001 exists twice in the second DSO the Keyfigures from the first DSO (Quantity,Price) appear two times in the result set ! This leads to unwanted values when the query aggregates e.g. over the infoobject STOREHOUSE. This is a typical issue when using Infosets. Therefore the definition of an infoobject must be checked carefully! The Infoset Property Additional Grouping before Join normally helps to avoid such effects, SAP note 2118286 "CPR/HCPR: High Query Memory Consumption" has more details to this topic.