House Banks in S/4HANA – Change in SAP’s Approach
Date: Aug/19/2017. Author: Harsha Yedla
Intended Audience: SAP consultants, SAP super users and SAP support users.
Keywords: SAP, S/4HANA, House Banks.
Notes: Screenshots and system specific details are from S/4HANA 1610.
SAP defines a House Bank as the bank your company has account with. House Banks are used for outgoing and incoming payment processes involving vendor and customer payments. They are also used in bank transfers, bank statement processing and other Cash Management processes. A House Bank is different from the bank that we use on customer/vendor master. House Bank, unlike the customer/vendor bank, is assigned to a company code, has a bank ID, and every account in that House Bank has an account ID. Bank Directory, House Bank, Customer/vendor bank and associated bank accounts are key aspects of Bank Master maintenance in SAP. Figure-1 shows how they relate in S/4HANA.
Figure 1 – Bank Master setup in S/4HANA
The key difference between ECC and S/4HANA is the ability to now setup Account ID for Business Partner (customer/vendor) bank master data and how this Account ID maintenance is now de-linked from House Bank setup. Let’s dig deeper into these differences and see how they impact bank maintenance process overall.
House Banks setup in S/4HANA
Typical approach and a natural course of action for any SAP-professional is to start with IMG customizing as shown in figure-2.
Figure 2 – IMG path for House Banks
However, the moment one clicks this ‘Define House Banks’ IMG node, SAP shows an error message as shown in figure-3.
Figure 3 – Error when using ‘Define House Banks’ node in IMG
I find it most irritating when SAP kicks you out all the way back to the SAP main menu screen if one clicks on “Exit”. Nevertheless, if a curious user clicks the long text, SAP provides further details (see figure-4) as to why this IMG node cannot be used.
Figure 4 – IMG error message for House Banks
I was pleased to see not a cryptic one-liner but a well written grammatically correct explanation for the error message. Sadly, SAP does not provide any indication about considering House Banks as master data and not as customizing. And it also does not provide any notes on transport related impacts.
Change in Approach
With introduction of Fiori, SAP directs managing House Banks using Bank Account Management Fiori app (see Table-1 below). In the Fiori app, one can setup House Banks, Account IDs for those House Banks, G/L Account for each of those Account IDs and other technical details. What I call, the complete setup. In this approach, SAP treats the House Bank setup as Master Data and not as a customizing setting. And so there is no question of transport. SAP does not show the customizing transport screen when we save the House Bank setup in the Fiori app. This was not the case in pre-S/4HANA versions of SAP. In ECC, House Bank setup is considered customizing requiring the changes to be saved to a transport. The process was clean and straight forward. One starts in IMG, creates House Bank and Account IDs, saves them to a transport and moves the transport across environments to sync-up the setup across all systems. In ECC, House Banks are setup in customizing and customer/vendor bank directory is setup as master data. SAP changed this approach with S/4HANA for reasons unknown.
This raises questions about consistent process for bank master data maintenance, control, consistency of House Bank setup between SAP environments, risk of unwanted users having access to view and/or change company’s bank account details and need for additional security considerations. If not properly addressed, this could quickly get out of hand.
Alternative to the Fiori app approach is to use GUI transaction based approach. In this approach, we can use a GUI transaction FI12_HBANK to maintain the House Banks and transport those changes. However, when using GUI transaction based approach, one quickly realizes that there is no way to add Account IDs and associated settings to the House Bank, which totally undermines the GUI transaction based approach.
I do not see the point in just creating the House Bank shell and transporting it across environments and so sticking with Fiori app approach is the best way forward.
It is also interesting to note that SAP now allows creating Bank Account master (Account ID) for customer/vendor banks (see Figure-1). These are different from the Bank Account IDs created for House Banks. Figure-5 below shows relevant bank related tables with their key field linkages.
Figure 5 – Important tables pertaining to Bank maintenance
One can quickly note that SAP introduced FCLM_BAM* tables which now store the bank account related data. FCLM_BAM_AMD table specifically stores the Bank Account Master data. So, based on this setup, it becomes clear that one can create a Bank Account that is not associated with a House Bank and then decide create a House Bank for the Bank Master and then link that House Bank to the Bank Account.
It is also interesting to note that SAP does not provide the functionality to select these non-house-bank accounts in the customer/vendor master data setup. There is no validation of account numbers entered on the business partner master data with those setup as part of bank maintenance (stored in FCLM_BAM_AMD table). If there is a business need for such a validation, we have to depend on enhancements to standard working. This could be a potential improvement in upcoming S/4HANA versions.
Optimal Maintenance Process in S/4HANA
Start with Fiori app ‘Manage Banks’ (note: this is different from ‘Manage House Banks’ app. See Table-1). Here one can create a Bank Master record. This will create a record in BNKA table. In the same app one can also decide whether to create this bank as a House Bank. If created as a House Bank, this will create a record in T012 table. Since the ‘Manage Banks’ app does not allow creating Bank accounts, one has to switch to ‘Manage Bank Accounts’ app. This app will list, assuming there is data, all the Bank Accounts along with their House Bank, where available. If there is no House Bank associated with the bank account, that field will show as blank. From this app, one can create a new Bank Account and associate it with a House Bank where needed. If for some reason, the Bank Master records is not setup as a House Bank, this ‘Manage Bank Accounts’ app provides a detour to ‘Manage House Banks’ app. But this should be more of an exception process and not a norm. Figure-6 below shows the flow of optimal bank maintenance process that should be easy to implement and follow on an on-going basis.
Figure 6 – Optimal Bank maintenance process
As the adage goes, there are many ways to skin a cat. Company’s business process need might force them to adopt a different process for maintaining banks. However, this is process shown in figure-6 should minimize the need to switch between multiple apps and thus provide an optimal way to maintain banks and their accounts.
Impacts of new approach
Given the new way of treating bank data in S/4HANA, obvious thing that comes next is to consider transport, cutover and security impacts.
Bank Directory/Bank Master records are handled as a cutover data-load activity and not transported. House Banks, however, are typically transported. In ECC, when a House Bank is included in the customizing transport, its associated bank accounts were also included in the transport. With HANA that is not the case. Only the T012 table entry is included in the transport and so only the House Bank will get transported but not its associated accounts. This change forces us to setup House Bank Account IDs as an added cutover task. And because these Account IDs are setup as master data and not as a configuration, security considerations become very important. This takes us to our next impact consideration – security.
S/4HANA provides following roles for managing bank accounts. These are in addition to the Fiori app specific business and authorization roles (see Fiori Apps for Maintaining Banks), all of which could be used for controlling security for bank maintenance.
- SAP_FI_BL_BANK_MASTERDAT_DISPL – Display Bank Master Data
- SAP_FI_BL_BANK_MASTER_DATA – Maintain Bank Master Data
There needs to be careful consider SAP’s treatment of Account IDs when building user security roles to ensure access to House Bank Account ID maintenance is more controlled than regular Bank Master Account ID maintenance. If this is not correctly done, unauthorized users could end-up accessing company’s bank account details and potentially changing them, thereby causing significant issues to company’s banking, AP/AR processes and potentially enabling fraud.
Fiori Apps for Maintaining Banks
As much exciting as it can be, using Fiori sometimes gets confusing and borderline irritating. Case-in-point, bank maintenance. SAP provides many apps for managing bank master data. Each app could have related GUI transaction code, Business role, Authorization role and in some cases overlapping functionality and also potentially same name as another app with different purpose. Strange is the word that comes to my mind when I think about how we ended-up in this situationJ. Let’s see what these apps are.
Table 1 – S/4HANA Fiori apps for Bank maintenance
|Fiori App||Description||GUI T-Code||Role||Comments|
|Apps without default role-assignment|
|Create Banks||Create Bank Directory Bank Master. (not the House Bank Master)||FI01||N/A|
|Change Banks||Change banks created using “Create Banks” app or T-Code: FI01||FI02||N/A|
|Display Bank Changes (App #1)||Displays changes to a single bank master including House Banks||FI04||N/A||For some weird reason SAP delivers both apps with same name. I prefer the app #2 for obvious reasons.|
|Display Bank Changes (App #2)||Displays changes to a multiple bank master including House Banks||S_P00_07000008||N/A|
|Manage House Banks||Can search for and display the details of house banks. Can create new house banks and change existing house banks. Cannot add account IDs.||FI12_HBANK||N/A||
1610 version does not come with default role assignment. 1503 version does.
(I would have thought it’ll be other way around. Weird!!)
|Display House Banks||Displays existing house banks. Can switch to edit mode and make changes.||FI13_HBANK||N/A|
|Transfer Bank Details||Used for transferring a bank directory to the SAP system (BNKA table) using a country-specific file||BAUP||N/A||For USA, SAP has predefined “Thomson Electronic Payment File” with function module FILL_BNKA_FIELDS_US1 (see transaction BA01)|
|Apps without default role-assignment|
|Manage Bank Accounts||Provides an overview of bank accounts and maintain bank account master data||N/A||
SAP_BR_CASH_MANAGER (Business role)
SAP_SFIN_CASH_MANAGER (Authorization role)
|Manage Banks||Provides an overview of all the banks in the system. Can add new banks, contacts, and banking relationships. Can create, display, and change data for existing banks.||N/A||
SAP_BR_CASH_SPECIALIST (Business role)
SAP_BR_CASH_MANAGER (Business role)
Following are some of the resources one can use for further reading on this topic