Symptom
There is a business need to add value up to 4 decimal points for PPR0 condition type during Sales Order creation or Purchase order.
Environment
SAP S/4HANA Cloud Public Edition
Reproducing the Issue
- Create Sales Order/ Purchase order
- Select Item
- Click on 'Item conditions'
- Edit Amount value for Condition type PPR0 (e.g. 17,5555)
- Enter
- Error message appears: "Input must be in the format ___.___.__~,__V" (Message no. 00088)
Cause
The entry in this field was rejected because it does not match the specified template.
The entry must comply with the template format. The following template characters have a special meaning:
- _ (underscore) There should be an input character at this point. This should be a digit for numeric fields.
- , (decimal comma or point): is valid for numeric fields and timestamps of type UTCLONG. A decimal point or comma is placed here. (Setting is made in user master record).
- . (thousands separator): is valid for numeric fields. The separator appears between every three digits (optional). Depending on the setting in the user master record, it can be a period or a comma.
- V: is valid for numeric fields: the plus/minus sign is placed here. If one is used, it must be placed on the right edge of the field. The sign is '-' or ' '(blank character).
- ~ (tilde): is valid for numeric fields. Leading zeros must also be specified from this point to the right (inclusive). Otherwise, this character has the same meaning as the underscore. Leading zeros do not need to be specified to the left of the tilde. Neither are they displayed in this position.
- All other characters stand for themselves. When they are input, they must be in the same position as in the template.
Resolution
This is a standard system behavior, and the decimal places at the condition type works as designed.
In general the system will show exactly the number of decimals as they are defined for the currency involved. The result will be rounded if necessary and only the rounded value is available.
It is not possible to manage the settings for the currencies in SAP S/4HANA Cloud, Public edition.
Also, currently there are no BAdIs available to influence the price condition, however the "BAdI - Define Alternative Calculation of Condition Amount in Document Item" can be enhanced as per following document:
(Note that this BAdI cannot be used to change the number of decimal places a currency is using. It can only be used to change the way the 'ConditionAmount' and other fields are calculated. EUR will always have 2 decimal places and this cannot be changed. The KBA is intended to fix issue with currencies that do not have 2 decimal places like JPY. If this KBA is not applied for these specific currencies, the 'ConditionAmount' will not be calculated correctly.)
If more decimals are needed in the condition amount, a possible workaround could be to try creating an artificial currency (see e.g. USDN with 5 decimals).
This is however usually not feasible for the condition value which is in document currency, because there is a need to do the booking into FI with a regular currency.
Note: SAP does not support this feature, the above steps are only an alternate workaround. SAP shall not take responsibility for any error or inconsistency caused by customizing. Any changes should be thoroughly tested on the test system prior to implementation on production to ensure no negative impact.
See Also
- 38881 - Pricing with different decimal places
- 3323529 - SD pricing: Standard behaviors guide and How-to scenarios
- SAP Blog - Round off Condition Values - Pricing Configuration
- 2973787 - Enhance custom logic by conversion of decimal places for currencies in SAP S/4HANA Cloud
- 2030578 - Condition has amount bigger than limit
Keywords
PPR0, 00088, condition type, condition amount, decimal, rounding, BAdI, currency, pricing, workaround, decimal place, item condition, ___,___,__~.__V, KWERT, KBETR, Entry too long, price more than two decimals , KBA , SD-BF-PR-2CL , Pricing (Public Cloud) , How To