The cash flow and shareholders’ equity reports are two of the most challenging reports in any legal consolidation project. Generating them on a monthly basis is even more difficult if the right configuration or design is not in place. Follow a real-world procedure used to generate and calculate the statement of cash flows and shareholders’ equity reports on a monthly basis using SAP ERP Central Component (SAP ECC) and legacy data as the source systems and SAP BusinessObjects Planning and Consolidation as the target environment.
Key Concept
An important component in considering the cash flow report in your SAP systems is transparency. Even though the real value of these reports is highly confidential, the access of the information and the business rules that control the generation of this report cannot be hidden from the implementation team, which needs to guarantee that the design complies with legal regulations. The logic behind the development must be clear to both internal and external auditors, and in the end it must be available in a document for their review, if required. When talking about financial transactions, flexibility means being able to identify the value changes that affect a particular account in SAP ECC; however, its analysis and configuration might require extensive work depending on the complexity of the SAP FI/CO configuration and the level of detail required.
The generation of a correct cash flow report for any organization is one of the most important and difficult tasks, so much so that many companies generate it only at the end of the year when all final values are available for the balance sheet and profit and loss (P&L) statements.
However, SAP ERP Central Component (SAP ECC) can provide the information required by SAP BusinessObjects Planning and Consolidation to generate the cash flow report for each period, thus improving the closing process and the availability of information on a monthly basis. Even though the process sounds simple and very flexible, the challenge resides in being able to track all the changes associated with one particular account that are related to the cash flow report, and how cash flow changes during the month from the opening balance until the closing balance at period end.
You can generate a monthly cash flow report using a combination of out-of-the-box functionality in SAP ECC and new capabilities in SAP BusinessObjects Planning and Consolidation. However, if your systems are a combination of SAP ECC and legacy environments, the generation of a cash flow report might also be a more difficult task because adjustments and monthly account movements are handled in two different environments in a different way.
In addition, it is a challenge for IT managers, business analysts, and financial functional users and consultants to understand what cash flow is, how it differs from balance sheet and P&L statement data, and most important of all, how to calculate this report automatically. However, making changes to SAP ECC and evaluating the flexibility of your legacy system might not be well received by the finance and IT teams. This can generate friction between the finance and IT departments when they find out that the cash flow report cannot be generated automatically without the required adjustments to your SAP ECC environment. I’ll show you how to generate the cash flow report automatically using standard functionality from SAP ECC and the capabilities available in SAP BusinessObjects Planning and Consolidation in a precise way and with a considerable reduction in data manipulation. The system can then accept the adjustments to the cash flow report instead of you having to wait until the end of the year for the CFO to review this information, which is in many cases manually calculated.
It is very possible that an SAP FI/CO team lead will say that this concept is impossible before even considering the idea and will be reluctant to perform any work to resolve this major dilemma for a corporation. For this reason, the logic behind this article focuses on how the data can be separated or identified in SAP ECC. It explains what kind of data is needed from the legacy system to standardize the data with data from SAP ECC and to upload it in SAP BusinessObjects Planning and Consolidation. You then can use it to generate your cash flow report and shareholders’ equity statements automatically every month after the period-end close.
The Approach to Cash Flow Calculation
First I’ll show you what is required on the SAP ECC side to be able to monitor the value changes for a particular account during the month, and what kind of behavior your legacy data must have to merge both sources of data using SAP BusinessObjects Planning and Consolidation. The challenge of being able to identify what caused the changes in a particular account’s value is critical when calculating the cash flow report for the period.
In a legacy system environment, the calculation of cash flow is also challenging because the accounts that populate the cash flow report might be independent accounts that are added or transferred internally to the balance sheet and P&L accounts, and they are not that obvious or easy to identify or separate. Also, it is quite possible that the data is simply manually added to an account regardless of the value change during the month for that particular account. If this is your case, your legacy data might not be appropriate for generating the cash flow report on a monthly basis, but make sure to study all scenarios before you arrive at this conclusion. Remember, in this process you are trying to eliminate any manual calculations or manipulation of your data to generate or adjust your cash flow.
In SAP ECC, you base your cash flow calculations on the Transaction Type fields, which are available in any standard installation. I’ll use these transaction types to monitor the value changes for a particular account during a period of time, and in this way, or using a cash flow-relevant account, it would be easy to separate accumulated values and monthly change values to calculate the automatic cash flow report. If you are merging data coming from two sources — SAP ECC and legacy — to generate your cash flow report, you must match the transaction types used in SAP ECC with the general ledger accounts inside the legacy system and make sure that SAP BusinessObjects Planning and Consolidation uses a common set of values that allows you to combine the legacy and SAP ECC data. In the case discussed in the article, it worked perfectly after lots of data transformation and analysis of the non-SAP system.
When downloading the data from the legacy system, it is possible to combine the data coming from SAP ECC and vice versa, and have the transparency required to generate and report such information. The values associated with each account value change must match the values generated in SAP ECC and add up to the closing balances for a particular account.
Figure 1 shows the relationship between transaction types that exist in SAP ECC and data coming from legacy systems. You can create this relationship in SAP BusinessObjects Planning and Consolidation by using a flow dimension type available in the pre-delivered ACCTDETAIL dimension.
Figure 1
SAP BusinessObjects Planning and Consolidation cash flow generation process
Figure 1 shows the overall flow of the procedure explained in this article. The information flows from different data sources at the bottom (SAP ECC, legacy, and flat files) that are harmonized using a common format and mappings using numbers that reflect what caused the change in value for a particular account in a period. These values are referred to in SAP ECC as transaction types. They exist at the general ledger level and are updated in the respective tables.
When using transaction types, you should have a common nomenclature or standard logic used in both SAP ECC and legacy environments to harmonize the data and group the general ledger accounts in categories that are part of the cash flow and shareholders’ equity reports. SAP BusinessObjects Planning and Consolidation reads the values as attributes attached to a transaction. Stored procedures executed on demand by the user allow you to separate accumulated values from monthly change values. You then can identify the cause (i.e., transaction types) that created a change in an account value, and reflect it in the cash flow report if that account is relevant.
As shown on the top of
Figure 1, eventually any change to an account can be simplified to just an increase, a decrease, or the aggregation of both of them. Realistically, this depends on how your cash flow line or accounts require the data to be displayed. The use of the transaction type codes in combination with a flow dimension allows splitting the values for a single month into cash flow- or shareholder’s equity-relevant lines associated with the types of changes that occurred (
Table 1).
Table 1
The relationship between SAP ECC transaction types and SAP BusinessObjects Planning and Consolidation flow types for an oil and mining company
Notice the transaction types shown in
Table 1 must also be matched to the data generated from your legacy system (or any flat file uploads). Otherwise it is difficult to combine the data on both sides. Transaction type 172 (purchases of investments) is a value already available in SAP ECC in the field with the same name in the general ledger table. This value is associated with the changes that affected a particular general ledger account in SAP ECC. You need to map the transaction type value in SAP BusinessObjects Planning and Consolidation to an F_INC (increase) flow type. The F_INC value is used for simplification to identify all transactions that produce an increase of the value of a particular general ledger account, and this assignment is configured in SAP ECC.
However, you can use a different nomenclature depending on your master data definition in both systems. In the end, the values stored in the dimension in SAP BusinessObjects Planning and Consolidation determine how your cash flow report is created and its values are populated. The definition of transaction type values of the SAP BusinessObjects Planning and Consolidation master data affects how this information is transferred to your cash flow-relevant accounts. That is because the cash flow data is not accumulated, but based on monthly changes. This means that the year-to-date (YTD) values include the values of the previous period-end close plus the changes of the current month. You just need the fraction that caused the change for a particular period to be isolated from the balance sheet and P&L-related accounts.
Generating all your financial reports automatically requires not only being specific with your data but also understanding the kind of data you need to monitor in SAP ECC. For example, if the value from a general ledger account in SAP ECC has a value of 100, this includes both the monthly totals for the balance sheet and cash flow reports. If you load your general ledger account with the value 100 and the transaction type or any other field you choose to monitor the monthly change is blank, the account shows 100 as a whole value once uploaded into SAP BusinessObjects Planning and Consolidation. However, the value doesn’t split and generate the totals in one report. In another scenario, say the transaction type is added to your SAP ECC or legacy data before it is uploaded into SAP BusinessObjects Planning and Consolidation, and you can identify each value that caused a change from the opening balance until the closing balance during a particular month based on the period close values. Then it would be possible to split the values associated with YTD and monthly change variance for one or more particular accounts.
In general, the procedure that this article describes is shown in
Figure 1, but can also be simplified as follows:
- Identify the cash flow-relevant general ledger accounts in SAP ECC
- Identify the general ledger account categories or groups (e.g., assets, receivables, and royalties)
- Identify the different statuses that a particular general ledger account can have during the month between open balance and close balance. Then identify these values in the Transaction Type field. Examples include 100 (opening balance), 120 (divestitures), 130 (CTA adjustments), 140 (purchase of investments), 176 (prepaid royalties), and others. Cash flow-relevant accounts monitor the monthly change of the value of a particular general ledger account. This account can be part of the balance sheet or P&L.
- Upload the data from SAP ECC into SAP NetWeaver Business Warehouse and directly into SAP BusinessObjects Planning and Consolidation
- Perform any adjustments to both the balance sheet and P&L accounts in the SAP ECC and legacy systems so the monthly change values are identified and populated in the Transaction Type field and stored in the general ledger. This requires you to configure SAP ECC transaction types for the different modules and link them with the consolidation transaction types.
- Execute the SAP BusinessObjects Planning and Consolidation data management packages to separate totals values (i.e., balance sheet and P&L) and the monthly change values (i.e., cash flow relevant)
- Simplify the transaction types from SAP ECC using SAP BusinessObjects Planning and Consolidation (optional)
- Perform business rule adjustments to separate monthly change data from accumulated data stored in your database
- Generate your cash flow report
So you can understand the impact in SAP ECC further,
Figure 1 groups the different general ledger accounts into categories. You could use these account groups to identify the values or configuration that the FI/CO team requires to reflect the changes for a particular general ledger account in SAP ECC and how these values would be stored in the Transaction Type field.
Table 1 provides this guidance, and therefore the transaction type is where SAP ECC stores a sequence of values that you can use to monitor the changes for a particular account for a single month or time period.
To achieve this, you need to perform account determination procedures in SAP ECC. The transaction types need to follow a sequence of events so the cash flow-relevant transactions are clearly identified to be separated later from an account to generate the cash flow report. This is where the logic behind
Figure 1 and
Table 1 is defined: Depending on the general ledger account group shown in
Figure 1, a change to an account would have a specific transaction type that is associated with the cash flow report as shown in
Table 1. These changes reflect the changes in the group such as assets, capital, receivables, payables, and any other accounts that are relevant to cash flow and shareholders’ equity in SAP ECC. You must also reflect the same adjustments to monitor the monthly change values (transaction types) in SAP ECC as in your legacy systems if you are going to combine the data coming from both source systems.
With this logic in mind, review
Figure 1. Visualize that the cash flow calculation procedure starts at the bottom. This is where the system identifies every transaction that affects any cash flow-relevant SAP ECC general ledger accounts that are part of the balance sheet and P&L statements. You need to use the FI account determination procedures to link the general ledger accounts’ numbers with the required transaction types and follow the grouping. However, before you start configuring nonstop, review
Tables 2 and
3, which identify the groupings for each transaction type and its relationship with a particular group of general ledger accounts. First, the transaction types or account status identify the changes for a particular account from the opening balance to the closing balance.
Table 2
Initial transaction type values (in the rows) and the general ledger accounts (in the columns)
As shown in
Table 2, for the first part of the mapping for the values for transaction types, identify the groups that you are using to generate the cash flow report. In this case, I’m using the example developed for a coal and natural gas company. For your particular industry or company you must review and clearly understand your master data before moving forward in the process.
Notice in the rows of
Table 2 I’ve identified the status for all the accounts for a particular month (from opening balance to closing balance) and then identified the groupings in the columns. The groupings that I’m using for a particular transaction type are labeled with a Y. For example, for all the accounts related to the group of general ledger accounts called Investments in
Table 2, I have identified the transaction types or status to be configured in SAP ECC to have opening balance, purchases of investments, proceeds from sale of investments, gain or loss of investments, and closing balance. If you need more status values, simply add the value change transaction type on the rows of
Table 2.
So far I have not configured a single transaction code in the SAP ECC environment or created any SAP BusinessObjects Planning and Consolidation configuration. I have simply reviewed the kind of data your system must handle based on your current requirements from a cash flow report. With
Table 2 in mind you know what transaction types you need and what groupings will use those transaction types when you perform the account determination configuration. It is possible to expand the analysis of
Table 2 with a complementary
Table 3, where you identify the general ledger accounts that are using the general ledger account groupings. In
Table 3, I’m replacing the Y with account numbers that I’ll use in configuration. This configuration must be reflected in the account assignments when a transaction is executed that affects the monthly value of a cash flow-relevant general ledger account, meaning that the monthly change value is included as part of the cash flow report.
Table 3 clearly identifies the relationship between the general ledger accounts, groupings, and transaction types. The only thing missing is that the SAP FI/CO team agrees to add these changes to your SAP ECC system so it is possible to monitor the changes for a particular account using a transaction type. Let’s review
Figure 1 again, and relate
Tables 2 and
3 to it.
Table 3
Transaction type and account mappings to generate the cash flow report
For SAP BusinessObjects Planning and Consolidation, the master data available in the Flow or AcctDetail dimension is mapped using the transformation files. These transformation files map the transaction types in the required format for upload, and consolidate some of the transaction types if required. For example, in
Table 1, I am using transformation files from SAP BusinessObjects Planning and Consolidation to consolidate transaction types 172, 176, 182, and 184 into a single flow type called F_INC for all the value changes that cause an increase in the monthly value for a particular account.
I used the same logic for the negative increases using the flow type F_DEC. This logic was used because for this example, I am using accounts in the cash flow report that require the independent reflection of the increase (F_INC), decrease (F_DEC), or total effect (F_INC+F_DEC) for a particular account. If the transaction types’ requirement of this logic depends on the cash flow account, these three values must be taken into account. For example, let’s review in
Table 4 the target goal of a cash flow report for this example, and see how cash flow accounts require increased, decreased, or total effect values depending on the values in your cash flow report. In
Table 4, I use a sample cash flow report for an oil and mining company as reference.
Table 4
Sample of a cash flow report using SAP BusinessObjects Planning and Consolidation
In
Table 4, note that the cash flow account Loss (gain) from investment in joint ventures (CASH09000) requires the total effect to be displayed if you consider the account as a parent. Thus you have the flow types F_INC and F_DEC combined or added in a parent called F_TOT (F_INC+F_DEC) as part of your master data hierarchy, and configured inside SAP BusinessObjects Planning and Consolidation. The flow value of F_TOT is what is required to be displayed when generating the cash flow report for the example in
Table 4.
Following the flow described in
Figure 1, you can manually separate the accounts, transaction types, and values that you need to generate the cash flow report shown in
Table 4 from your SAP ECC and legacy data load file. If you can’t clearly identify what increased your YTD value for a particular cash flow-relevant account from the previous month, then you are in trouble and must evaluate how to achieve this. It is quite possible your SAP FI/CO team must work extensively to generate
Tables 1,
2, and
3, considering they can get much more complex.
Configuration for Generating the Cash Flow Report
Now I’ll focus on reviewing key components required in the configuration to generate and populate the cash flow report shown in
Table 4. The accounts of a cash flow report are not generally general ledger accounts that exist in SAP ECC. Most likely they exist only in SAP BusinessObjects Planning and Consolidation. In addition, the cash flow accounts shown in
Table 4 are likely to be a combination of multiple general ledger accounts from SAP ECC. The accounts in
Table 4 receive pieces of monthly change values (transaction types) from multiple general ledger accounts, depending on the transaction type that affected a particular account based on the general ledger account groups shown in
Figure 1.
In this section, I’ll focus on configuring all the different components following
Tables 1,
2,
3, and
4 as the general design guidelines for generating your cash flow report. First I’ll review in more detail the concepts described previously with a more hands-on approach.
In SAP ECC, follow IMG menu path Financial Accounting (New) > Consolidation Preparation (New) > General Specifications > Transaction Types or use transaction OC08 to produce the screen shown in
Figure 2. Here you configure the consolidation transaction types. There are many pre-delivered consolidation transaction types, and you must come up with your own table as shown in
Table 1. This table shows the consolidation transaction types, meaning each FI module has its own transaction types that must be identified in
Figure 2.
Figure 2
Configure the consolidation transaction types
In asset accounting (FI-AA), use transaction ABAA to configure your asset transaction types using the default ones available. You could also use it to create new ones based on your needs to reflect additions, retirements, and anything else that might affect an asset during a month. Then map the asset transaction types to consolidation transaction types while using transaction ABAA (
Figure 3). Assign the consolidation transaction types (which you accessed in
Figure 2) as shown on the right of
Figure 3.
Figure 3
Map the asset transaction types to the consolidation transaction types
Then use transaction OB41 to set posting keys. This requires some transaction types to be in the Consolidation tab depending on account types and if they are credits or debits (
Figure 4). Click the white page icon to add new posting keys if required. Generally the ones displayed in
Figure 4 are the ones to use. In this case, I’m using the SAP ECC pre-delivered posting keys for a particular transaction — for example, for assets, posting keys 70 and 75 — so I do not need to add or configure any posting keys because they are for debit or credit of assets.
Figure 4
Set postings to the correct transaction type
Now you need to configure the posting keys for the asset increases and decreases (debits and credits) to work as expected when posting to an asset account. Maintain one of the posting keys shown in
Figure 4, such as 70. Double-click it, and click the Maintain Field Status button in the screen in
Figure 5, which brings up the screen in
Figure 6.
Figure 5
Click the Maintain Field Status button
Figure 6
Select Consolidation
Click Consolidation to bring up the screen in
Figure 7 and click the Req. Entry radio button. Now every account that performs a transaction that increases or decreases an asset account value carries transaction type 70 with it because of the setting established in the Field Status Group shown in
Figure 7.
Figure 7
Select Req. Entry
Configure the field status group to have transaction types set up as required in the Consolidation tab. Follow menu path Financial Accounting (New) > Financial Accounting Global Settings (New) > Ledgers > Fields > Customer Fields > Define Field Status Variants (
Figure 8).
Figure 8
Define the field status variants
Click the Field status groups node on the left and double-click any group associated with the transaction that requires the transaction type, such as G007 Asset Accts (w/o accumulated depreciatn) (
Figure 9).
Figure 9
Double-click a field status group
Figure 10Figure 11
Figure 10
Double-click Consolidation
Figure 11
Select Req. Entry
Configure the Scenarios
The most important setting for this process is to configure FIN_CONS as part of the general ledger in SAP ECC. Otherwise, the consolidation transaction types are not posted to the SAP General Ledger FAGLFLEXA and FAGLFLEXT tables. That would mean that when you post the transactions, you would fill table T856 with only one kind of transaction type, the module-specific ones such as 70 and 75 from FI-AA. If you do not have the FIN_CONS scenario as part of your general ledger, any configuration settings from
Figure 2 to
Figure 11 would not be reflected in your general ledger. The consolidation transaction type field thus would not be filled out in the general ledger.
To make sure that this scenario is assigned to the general ledger, follow IMG menu path Financial Accounting (New) > Financial Accounting Global Settings (New) > Ledgers > Ledger > Assign Scenarios and Customer Fields to Ledgers (
Figure 12). Select the ledger to which you are posting (e.g., 0L), and double-click Scenarios on the left of the screen.
Figure 12
Assign a scenario
Make sure that you have assigned FIN_CONS. It must be displayed on the list of scenarios available, in this case the 0L ledger, and associated with the ledger as shown in
Figure 13. FIN_CONS is selected only to show that it is associated with the 0L ledger, and thus it is part of the general ledger. The Preparation for Consolidation scenario then allows you to successfully update the Consolidation transaction types in the general ledger table. That makes it possible to consider the scenarios associated with a general ledger as a profile. A profile is required to perform consolidation using the transaction types associated for a particular module such as
Figure 3 and linked with the consolidation transaction types shown in
Figure 2.
Figure 13
Assign FIN_CONS
With this configuration, the fields FAGLFLEXA-RMVCT and FAGLFLEXT-RMVCT are populated with the Consolidation transaction type values, as shown in
Figure 14. To view the contents of
Figure 14, use transaction SE11 to access the FAGFLEXA or FAGFLEXT tables and review the respective table field RMVCT. Note in
Figure 14 that there are two values, 140 and 240, populated in the FAGFLEXA table of the SAP General Ledger. Now you can monitor the monthly changes for a particular general ledger account to generate your cash flow and shareholders’ equity reports. It confirms that the configuration worked effectively. In
Figure 14, I have validated that I can separate from the raw data the specific transactions that are cash flow-relevant. This is a perfect design, and shows that SAP ECC can deliver the flexibility required by business. Note that RMVCT is the consolidation transaction type field value in
Figure 2, and not the asset transaction type field shown in
Figure 3.
Figure 14
Transaction types in table FAGLFLEXA
When you finish generating the adjustments to both your SAP ECC system and your legacy system to merge the data using the transaction types tables, you are ready to perform the download or extraction from either system.
The final stage is configuring the SAP BusinessObjects Planning and Consolidation business rules to execute this process. I am assuming you are familiar with how to import data into the SAP BusinessObjects Planning and Consolidation database and how to do all the configuration.
Now you need to move data from YTD values to store only monthly change data for a particular time period in the cash flow accounts and move the values from the balance sheet and P&L accounts to a group set exclusively for the cash flow data. Access the account transformation business rule in the Admin environment of your SAP BusinessObjects Planning and Consolidation Application Set environment to determine the origin and destination of your accounts (
Figure 15). From here, move the values from a balance sheet account for a particular data source and transaction type to a particular account and transaction types to populate the subset of values exclusively used for the cash flow report.
Figure 15
Reviewing the account transformation business rule screen
For simplification purposes, I’ve created
Table 5 following column by column the SAP BusinessObjects Planning and Consolidation business rule table to show the values in a more detailed way. Note that I am moving data between accounts — the source account is the equivalent of the general ledger account in SAP ECC and the destination account is the cash flow accounts displayed in
Table 4. You cannot move data within the database using predelivered functionality in SAP BusinessObjects Planning and Consolidation.
Table 5 shows clearly that I am moving from a balance sheet account 18300 with transaction type (source flow) F_INC to the cash flow account CASH27000 (royalties) when the business rule is executed.
As shown in
Table 5, each of the columns represents the values contained in the different standard dimensions with the exception of Transformation group and Reverse sign, which establish the predefined name for the rule, in this case CF, and whether the value will be reversed or not, respectively. Leaving the column blank maintains the original value that is moving from one data set to the the new CF data set following the rules described in the dimensions Source account (account), Source flow (account detail), Source data source (DATASRC). These data selections move the data to the Destination account (account), Destination flow (account detail), and Destination data source (DATASRC if applicable). In
Table 5, this column is blank to notify the system to leave the data in the same data source values as the original ones.
After running the account transformation business rule, you can now generate your cash flow report automatically on a monthly basis. Your source systems must be modified with the Transaction Type fields or the equivalents to be able to use the flow dimension or subtable as part of your SAP BusinessObjects Planning and Consolidation database design. The procedure described in
Figure 1 is completed. The only step left is to show the cash flow report statement and how it looks with the combination of
Tables 1,
2,
3,
4, and
5 and
Figure 1.
Figure 16 displays the cash flow report with the information updated automatically based only on the value changes that occurs in your uploaded accounts. It is refreshed each time that account transformation business rule is executed.
Figure 16
Cash flow report using business rules and transaction types
As shown in
Figure 16, the cash flow report follows the accounts previously described in
Table 4. For example, CASH60000 reflects the monthly change value for the month of March 2010 of US$62,174,973, which is the increase (decrease) in cash and cash equivalents. In this case, this cash flow account is a total effect account as shown in
Figure 1 because it includes the sum of transaction types that increased and decreased the group of particular general ledger accounts involved. In other words, CASH60000 = CASH60000 INCREASE transaction types + CASH60000 DECREASE transaction types.
SAP ECC and SAP BusinessObjects Planning and Consolidation allow the flexibility of generating a cash flow at period end. It is possible to divide the YTD values of a particular general ledger account to be able to analyze the impact of a monthly value change in the cash flow report for any corporation. However, even though the procedure is extensive, once completed it takes a few minutes to have an exact value for the month after closing or during the closing period.