MM Inventory Management Part 3: Movement Types and Automatic Account Determination
How a movement type finds G/L accounts: movement type → value string → transaction/event keys (BSX, WRX, GBB, PRD…) with account modifiers, valuation class and valuation grouping code, and how to configure or copy movement types safely.
Explanation
📌 KEY POINTS
✅ Each movement type has a value string listing transaction/event keys (e.g. WE01 for 101: BSX, WRX, PRD).
✅ Account modifiers refine GBB (e.g. VBR consumption, VAX delivery, VNG scrapping).
✅ G/L accounts are found in OBYC by chart of accounts, valuation grouping code, valuation class and modifier.
✅ Custom movement types should be copies of standard ones with minimal changes.
⚠️ Editing standard movement types or value strings breaks postings across the system.
━━━━━━━━━━━━━━━━━━━━
▶ WHERE WE ARE
Part 2 covered documents. Now account determination.
━━━━━━━━━━━━━━━━━━━━
▶ 1. MOVEMENT TYPE CONTROL
- OMJJ: quantity/value update, reversal type, reasons, value string.
━━━━━━━━━━━━━━━━━━━━
▶ 2. TRANSACTION KEYS
- BSX stock, WRX GR/IR, PRD price difference, GBB offsetting, UMB revaluation, INV inventory differences.
━━━━━━━━━━━━━━━━━━━━
▶ 3. ACCOUNT MODIFIERS
- GBB-VBR, VAX, VNG, INV (inventory differences via GBB), ZOB…\n\n━━━━━━━━━━━━━━━━━━━━\n▶ 4. OBYC\n• Keys per valuation grouping code + valuation class (+ modifier) → G/L.
━━━━━━━━━━━━━━━━━━━━
▶ 5. CUSTOM MOVEMENT TYPES
- Copy (e.g. 201 → Z01), adjust texts/reasons, keep value string.
━━━━━━━━━━━━━━━━━━━━
▶ STEP BY STEP
- Display movement type 201 and its value string.
- Check GBB-VBR in OBYC.
- Simulate a posting in MIGO.
✅ CHECKPOINT: you can predict the G/L accounts for any movement.
Code example
===== STEP 1: examples =====101 → value string WE01: BSX, WRX, PRD | 201 → WA01: BSX, GBB (VBR) | 551 → GBB (VNG) | 701 → GBB (INV) ===== STEP 2: OBYC =====BSX: valuation class 3000 → 300000 | GBB-VBR: 3000 → 400000 consumption | WRX → 191100 GR/IR ===== STEP 3: custom =====OMJJ copy 201 → Z01 (special consumption), assign reason codes; account modifier via OMWN (per configuration)Real project scenario
Users began posting 201 instead of 261 because a custom Z61 movement type (copied from 261) had lost its value string entry in a transport. Postings failed for Z61. Restoring the value string from standard and adding regression tests for custom movement types fixed it.
Common mistakes
- Changing standard movement types.
- Incomplete OBYC for new valuation classes.
- Custom movement types without testing.
- Wrong account modifiers.
- Misreading value strings.
Best practices
- Copy, don't modify.
- Complete OBYC per valuation class.
- Test custom movements.
- Document modifiers.
- Use simulation before posting.
Interview angle
Questions: "How does a movement type determine G/L accounts?", "What is an account modifier?", "How do you create a custom movement type?"
Strong answer: value string, transaction keys, modifiers, OBYC keys, copying standard types.
Practice this lesson
Quick check
1. Where does a movement type define which transaction keys (BSX, WRX, GBB…) are used?
2. A company manufactures a product where certain raw materials require batch management due to shelf-life tracking. What is a direct consequence of activating batch management for a material in Inventory Management?
3. A production supervisor needs to withdraw raw material from unrestricted-use stock and consume it directly against a cost center for a maintenance activity, not tied to a production order. Which movement type is typically used?
Interview questions
1. A custom movement type for special consumption posts to the wrong G/L account. How do you analyse movement type account determination?
Answer it in your own words first, then compare.
2. How does moving material from unrestricted-use stock to quality inspection stock (movement type 321/322) interact with Material Ledger, and does this transfer create a financial posting?
Answer it in your own words first, then compare.
Reference-verified: the steps are checked against official SAP documentation and tutorials, and object and field names in the sample code are checked for consistency. The code has not been compiled or run on an SAP system by ERPClimb. Syntax marked release-dependent varies by SAP release, so check it in your own system.
More lessons in this topic
- MM Inventory Management Part 1: Stock Types, Special Stocks, Reservations and Stock Overview
- MM Inventory Management Part 2: Goods Movements, Material Documents and Accounting Documents
- MM Inventory Management Part 4: Stock Transfers, Transfer Postings and Special Stock
- MM Inventory Management Part 5: S/4HANA MATDOC, Reconciliation and Production Troubleshooting
Interview questions on this topic
Related SAP topics
- S/4HANA MM Transformation, Ariba, Migration, Public Cloud and Architecture
- Invoice Verification, GR/IR, Integration and Production Support
- Procurement and End-to-End Procure-to-Pay
- Inventory Management, Valuation, Material Ledger and Account Determination
- MM Foundation, Enterprise Structure and Master Data
- Enterprise Structure