Most of us are comfortable with SD-FI-COPA integration concepts as it is easy to correlate and understand. But, when it comes to MM-FI integration, many of us find difficulties in understanding the concepts and account determination process. When I was trying to analyze my first issue related to how a stock account is determined in a valuated transaction, I was lost in OBYC. Let us try to understand few terminology used in MM-FI integration concepts. Once we are familiar with the concepts, we will further discuss account determination process in a stock movement related transaction.
Stock of a material owned by a company is an asset to the company. Valuation area defines the organization level at which materials are valuated.
SAP has provided two options for valuation.
1. Valuation at plant level: All materials are valuated at plant level.
2. Valuation at company code level: All materials in all plants of a company are valuated at company code level.
This setting is defined in t-code OX14.
Total valuated stock = Stock in unrestricted use + Stock in transit between storage locations/warehouses of a plant + Stock in quality inspection.
This defines the type of material.
EG: Raw material, Finished goods etc.
Material type is defined during material master data creation.
This defines the type of material movement from one place to other. Movement type enables the system to find predefined posting rules determining how the stock and consumption accounts are to be posted. All possible goods movements are already defined by standard SAP
EG: Movement type 101 refers goods receipt
Movement type is entered while posting stock movement related transactions. Most of the time, standard SAP automatically derives the movement type based on transaction code.
EG: If we go to MIGO, default movement type 101 is displayed by system.
Valuation class is defined for the combination of plant and material (In Accounting 1 view of material master).
Valuation class allows posting of stock values of
1. Materials of same material type to different G/L account (Different valuation class is assigned in different plants for the same material)
2. Materials of different material type to same G/L account (Same valuation class is assigned to materials of different material type)
Note: G/L accounts can be defined at valuation class level along with other parameters.
Valuation grouping code:
Valuation grouping code combines the valuation areas having same business properties for the account determination. This reduces number of entries to be created for automatic account determination for the stock postings.
EG: Valuation area 1 and 2 are required to be posted to same G/L account, these are grouped to valuation grouping code ABC and G/L is determined based on valuation grouping code and valuation class.
Before using valuation grouping code, it needs to be activated in OMWM.
Valuation grouping code is assigned to valuation area in t-code OMWD.
In below example, five valuation areas are assigned to same valuation grouping code.
Account modification/General modification:
This key is used to determine different G/L account for the same kind of goods movement based on origin and target.
EG: During Goods issue, offsetting G/L is determined from transaction key GBB. If business wants to post to different G/Ls for goods issue for cost centers (Movement type 201) and good issues to orders (Movement type 261) for the same material and plant, Account modifier can help here. To understand this better, let us go to t-code OMWN where we define the transaction key and account modification for the movement type.
Transaction key which we see in OBYC is determined based on the movement type. In below screenshot, you can see all parameters are same for movement type 201 and 261 except account modification.
Please read F1 help on different fields in this screen to know more about functionality of each field.
When material document is posted with these movement types, offsetting account is determined from transaction key GBB based on account modifier and valuation class.
From below screenshot, you can see that, different offsetting G/L account can be determined for the same transaction key and valuation class.
By Default, Standard SAP defines account modification keys for below transaction keys. User defined keys can also be defined and respective account determination settings can be maintained.
- GBB (offsetting entry for inventory posting)
- PRD (price differences)
- KON (consignment liabilities)
Below are the modification keys defined by SAP (Extracted from F1 help).
Modifiers for GBB
For the transaction/event GBB (offsetting entry for inventory posting), the following account groupings have already been assigned to the relevant movement types:
- AUF: for goods receipts for production orders with account assignment
- BSA: for initial entries of stock balances
- INV: for expense/revenue from inventory differences
- VAX: for goods issues for sales orders without account assignment object
- VAY: for goods issues for sales orders with account assignment object
- VBO: for consumption from stock of material provided to vendor
- VBR: for internal goods issues (e.g., for cost center)
- VKA: for consumption for sales order without SD
- VNG: for scrapping/destruction
- VQP: for sampling
- ZOB: for goods receipts without purchase orders
- ZOF: for goods receipts without production orders
Modifiers for PRD
If you also activate account grouping for transaction/event PRD (price differences) when you make the settings for automatic postings, the following account groupings are already assigned to the relevant movement types in the standard:
- none for goods receipts and invoice receipts for purchase orders
- PRF: for goods receipts for production orders
- PRA: for goods issues and other goods movements
Modifiers for KON
If you also activate account grouping for transaction/event KON (consignment liabilities) when you make the settings for automatic postings, the following account groupings are already assigned to the relevant movement types in the standard:
- none for consignment liabilities
- PIP: for pipeline liabilities
How are the account determination attributes determined for each transaction key/event?
Did you observe different set of fields appears for different transaction keys in OBYC while maintaining G/L account? Yes. This is defined in Rules for the transaction key.
EG: Select transaction key AUM in OBYC and click on “Rules” in toolbar.
You can see that general modification and valuation modifier is active.
If you go to G/L account maintenance for this key, you would see the same fields.
Quick snap of MM-FI Integration process:
When we do material posting for a valuated material, below flow happens.
1. Movement type and other attributes like special stock indicator, movement indicator etc are determined based on business transaction like goods receipt for PO, production order etc.(OMWN). This is defined by standard SAP.
2. Transaction key/event and account modifier is identified based on movement type and other standard attributes in step 1 (OMWN)
3. Valuation grouping code activation is checked from OMWM
4. If active, for the given valuation area, valuation grouping code is identified from OMWD
5. For the identified transaction or event, check if valuation grouping code is active or not in OBYC (Click the rules button for the transaction key)
6. Valuation class is determined from material master.
7. Based on the above identified attributes, select the G/L account from OBYC.
If system can’t find any account for the found attributes, stock posting can’t be done and system through clear error stating for which combination of attributes, G/L account is missing. Such errors are mostly seen during go live/while posting to new materials due to missing G/L account maintenance or due to incorrect valuation class in material master data.
Now you know the process, here is the short cut to find out G/L.
Account determination details are stored in table T030. If you want to know based on what details XXX account is determined, simply give that G/L in T030 table in field KONTS. This gives the possible combination of entries where this G/L is assigned. We can further drill down based on the filtered entries.