Sometimes I wonder how many implementations it would take to get the Automatic Account Determination process down-pat.
Every consultant I've dealt with has had to brush up on the account determination process before implementing it, no matter their experience level.
So, for my sake, and yours, here's a simple (as much as it can be) explanation of what Automatic Account Determination is, what it does, and how to do it.
Why do I need Automatic Account Determination?
Every time a transaction with financial implications is run, postings must be made to financial accounts. I'm a logistics consultant, so to be honest, I don't care. But it has to happen, so since this is an integration point between us and FI, unless you can make the FI consultant do it, we have to fight through it.
We could let the user enter the GL account each time we post an invoice or goods receipt, but SAP is supposed to be a productivity tool, so that's not really acceptable.
So, the idea is that the system will determine (based on our config) what account to post to depending on a number of factors, namely; company code, valuation area (plant vs company code), material / material type, transaction or business event and movement type.
So, with five variables, the determination system must be pretty complex?
Yes. When you come to understand the way SAP have done it, it is an elegant solution, but it is pretty damn complex.
Before you begin, sit down with the FI consultant, find out what accounts there are and in a business sense, how and when each of the accounts should be posted to. Discuss all five of the categories above. With this info set in concrete in front of you, you can begin the SAP config.
Here's the lowdown, try and stay with me.
Essentially all that is happening is that SAP are allowing us to maintain a record of "if x and y happen, then use account z" and "if a and b occur then use account q".
I can just imagine the conversation many years ago in Germany (translated for your convenience):
"Ok, we need a table of possible outcomes for account determination."
"That's faaarrr too easy. Let's break it into fifty different tables, come up with many interchangeable names for the same thing, and hide the tables beneath several different, unimaginable directory paths."
First up, since we have to do something first, let's specify our valuation control. This is done via IMG > Materials Management > Valuation and Account Assignment > Account Determination > Account Determination Without Wizard > Define Valuation Control.
All that we're doing here is specifying whether the system should consider the valuation grouping code in it's determination procedures.
"What's the valuation grouping code?" I hear you asking?
The valuation grouping code (vgc) is a collection of valuation areas that will have the same account determination. Since a valuation area can be a company code or plant, we can say that a vgc represents a group of plants or company codes that have the same account determination.
If you don't use the valuation grouping code, you'll have to set up account determination for each plant or company code in SAP.
If you're using the vgc, then jump into "group together valuation areas" and assign your company codes or plant a code (any code). They should be somewhere in the list automatically, all you should need to do is give them a code.
The next step is to manage different account determination per material type. This is where it can get complicated if you let it.
The valuation class is linked to an account category reference. The account category reference (acr) is an artificial code which allows flexibility in linking material types with valuation classes.
"Huh?" I hear you asking. Let's consider the alternatives.
We could relate the GL account directly to the material type. This would be easy to setup for a few material types, but would take a huge amount of time for many material types, and would be hard to understand if changes needed to be made.
We could use the valuation class, assign the GL account to it, and then assign valuation classes to material types. This is better, since we could for instance have a "Raw Materials" vc and a "Finished Materials" vc and then simply link all the various material types under each category to the valuation class. This would make updates and initial loads easier, but there is still one thing missing, a material type can only be part of one valuation class and can only post to one account.
However, in the real world, a material type may post to different accounts depending on things other than just the material type, such as plant, movement type or indeed any of the factors above.
So, we have an account category reference which is linked to a material type. This acr is then linked with a valuation class and the GL account is linked to the valuation class. So a material type can be linked to one or more valuation classes (and hence GL Accounts) and in turn, a valuation class can be linked to multiple material types (enabling ease of understanding and updates).
Now that you (hopefully) understand that, the actual updates are pretty simple.
Go to transaction: IMG > Materials Management > Valuation and Account Assignment > Account Determination > Account Determination Without Wizard > Define Valuation Classes and begin by defining your valuation classes. Then define your account category references and go back into your valuation classes and assign them (or you could do the acr's first). Then go into your material types and assign your acr's to your material types and done! For the moment.
At this point we should consider another factor, the actual business event that is occurring and it's effect on account determination. This is another area where you have to try and see through the impenetrable fog of terminology.
Each time "something" occurs in the system it produces a "key" for each of the postings that need to be made (i.e. debit and credit). This "key" is entered in our account determination procedure so that postings for credit and debit go to different accounts. Simple aye?
Well when (as far as I understand) the "something" can be called 'transaction (key)' or 'event (key)' and the "key" can be called 'value string', 'posting rule' or 'posting string for values' and the column header in SAP for the "key" says "Trans". Fun, fun, fun.
The combinations of movement type and "keys" and how they are determined are all internally programmed by SAP, so we don't really care. What we do care about is the account modifier or 'account grouping code'.
This is the topic I spent the most time on, and I'm still not completely clear, so don't feel bad if you're confused.
The account grouping code (aka account modification code, modifier or (in SAP) general modifier) is a three character code (which rather oddly has no link with the posting strings ("key")) which we use to break account determination down by movement type.
For example, by default in SAP, the system says for movement type 101 and posting key PRD there is no modification. So the account determination is not different based on movement type. However, I can enter a code (e.g. AAA) against movement type 101 and posting key PRD and code BBB against movement type 102 and PRD.
Then in 'Configure Automatic Postings' when we go into posting key PRD, we will make entries for 'general modifier' AAA, account 100000 and BBB of 100001 (there will also need to be an entry for a "blank" modifier which should cover all the other movement types).
So, make sense? Hopefully.
Now you need to go through and for each posting key that we're concerned with, record each of the defining factors mentioned above (you don't need to enter them if you're not using them) and enter a GL account for each permutation.
You should now find that your account determination is working. I wouldn't put any money on that promise. My hope is that having read this guide, you're a little bit closer to having your account determination working, and that in conjunction with a number of other resources you'll get there eventually.
PS: I will be updating this article periodically, and would appreciate your constructive criticism by commenting below.