Dear SAPers:
I realise that there are still many topics worth exploring in the corpus of knowledge in finance with each SAP assignment that I complete. So, here is another another blog post on SAP’s bank statement functionalities.
1. Introduction
Standard SAP system provides a flexible mechanism to configure GL accounts determination for bank statement operations. You can map a variety of business scenarios by proper design of posting rules & accounts symbols associated with them. These configuration options are accessible via transaction OT83.
In this blog I’ll focus on the configuration options of account symbols and how account modifications can be used to enhance determination of GL accounts for bank operations.
2. Masking Functionality
The masking functionality is frequently used during bank statement processing to produce accurate GL accounts. For instance, if the account symbol BANK has the mask “++++++++++” attached to it, the GL account linked to the house bank account will be returned (i.e., configuration in transaction FI12). It will be GL account 113100 in this instance.
Determining bank clearing GL accounts for incoming and outgoing operations is another common mask:
– The mask “+++++++++1” instructs SAP to calculate the house bank GL account and replace the last character with the letter “e.” g. 113101. Example: BANK IN is the account sign.
– In a similar manner, the mask “+++++++++2” will result in GL account 113102. For instance, the account sign BANK OUT
Additionally, it is possible to set up various GL accounts for the bank operation’s currency. For example, have a look at how the account symbol BANK CHARGES is set up. The GL account 479000 is the default GL account for all currencies, as shown by the mask “+” in the currency field. However, the application will obtain a different GL, namely 479200, if the bank statement is in EUR.
3. Account Modification
Most of the time, you can create a proper GL account without using account modifications. Since 2013, I’ve been involved in a lot of projects, but I’ve never seen anyone else use this functionality. However, I recently came across a fascinating business requirement that could only be resolved technically in one of two ways:Increase the amount of posting regulations and account symbols significantly.
– Put into practise an improvement to derive GL accounts from account modifications.
The first alternative is significantly simpler from a technical standpoint, and any junior consultant can do it. It also has the benefit of not requiring any coding. This solution ultimately won out and was put into practise. More than 150 posting rules had to be configured as a result, and they had to be shared throughout multiple house banks and transaction kinds.
I had to make certain adjustments to the posting rules for assignments while I was under hypercare, and it took me a long time to gather all the information I needed to make these adjustments (e.g. which account symbols to adjust, which posting rules to add, what transaction types are impacted etc.).
This, in my perspective, is a fantastic illustration of technical debt, where a choice made during the implementation phase speeds up project delivery but ultimately leads to increased expenses during the support phase.
Resuming the subject. The assignment of GL accounts for the account symbol CLR IN is shown in the screenshot above. KREAG and UNIVB are the two keys I use for account modifications. These keys match the house bank IDs listed in FI12, which are as follows:
The logic’s basic premise is that the GL account for the account symbol CLR IN will be directly dependent on the house bank. For this situation, the posting rule Z+01 definition is as follows:
This logic has to be activated by one more step. House bank key must be entered during the upload and processing of the bank statement into field FEBEP-KFMOD. My recommendation is to use the BADI FIEB CHANGE BS DATA, method IF EX FIEB CHANGE BS DATACHANGE DATA, to implement the upgrade. Here is some sample code:
After uploading a bank statement for the house bank KREAG, view the application log that is generated. You can see that the account modification served as the basis for determining the GL account for home bank:
The main advantage of this strategy is that you can derive GL accounts for bank statements with more flexibility without configuring a large number of additional account symbols or posting rules. The main disadvantage is that it is founded on an improvement, yet this improvement’s logic is straightforward.
4. Additional Considerations
There are a few other options to fill FEBEP-KFMOD with values. These options are:
– Maintain search string with appropriate update scenario – this is the easiest way that doesn’t require any development efforts (see post for more details).
– You can also use user exit EXIT_RFEBBU10_001 or BADI FIEB_CHANGE_STATEMNT.
– If you use XML-based bank statement, you can write the values to FEBEP-KFMOD directly in XSLT-transformation (see post for more details).
– If you use other bank specific statement format e.g. CSV-format, you can do the same in BADI FIEB_GET_BANK_STMTS_X (see post for more details).