Enterprise Resource Planning Blogs by SAP
Get insights and updates about cloud ERP and RISE with SAP, SAP S/4HANA and SAP S/4HANA Cloud, and more enterprise management capabilities with SAP blog posts.
cancel
Showing results for 
Search instead for 
Did you mean: 
gianluca_taccone
Product and Topic Expert
Product and Topic Expert
This blog post is part 2 of the previously elaborated blog post.

Please note this blog post is specifically tailored for FM customers who are implementing the Budget Control System (BCS) part of FM and not the former budget.

Please also note that BCS is mandatory for SAP S/4HANA so (as stated by OSS note 2226048) if you are still using the old former budget you will not be able to use it in SAP S/4HANA.

As I said in the part 1 of this blog post, thanks to Funds Management (BCS) Budget Availability Control (from now on AVC) functionalities I was able to solve many customer requirements I received during the past years:

A list of those requirements:

  1. I would like to control my expenses independently on the receiver controlling objects. In other words, I would like to check my budget globally and independently of single objects (Cost Centers, Orders or Wbs Elements). My budget belongs to departments and they are responsible to post their expenses in different objects.

  2. I would like to check my budget per single expense and limited to some expenses

  3. I would like to check my expenses on different levels of the hierarchical structure and not on the single object.

  4. I would like to check the project annual budget and to give warnings about its consumption, but if expenses are within the overall (multiyear) project budget I want to allow the expenses till the overall limit (and not the until the annual limit).

  5. To avoid the early consumption of my annual budget I would like insert the budget and to check the availability control monthly or quarterly or twice a year.


 

So let’s analyze them one by one to understand how they were solved.

REQUIREMENT 1

I would like to control my expenses independently on the receiver controlling objects. In other words I would like to check my budget globally and independently of single objects (Cost Centers, Orders or Wbs Elements). My budget belongs to departments and they are responsible to post their expenses in different objects.

This is actually one of the main strengths of FM: you have new master data, and you can use them for budget and availability control purposes; you can decouple them from those you normally use for controlling. How you can easily imagine this imply a tremendous flexibility.

Practically if you have a department responsible for different controlling objects (for example some cost centers and some specific projects), you may use FM derivation tools (I talked about this in part 1 of this blog post) to derive the FM master data (for example Funds center and funded programs from cost centers and WBS elements) for budget and AVC purposes.

For example I had a customer that used the Responsible Cost Center in the WBS Master data to derive the correct Funds Center.

Customers having a unique budget department may also decide to use Funds Centers either for cost centers or for projects, but most of the customers I had wanted to use a separata FM master data (for example Funded Program) to distinguish the respective budget (Projects and Cost center)

Let’s suppose customer wants to manage the budget for Cost Centers and Projects by only using the Funds Centers. In this specific case Funds Center and Commitment Item will be used for budget insertion. For Budget Consumption postings (commitments and actuals) I would normally use derivation rules to:

  1. Find a relation between Cost Centers and Funds Centers


this may be:

  • 1:1 Relation

  • 1:n Relation (1 Funds Center for “n” cost Centers)

  • Other possible alternatives


 

  1. Find a relation between Funds Centers and Projects (or Wbe Elements)


For example

  • Use the field Responsible Cost Center on Wbe field to derive the Funds Center

  • Use the field Requesting Cost Center on Wbe field to derive the Funds Center


TIP: Please note that FMDERIVER has its own function modules to read the master data to derive FM Master Data (for example read the WBS Master data to find the Responsible or Requesting master data and to derive the Funds Center).

  • Project to Cost Center (Manual attribution of every Wbe in a project to Cost Center)

  • Other possible alternatives


 

  1. Find a relation between Commitment Items and General Ledger Accounts.


For example

  • 1:1 Relation (to be managed in FMDERIVER or in G/L Account Master Data)

  • 1:n Relation (to be managed in FMDERIVER or in G/L Account Master Data)


 

Let’s instead suppose customer want to manage the budget for Cost Centers and Projects by using the Funds Centers and Funded Programs. In this specific case for budget purposes:

  • Funds Center and Commitment Item will be used for budget insertion related to Cost Centers

  • Funds Centers, Funded Programs and Commitment Items will be used for budget insertion related to Projects


For Budget Consumption postings (commitments and actuals) I would normally use derivation rules to:

  1. Find a relation between Cost Centers and Funds Centers


this may be a:

  • 1:1 Relation

  • 1:n Relation (1 Funds Center for “n” cost Centers)

  • Other possible alternatives


 

  1. Find a relation between Funded Programs and Projects (or Wbe Elements)


For example

  • 1:1 Relation (to be managed in FMDERIVER)

  • 1:n Relation (to be managed in FMDERIVER)


 

  1. Find a relation between Commitment Items and General Ledger Accounts.


For example

  • 1:1 Relation (to be managed in FMDERIVER or in G/L Account Master Data)

  • 1:n Relation (to be managed in FMDERIVER or in G/L Account Master Data)


In this specific case the budget reporting will show

  • The Cost Center budget in the combination Funds Center/Commitment Item

  • The Project budget In the combination Funded Program/Funds Center/Commitment Items (please note that Funds Centers and Commitments items are mandatory fields for Funds management documents).


So  to fulfill the Requirement 1 keep in mind that in FM you have the possibility to:

  1. Use different FM master data for budget

  2. Use derivation rules in documents to derive FM master data for example from FI, CO and PS master data.


With these two instruments you can easily break the limitations you have from the controlling and finance objects.

TIP: I usually use Funded Programs to map WBS Elements because they are technically the same length (and trust me some customers have very long codes managed in WBS elements) . Please pay attention to the fact that Funded program can be only derived and not manually inserted in Commitments and Actual Postings.

TIP: Please note that the Availability control functionalities have their own derivation rules so for example you can derive a specific Funds Center representing the last leaf of your Cost Center hierarchy but still make the AVC work on one or two level up. So it really depends on what the business user want to see in postings and where he needs the AVC executed, but these two concepts should in theory be treated differently.

REQUIREMENT 2

 I would like to check my budget per single expense and limited to some expenses categories.

This is quite easy because:

  • diversely from the ECC Budget Availability Functionalities on Internal Orders and Projects

  • like the new Cost Centers AVC Functionalities in S/4HANA (I have written a blog post here)


Funds management can represent the Nature of Cost by using Commitment Items.

Moreover there are some specific ways to avoid that these Commitments items are checked in AVC.

Some Consultants may think of the Statistical Commitment Item Flag in the Commitment Item Master Data


This is a suitable solution if the commitment item is not part of the budget process and if the user agrees to see the postings in a specific part of the reporting.

But if these conditions are not met, the alternative solution would be to use AVC derivations to derive a specific and not active AVC Tolerance profile for the specific commitment items.

So for example I can post on two different cost elements (and commitment items) with complete different results.

Let’s see an example.

First I put budget on the Funds Center/Commitment items combinations


Then I try to consume budget on the two Commitment Items



 


TIP: please note that due to the FM customizing extreme flexibility, and to the possibility to activate parallel checks,  sometimes it is quite difficult to understand what the system is checking, so in order  to receive information on that, it is possible to activate a trace to understand what the system is doing. In previous and following picture, I have activated this trace with the aim of understanding the tolerance profile utilized.

Obviously this trace is only necessary in the design and customizing phase and will be deactivated and not be showed to users in tests or once system is productive.


And I receive a Warning only from the Commitment Item (energy) related to the AVC Tolerance Profile 1000 that is active and checking the budget. The AVC Tolerance Profile related to water cost (3000) is not checking budget.


 

REQUIREMENT 3

I would like to check my expenses on different levels of the hierarchical structure and not on the single object.

As previously said there are derivation rules, to determine on which level of the hierarchical structure, the AVC should be executed.

Let’s make an example:

Let’s have a look to two Funds Centers and their hierarchical superior Funds Center (in the Funds Center Master data)



 Let’s put some budget on the Funds Centers.

Please note that in this example the budgeting workbench does not consider these funds centers as if they are in a hierarchical structure. Every Funds Center can consume budget.


Now let’s suppose I would like to check the budget not on the leaves Funds Centers (Hier1.1 and Hier1.2) but directly on the “father” (HIER1).

For this reason I try to create a financial posting (budget consumption) of 900 EUR that should completely override Funds Center HIER1.1 budget but still be valid for Funds Center HIER1


As you can see for AVC purposes the Funds Center Deriver is HIER1 and this will be checked for the inserted budget.

So even if the budget on Funds Center HIER1.1 was 200€, with a Posting of 900 EUR I receive a warning (budget in the limit) cause the real AVC is done on the HIER1 Funds Center. (Indicated a superior Funds Center in the HIER1.1 and HIER1.2 Fund Centers)


This is just an example of what it is possible to do with Funds Management.

As said this is also very similar to what it is possible with the Cost Center AVC solution in S/4HANA but FM is much more powerful because the Cost Center solution is limited to Cost Centers while FM can use this functionality for Commitment Items and Funded Programs as well for example.

 

REQUIREMENT 4

I would like to check the project annual budget and to give warnings about its consumption, but if expenses are within the overall (multiyear) project budget I want to allow the expenses till the overall limit (and not the annual limit). 

Funds Management has mainly two different possibilities to check the budget (there’s also a third one but this use a workaround and I will talk about it in chapter dedicated to requirement Five)

  • Annual

  • Overall


The two methods can also be used in parallel.

So I have received this requirements for Funded Programs (related to Projects) but this is valid for other FM master data as well.

To have both methods in parallel it is necessary to have two AVC Ledgers.

In my case I will use:

  • 9H for annual

  • OA for Overall.


I will also create two AVC Tolerance Profiles:

  • ANNU Related to Profile 9H (Annual) where I just create a warning when the budget Is consumed at 90% of his value

  • OVER Related to Profile OA (Overall) where a warning will be raised for 80% of budget and an Error at 100%


Let’s suppose my customer has a Project to monitor a specific marketing campaign across various years.


And I have created Funded Program for every WBS Element.

Now let’s assume I want to manage the annual budget for 2021


And overall budget (Please note I used Version 1 here)

For 2021


And For 2022


Then I create a financial document in 2022 over the Annual and the Overall budget creation of a document

You can see the derivation performed in the document below.


Please note I have activated a trace just to show how the various derivations work (again, if you deactivate it business user will never see it)

Here you can see how the AVC ledger are related to checking horizon:

Annual budget for Control Ledger 9H


Overall budget for Control Ledger OA


 

Now I want to show you how the AVC work in this case.

Below you can see how the AVC tolerance profiles are related to the AVC Control ledgers (Please check message in the lower part of the picture)

ANNU for 9H (Annual), I receive a warning because there is budget only for 1000€ in 2021(and the AVC error check is warning for 90% of annual)


OVER for OA Overall I receive an error because the overall budget is 2000€ (1000 for 2021 and 1000 for 2022) while the posting is 2001€ in 2021.


 

In this way I was able to obtain 2 different and parallel availability control checks for one specific posting. This case was valid for overall and annual budget, but it is in theory possible for any possible case you may have in mind.

REQUIREMENT 5

To avoid the early consumption of my annual budget I would like to insert the budget and to check the availability control monthly or quarterly or twice a year.

If a Customer wants to avoid the immediate appropriation of budget once this is approved my suggestion is to create FM master data 1:1 with Controlling data.
For example if you create a Funds Center for 2 Cost centers and you approve the budget, one of the two cost centers can in theory consume the entire budget, while this is not possible in a 1:1 relation.

But independently on your FM master data structure there are at least two methods to mitigate the appropriation phenomenon:

  1. The first one is to manage partial releases. So once the budget is approved and inserted, before of being consumed it has to be released, in this way it is possible to limit the consumable budget per releases. This entail a continue dialogue between who release the budget and who consume it, but in some cases it cannot be the proper solution (for example if the consumer need the entire annual budget for a single purchase).

  2. The second one is more a technical workaround (Personal Opinion) that can be used in some specific cases and it regards the use of the Master data Funds to represent the period.


 

Usually, as said in the first part of this blog, funds is used for other purposes (for example in Public Sector to represent the external funds received and to be spent for some specific reasons) but since it is limitable by period, it can also be used for period check specific budget purposes.

This is also reported in SAP HELP.

This is a requirement I recently had from a customer. I explained the possibilities and the customer chosen the first one (the one with releases) So to be honest I actually never implemented the second solution but I do want to explain here because I know it is a real possibility.

So, when you create the Fund master data you can specify the validity period.

The Funds Master data has a specific validity,


and this validity is checked by the system to allow postings.

So if you add the funds master data SEP-2021 to your existing master data (Funds Center, Commitment Item):

  • you can use the funds to represent the month

  • you can limit the period in which you do postings


 

Please be aware that funds functionalities limit the commitment and actual part and not necessarily the budget part. If you want to limit the budget part as well in order to put the budget only in the selected period you may want to activate the budget period per Fund.



 In this way you may decide per single fund which is the open period for the budget creation


 I receive an error because I try to insert budget for the entire 2021

While if I choose to insert data only in September I have no problem to post the budget document


Picture XX budget Creation limited per period September.

Budget is now ok cause I have limited insertion to September

In the same manner, since the Fund has a validity period in master data, it can receive postings only within the specified period.

If I create a posting in October I receive the following error message


While If I create a posting in September the normal AVC controls are made.


In this way, every fund master data representing the month act as temporary limit to manage expenses.

Update from 05-2023

I have recently stumbled upon OSS note 2042029

It gives more suggestions on how to consider period in Funds Management Budget and Availability Control. 

Actually the note mentions three methods:  

1 Use of budget releases: (I have mentioned this earlier in this blog post) 

2.- Use of the Budget Period as additional FM account assignment element. As of release 604, the new FM account assignment element called Budget Period can be used in combination with the other account assignment element Fund to represent a single month or a time period of several months.

3.- Implementation of the BAdI FMAVC_ENTRY_FILTER and the use of additional Availability Control Ledgers.

Method 2 can be used by activating a specific business function documented here

It actually brings the possibility to use another master data called budget period in FM, this master data can be used in derivations in Budget entries and in many integration points related to FM. 

I want to clarify that I have never used methods 2 and 3 in a project but as far as I can read method 2 seems to be much more complete of the "technical workaround" I was mentioning above (method 2 in my previous classification, sorry for the confusion).

This blog post is part of my implementation experience and I am willing to know what do you think about it.

Have you ever implemented Funds Management AVC functionalities in a Private Owned Customer?

Can you describe your experience?

 

Brought to you by SAP S/4HANA Regional Implementation Group

 

Gianluca Taccone

Product Expert

SAP S/4HANA Regional Implementation Group

 


 

 

 
15 Comments