Symptom
In a sales document or billing document, the rounding issue may occur in pricing if the condition unit is different from the sales unit.
For example:
The base unit of measure and the sales unit of a material are KG. The condition record for the material against condition type PPR0 is maintained as 100.00 EUR for each American pound (LB). 4536 KG equals 10000 LB.
Then when creating an order with the quantity of 0.5 KG. The condition value of PPR0 is 1.102 LB * 100 EUR/1 LB = 110.20 EUR.
However, the exact condition value of PPR0 is 110.23 EUR (rounded up from 100 EUR/LB *0.5 KG*10000LB/4536 KG).
Environment
SAP S/4HANA Cloud Public Edition
Reproducing the Issue
- Set up a material with pricing defined for an alternative unit of measure (e.g. LB).
- Create a sales order for the material using the alternative unit of measure (e.g. KG).
- Observe the condition value in pricing screen.
Cause
In the standard pricing configuration, the system uses a condition basis with only three decimal places. For uneven conversion factors, the rounding issue may occur in pricing.
For the example mentioned above, the system calculates the condition basis firstly: 0.5 KG*10000 LB /4536 KG=1.102 LB (After rounding).
After that, the condition value is calculated as 1.102 LB* 100 EUR/LB=110.20 EUR.
Resolution
As a workaround, it can be considered to recalculate the condition basis with higher accuracy using custom logic. Some information for the custom logic can be referred as below:
See Also
Keywords
Price Rounding, Alternative Unit of Measure, Condition Basis, Rounding, Custom Logic, Uneven Conversion Factors. , KBA , SD-BF-PR-2CL , Pricing (Public Cloud) , Problem
SAP Knowledge Base Article - Public