1 · What MIGO does — and the two documents it creates
A goods movement is any time stock physically changes: it comes in (you receive iron), goes out (you consume it), or moves (warehouse → workshop). MIGO is how you record that in SAP.
- Material document — the inventory record: what moved, how much, from/to where. Always created. (Tables MKPF + MSEG.)
- Accounting document — the money record: which G/L accounts were debited/credited. Created only when value changes. (Tables BKPF + BSEG / the Universal Journal ACDOCA.)
The movement type (a 3-digit code) is the precise instruction. The first digit tells you the direction:
| Starts with… | Means | Examples |
|---|---|---|
| 1xx | Receipt — stock in | 101 GR from PO · 561 initial stock |
| 2xx | Issue — stock out | 201 to cost center · 261 to order · 551 scrap |
| 3xx | Transfer — move/reclassify | 311 SLoc→SLoc · 309 material→material · 301 plant→plant |
| even / +1 | Reversal of the one below it | 102 reverses 101 · 262 reverses 261 |
2 · The top bar — set three things before anything
| Dropdown | Asks | Choices you'll use |
|---|---|---|
| 1 · Action | What kind of movement? | Goods Receipt · Goods Issue · Transfer Posting · Return Delivery · Cancellation · Display |
| 2 · Reference | Against which document? (SAP pulls the lines from it) | Purchase Order · Order (production) · Reservation · Material Document · Delivery · Other (no document) |
| 3 · Movement Type | The exact instruction | 101 201 261 311… |
3 · The screen layout — three zones
| Zone | What it is |
|---|---|
| Top bar | Action + Reference + Movement Type (section 2) |
| Header (collapsible "General" area) | Document Date, Posting Date, Delivery Note, Doc Header Text — applies to the whole document (section 4) |
| Line items (the grid) | One row per material being moved — material, qty, OK flag |
| Item detail (tabs below the grid) | The details of the selected line — Material, Quantity, Where, Purchase Order, Account Assignment… (section 5) |
Workflow: set the top bar → fill the header dates → each line auto-loads (from the PO/order) or you type it → open the Where / Account Assignment tabs to complete it → tick Item OK → Check (traffic light goes green) → Post. SAP shows the material document number.
4 · Header fields
| Field | Mandatory? | What & why |
|---|---|---|
| Posting Date | ✅ (defaults today) | The most important one — it decides which accounting period the posting hits. Must be in an open period (else "period not open"). Backdate it to post into last month. |
| Document Date | ✅ (defaults today) | The date on the vendor's paperwork/delivery note. Informational. |
| Delivery Note / Bill of Lading | ○ optional | (GR) the vendor's delivery-note number — for tracing. |
| Material Slip | ○ optional | A reference text printed on the goods slip. |
| Doc. Header Text | ○ optional | A free note for the whole document. |
| Print / Individual Slip | ○ optional | Whether/how to print a goods-movement slip. |
5 · Line-item tabs — field by field
Select a line, and these tabs show its details. You won't use every tab every time — only the ones relevant to the movement.
Quantity tab
| Field | Mandatory? | What & why |
|---|---|---|
| Qty in Unit of Entry | ✅ | How much is moving (e.g. 25). For a GR you can enter less than the PO (partial delivery). |
| Unit of Entry | auto | The unit (TO, EA…). Defaults from the material's base unit. |
Where tab — the most-used tab
| Field | Mandatory? | What & why |
|---|---|---|
| Movement Type | ✅ | The 3-digit code (also in the top bar). Confirms the instruction for this line. |
| Plant | ✅ | Which plant the stock belongs to (e.g. PK01). |
| Storage Location | ✅ (for stock materials) | Which store the stock lands in / leaves from (RAWM, WIPS, FNGD). For a transfer (311) you set both a source and a destination SLoc. ⚠️ The material must be extended to that SLoc first (MMSC) or you get "SLoc does not exist" — see errors. |
| Stock Type | ✅ (defaults Unrestricted) | Unrestricted / Quality inspection / Blocked — see section 6. |
| Batch | ✅ if material is batch-managed | Which batch/lot (e.g. a heat number for steel). Only appears for batch-managed materials. |
| Reason for Movement | ○ / ✅ if configured | Why the movement happened (e.g. "damaged" for a scrap/return). Often made mandatory for returns & scrapping for audit. |
| Goods Recipient / Unloading Point | ○ optional | Free text — who receives it / where to unload. |
Purchase Order tab (GR against a PO)
| Field | Mandatory? | What & why |
|---|---|---|
| Purchase Order / Item | ✅ (when Reference = PO) | The PO number + line you're receiving against. SAP pulls material, qty, plant from it. |
| "Delivery Completed" flag | ○ optional | Tick to say "no more deliveries expected on this PO line" even if short-delivered. |
Account Assignment tab (issues & account-assigned POs)
| Field | When it appears | What & why |
|---|---|---|
| Cost Center | GI to cost center (201) | Which department's budget the cost charges to (e.g. PKKHI-PROD). |
| Order | GI to production order (261) | The production order the cost collects on (e.g. 2000000). |
| WBS Element | project procurement (221/P) | The project task the cost rolls up to. |
| Asset | asset GR (acct assignment A) | The asset master being capitalised. |
| G/L Account | non-stock / account-assigned | The expense account the cost posts to. |
Other tabs (only when relevant)
| Tab | Used for |
|---|---|
| Batch | Maintain batch characteristics (production date, shelf life) for batch-managed materials. |
| Serial Numbers | Materials tracked by individual serial number (e.g. machines, IT). |
| Partner | Vendor/customer partner on the movement (e.g. subcontractor). |
6 · Stock types & special stock
Stock type = the condition the stock is in. Same material, three buckets:
| Stock type | Meaning | Can you use/sell it? |
|---|---|---|
| Unrestricted-use | Good, available | ✅ yes |
| Quality inspection | Held pending QM check | ❌ locked until released (mvt 321 → unrestricted) |
| Blocked | Quarantined (e.g. damaged) | ❌ locked (mvt 343/344 to move in/out) |
Special stock = stock that isn't simply "yours in your store." It carries a special-stock indicator and is tracked separately:
| Indicator | Special stock | Plain meaning |
|---|---|---|
| K | Consignment | Vendor's stock sitting in your store — you only pay when you use it |
| O | Subcontracting | Your components sitting at a subcontractor's site |
| E | Sales-order stock | Made/bought for one specific customer order |
| Q | Project stock | Reserved for a specific project (WBS) |
| P | Pipeline | Drawn as needed from a pipe/grid (gas, water) — never "stored" |
7 · Movement lookup — what to pick for each
| Movement | Action | Reference | When & why | Scenario |
|---|---|---|---|---|
| 101 GR from PO | Goods Receipt | Purchase Order | Receive bought goods | 1 |
| 101 GR from production | Goods Receipt | Order | Receive the finished product off a production order | PP |
| 122 return to vendor | Return Delivery | Material Document | Send back a bad delivery (before invoice) | 2 |
| 161 return via return PO | Goods Issue | Purchase Order | Return against a PO flagged "Returns" | 2 |
| 201 GI to cost center | Goods Issue | Other | Consume to a department — type it | 3.1 |
| 261 GI to production order | Goods Issue | Order | Issue components onto a production order | 3.2 |
| 311 transfer SLoc → SLoc | Transfer Posting | Other | Move stock between stores, same plant | 3.3 |
| 309 material → material | Transfer Posting | Other | Reclassify one material code into another | 3.4 |
| 301 plant → plant | Transfer Posting | Other | Move stock directly between plants | 3 |
| 321 quality → unrestricted | Transfer Posting | Other | Release stock after a QM check passes | — |
| 551 scrapping | Goods Issue | Other | Write off damaged/obsolete stock | — |
| 561 initial stock entry | Goods Receipt | Other | Load opening stock (no PO) — handy to give a test material some stock | — |
| 541 GI to subcontractor | Transfer Posting | Other | Provide components to a subcontractor | 9 |
8 · After "Other" — the account-assignment question
When there's no reference document, an issue still needs to know where the cost goes. On the line's Account Assignment tab pick the object that matches:
| Movement | Account assignment | Example |
|---|---|---|
| 201 to cost center | Cost Center | PKKHI-PROD |
| 261 to order | Order | 2000000 |
| 221 to project | WBS Element | a project WBS |
| 311/309 transfers | none — just from/to SLoc or material | — |
9 · What's mandatory, per scenario
| Movement | Must fill | Optional / not needed |
|---|---|---|
| 101 GR from PO | PO #, posting date, SLoc, (batch if managed) | delivery note, doc header text |
| 201 GI to cost center | Cost center, material, qty, plant, SLoc | no reference doc, no batch unless managed |
| 261 GI to order | Order #, qty, plant, SLoc | RM-IRON-01 auto-pulled if in the order |
| 311 SLoc transfer | From + To storage location, material, qty, plant | no account assignment, no FI doc |
| 309 material → material | From + To material (both must exist), qty, plant, SLoc | — |
| 122 return to vendor | reference material document, qty, often reason for movement | — |
| 551 scrapping | material, qty, SLoc, cost center or reason | — |
10 · What you can customize (and why)
MIGO's behaviour comes from the movement type configuration — you rarely change it, but a senior MM consultant should know what's adjustable:
| Setting | T-code | What it controls / why change it |
|---|---|---|
| Movement type setup | OMJJ | The master config of a movement type: which stock type it touches, whether it updates quantity & value, the account grouping (the GBB modifier OBYC uses), field selection (which fields are shown / mandatory / hidden), and "Allowed Transactions" (whether the movement is permitted in MIGO at all — the fix for the "movement type not allowed" error). |
| Reasons for movement | OMBS | Define the reason codes (damaged, expired…) and make them mandatory for scrapping/returns — for audit trails. |
| Tolerances for GR | OMC0 | How much over/under a PO quantity a goods receipt may post before it warns or blocks. |
| GR/GI slips (printing) | OMB5 / NACE | Whether and how goods slips print. |
| Your MIGO defaults | (MIGO → Settings → Default Values) | Per-user defaults: your usual plant, SLoc, "propose all items OK" — speeds up daily work, affects no one else. |
11 · Common errors & fixes
| Message | Cause | Fix |
|---|---|---|
| "Deficit of stock …" | Not enough unrestricted stock at that plant/SLoc | Check stock (MMBE); receive/transfer some first, or post to the SLoc that has it |
| "Material … plant … SLoc does not exist" | The material has no storage-location view (MARD) for that store — common on a 311 transfer to a new SLoc | Extend it: MMSC → material + plant → add the SLoc → Save (or MM01 "Plant data/stor. 1" view). Auto-create at movements via OMB3. |
| "Movement type X not allowed" | OMJJ "Allowed Transactions" doesn't list MIGO for that movement | OMJJ → movement → Allowed Transactions → add MIGO (this was the M7 873 fix in Scenario 2) |
| "Posting period not open" | The posting date's period is closed | Open it (MMPV/OB52) or use a date in an open period |
| "Account determination … not possible" | OBYC has no G/L for that valuation class + transaction key | OBYC → add the G/L (see Accounting 101 → OBYC) |
| Order "not permitted for goods movement" | The production order isn't released | Release it (CO02 → green flag) before the 261 |
12 · Verify what you posted
- Material document: MIGO → Action Display · Reference Material Document → enter the number; or MB51 (list), MB59.
- Accounting document (the Dr/Cr): in MIGO Display → Doc. info tab → FI Documents; or FB03; or FBL3N on the G/Ls (e.g. 300000/400000). (MB03 is obsolete in S/4HANA.)
- Stock: MMBE (stock overview) or MB52 — see the quantity move between SLocs / stock types.
- Cost landed where? KSB1 (cost center) or KOB1 (order).
13 · Shortcuts & cancellation
The classic single-purpose codes pre-set the Action, so you only enter the movement type + lines:
| T-code | Pre-set action | Use for |
|---|---|---|
| MB1A | Goods Issue | 201, 261, 551 |
| MB1B | Transfer Posting | 311, 309, 301 |
| MB1C | Other Goods Receipts | 561 initial stock, 501 |
| MB31 | GR for production order | 101 from a production order |