Symptom
When filtering condition records in the app "Manage Tax Rates-Sales" or "Manage Prices -Sales", there're some condition records displayed in the screen.
While fetching the data from CDS View I_SLSPRCGCONDITIONRECORD for the same condition type, the number of condition records is different from that displayed in the app "Manage Tax Rates-Sales" or "Manage Prices -Sales".
Environment
SAP S/4HANA Cloud Public Edition
Reproducing the Issue
- Enter the app "Manage Tax Rates-Sales" or "Manage Prices -Sales".
- Enter the condition type and click "Go" button to search condition records.
- Enter the app "Customer Data Browser" and check CDS View I_SLSPRCGCONDITIONRECORD.
- Filter using the same condition type and observe the number of the condition records.
- The number of condition records is different from that displayed in the app "Manage Tax Rates-Sales" or "Manage Prices -Sales".
Cause
There're some different causes that can lead to the discrepancy:
- When a new condition record fully overlaps with an old condition record:
-
- In this case, the old condition record will be deleted from A-Table. But the deleted condition record still exists in KONH/KONP, whose Deletion Indicator is set as abap_false. For this part of condition records, they can be retrieved from I_SLSPRCGCONDITIONRECORD but cannot be found in the app "Manage Tax Rates-Sales" or "Manage Prices -Sales".
- When a condition record is deleted manually:
-
- In this case, if the field "Delete from DB" of the condition type is set as "Do Not delete(Set the deletion flag only)", the condition record will not be deleted from A-Table and still exists in KONH/KONP, whose Deletion Indicator is set as abap_true.
- If the field "Delete from DB" of the condition type is set as "with popup" or "without popup", the condition record will be deleted from A-Table and still exists in KONH/KONP, whose Deletion Indicator is set as abap_true.
- When a condition record with shorter validity period is created when there's already a condition record with same keys and longer validity period in system:
- In this case, the condition record with longer validity period will be split as 2 condition records, which own the same condition record no and same key, different validity period in the app "Manage Tax Rates-Sales" or "Manage Prices -Sales". The newly created condition record is inserted into the existing condition record with a longer validity period
- For example, there's a condition record with the validity period from 01.01.2025 to 31.12.9999 in system, whose condition record number is XXXXXXXX. When a condition record, whose key is same as the condition record XXXXXXXX and validity period is from 01.01.2026 to 31.12.2026, is created, the condition record XXXXXXXX will be split as 2 condition records:
- The validity period of the one is from rom 01.01.2025 to 31.12.2025, and its condition record number is XXXXXXXX.
- The validity period of the other one is from 01.01.2027 to 31.12.9999, and its condition record number is also XXXXXXXX.
- But there's only a condition record towards to the condition record no in KONH/KONP.
Resolution
It is recommended to retrieve meaningful condition record using RAP PaaS API, but not I_SLSPRCGCONDITIONRECORD.
Some details regarding RAP PaaS API can be found from the documentation below:
https://api.sap.com/bointerface/I_SLSPRCGCONDITIONRECORDTP_2
See Also
Keywords
Manage Tax Rates-Sales, Manage Prices-Sales, Condition records,I_SLSPRCGCONDITIONRECORD, KONH, KONP, A4AR. , KBA , SD-MD-CM-2CL , Conditions and Condition Maintenance(Public Cloud) , Problem
SAP Knowledge Base Article - Public