Posting in Freely Defined Currencies using BAPI_ACC_DOCUMENT_POST
To demonstrate how to post only to Freely Defined Currencies using BAPI_ACC_DOCUMENT_POST in SAP S/4HANA
What will you learn from this Blog post?
From this blog post you can understand
- Posting directly in freely defined currency by keeping company code currency and group currency as zero using BAPI_ACC_DOCUMENT_POST
- Posting amounts in Freely Defined Currency bypassing the exchange rate defined in the system. i.e. User can pass the manual amount to FD currency irrespective of exchange rates defined. The freely defined currency will be hereafter referred to as FD currency.
- Impact of Fixed assets and how to post using FD currency with an asset posting.
Areas of application- Business Scenarios.
- Clear any amounts pending due to differences in exchange rates translated in freely defined currencies during month end and year end closing process.
- Clear any differences in freely defined currencies as a result of CO allocations
- Perform cutover in freely defined currencies without considering exchange rates calculated from the system in the case of a greenfield or brownfield implementation.
- Posting in Fixed assets including cutover is also possible (As shown in scenario below) but is more complex in nature.
Ledgers and Currencies
There can be cases where your company code has branches in several countries and you don’t want to create those branches as separate company codes in SAP S/4HANA, then you can create profit centers in those countries and post all the transactions that belongs to that country with appropriate profit center. So, we have single company code and transactions happening in different countries in different currencies, in order make the reporting and other comparisons easy we have created FD currencies.
The number of ledgers to be created depends on the number of FD currencies required. In each ledger we can assign 7 different FD currencies. If you need more 7 FD currencies, then you need to define more ledger and assign the FD currencies accordingly. In our case we have defined 3 ledgers for Local GAAP and 3 ledgers for IFRS.
The first freely defined currency always refers to BSEG currencies and can only be set as currency type 40 or 50 (Hard currency and Index based currency). Therefore, you can use only 7 additional currencies in one ledger. If the business requirement is to have reporting in more than 7 currencies, then additional ledger will need to set up for another 7 currencies and so on. In order to ensure that all ledgers are posted uniformly, a ledger group can be created, and all ledgers can be attached to this ledger. This way fixed asset accounting also needs only one depreciation area for all these ledgers since the asset posting will post to all ledgers attached to the ledger group/accounting principle combination.
In the example below you will find that 6 ledgers have been created – 0L, I2, I3 for IFRS accounting principle and L1, L2, L3 representing Local GAAP. Multiple currency types have been defined and assigned in these ledgers.
Definition of Currency types
Definition of Ledgers
FD currencies assigned in each ledger
Here we are going to pass the value only to freely defined currency i.e. The amount in Transaction Currency, Company Code Currency and Group Currency will remain zero.
It is a basic GL entry as :
Consulting Service: Dr
Cash : Cr
In CURRENCYAMOUNT normally we pass only the items for each GL entry but in case of Branch currency we need to duplicate the rows for each GL items and enter the currency type and currency for the branch where we need to manually pass the FD currency in order to avoid exchange rate gain/loss in cutover.
Here the first 2 rows are the rows which we normally pass in any accounting entry for this BAPI.
In ACDOCA as you can see in screenshot below, the value got posted only in the ledgers in which the currency type ‘Z5’ was defined, in our case it is in the ledger I3 (IFRS) and L3 (Local GAAP)
In FB03 as you can see below, the amount in transaction currency, local currency, group currency are zero and only the FD currency BOB is populated only in ledger I3 and L3.
In this case we are going to pass the value to freely defined currency and Transaction Currency.
The inputs to the BAPI is same as in case 1 except the amount being passed in row 1 and 2.
In ACDOCA, we can see all 6 ledgers present unlike case 1 because the value passed in transaction currency got posted in all the ledger and the value passed in FD currency BOB got posted only in the ledger I3 and L3.
In FB03, we can see the value in transaction currency, local currency, group currency and also in the FD currency BOB that has been passed from BAPI and not calculated by SAP S/4HANA.
Posting in Fixed Assets
Posting to an asset with different values in freely defined currency during document posting is possible. This is possible only with a custom program and not directly in any asset related transactions. In the below example, the company code currency is COP (Pesos) and the freely defined currency is PEN (Peruvian Sol). The Acquisition value in COP is 1,20,000 and the value in PEN is passed as 1,00,000 (without considering the exchange rate determined at the time of document posting)
- A custom program can be developed and an excel file prepared in order to include the freely defined currency fields along with the standard GL posting template. Based on business requirements, you can add multiple FD currencies or one FD currency in the template.
- You can enhance the BAPI as shown above and a custom transaction code can be attached to the program.
- Once the above is complete, you will be able to perform adjustments in freely defined currencies.
- Fixed assets will need a different approach. While a proof has been presented in this paper that this is technically possible to achieve, the details of this will covered in a blog later.