At times, it is a Business or a regulatory requirement to implement the usage of pricing up to 4 decimal points in SD Pricing Procedures. The standard currencies like EUR or USD allow for decimal notation up to 2 decimal places only.
Workaround
The workaround for the same is to have a new currency defined. This would be an internal currency type and currency conversion would have to be maintained at the condition level configuration. The steps involved are as under:
1. Creation of a new internal currency type – The first customization required is the definition of a new internal currency type. Let us take an example, where the document and local currency is EUR and we would need to define a new internal currency type, say EURL.
The customization path for the same is as under:
IMG-SAP Netweaver – Currencies – Check Currencies Code
The transaction code for the same is OY03
1.
1. Set the Decimal places for the new internal currency type which has been created. The customization path for the same is:
IMG – SAP Netweaver – Currencies – Set Decimal Places for Currencie
The customization transaction code for the same is OY04
1. 2. Condition Type – Suppose the condition type PR00 is used to maintain the sales pricing in 4 decimal places. However, as a default the net value of a sales document must be calculated in 2 decimal places, it is necessary to activate currency conversion in the condition type customizing.
The path for the same is as under:
IMG-Sales & Distribution-Basic Functions-Pricing-Pricing Control-Define Condition Types-Maintain Condition Types
The transaction code for the same is V/06
A customizing would be required to take care of exchange rate conversions and also to avoid rounding errors. We have created an alternative formula 900 and assigned it to pricing condition type PR00 in the pricing procedure:
form frm_kondi_wert_900.
check: xkomv-waers='EURL' and komk-waerk='EUR'
data: xkbetr like xkomv-kbetr
xkbetr=xkomv-kbetr
if komp-shkzg ne space
arbfeld=xkbetr*-1
xkebtr=arbfeld
endif
arbfeld= xkomv-kawrt * xkbetr/xkomv-kpein
arbfeld=arbfeld/100000
xkwert=arbfeld
xkomv-kkurs=komp-kursk
endform
The IMG Path is as under:
IMG- Sales & Distribution- Basic Functions-Pricing – Pricing Control- Define and assign Pricing Procedure – Maintain Pricing Procedure
The transaction code for the same is V/08
1. 3. Changes for the output – By default, both currencies EURL and EUR would be printed in the output. However, ABAP Program changes would have to be done to ensure that the output is printed in EUR with amounts from EURL.