Scenario 1 — Stock Procurement (The Basic P2P Cycle)

FOUNDATION ★☆☆☆☆ ⏱️ ~2 hours ME51N → ME21N → MIGO → MIRO → F-53
← Back
All 26 Scenarios (Hub)
Next →
Scenario 2: Return to Vendor

📊 Business Case — When & Why You Use This

Stock procurement is how a company buys physical material and puts it into its own warehouse as inventory — to be consumed in production or sold later. It is the single most common purchasing process in any manufacturing or trading business, and the master pattern every other scenario in this hub extends.

🕐 When to use it

You are buying a stockable material (raw material, packaging, trading goods) that should sit in inventory before it's used. Material type ROH/HALB/FERT, valuated, with a material master.

❓ Why it matters

It links MM ↔ FI automatically: every goods movement posts the right G/L accounts with no manual journal entry. Master this and you understand 80% of SAP procurement.

👤 Who triggers it

MRP, production planning, or a storekeeper raises the need → buyer converts to a PO → warehouse receives → AP pays. Four departments, one connected chain.

🔁 How often

The everyday case — the majority of all purchase orders in a make-or-trade business. If you only learn one scenario, learn this one cold.

📈 Contrast — when you would NOT use this
If the purchase is consumed immediately and never stocked (a service, office supplies charged straight to a department, a machine capitalised as an asset), you use account-assigned procurement instead (Scenarios 4–6) — the cost goes to a cost center/asset, not to inventory. Stock procurement is specifically for things that become inventory first.

💰 Financial Impact — The Easy-Money Example

Forget the jargon for a second. Here is what this scenario does to the company's money, in plain terms, using our example: PakSteel buys 50 tons of iron ore from Mughal Steel for ₨12,500,000 on credit.

1️⃣ You receive the goods (GR)
Inventory ↑ ₨12.5M
Warehouse asset goes up. You now owe the money (a liability sits in a "GR/IR" holding account).
2️⃣ Vendor invoice arrives (IV)
Payable ↑ ₨12.5M
The holding account clears; now you formally owe Mughal Steel ₨12.5M (Trade Payables).
3️⃣ You pay (Payment)
Bank ↓ ₨12.5M
Cash leaves the bank, the debt is gone. You're square with the vendor.

Net effect on the balance sheet: the company swapped ₨12.5M of cash for ₨12.5M of iron ore inventory. Nothing hit the Profit & Loss yet — buying stock is not an expense. The expense (cost of goods) only appears later, when the iron is issued to production or sold (that's Scenario 3).

💡 Easy example of WHY payment terms matter (the ₨250,000 lesson)
Our vendor uses payment terms 0003 = "2% discount if paid within 14 days, otherwise net in 30 days." So you have a choice: That ₨250,000 on one order is why finance teams obsess over payment terms — across thousands of POs it's millions. This is the real business reason the 0003 field on the vendor master is not just decoration.

🇵🇰 The Business Story (our running example)

PakSteel Karachi Factory (plant PK01) needs 50 tons of iron ore lump, Grade A, from local supplier Mughal Steel Industries (vendor MUGHAL21). The ore goes into the raw-material warehouse (storage location RAWM). Price ₨250,000/ton → order value ₨12,500,000. Payment terms 0003, input tax I0 (0%). Company code PSPK (PKR), purchasing org PKLO, purchasing group RMT.

🎯 What you'll learn

📋 Prerequisites

Before this scenario runs, the org structure and MM-FI integration must exist. If you built them via the Setup Guide, you're ready.

ItemQuick status check
CC PSPK fully configuredSE16N → T001 → row for BUKRS=PSPK
Plant PK01 assigned to PSPKT001W → PK01 with BUKRS=PSPK
Storage Location RAWM at PK01T001L → WERKS=PK01, LGORT=RAWM
Purch Org PKLO + assignmentsT024E, T024W rows
Purch Group RMTT024 → EKGRP=RMT
OBYC entries for valuation class 3000T030 → BSX, WRX, GBB rows for VKO=0001, BKLAS=3000
⚙️ New config needed for this scenario
None beyond Setup Guide Steps 1–15. This is purely transactional. But note: your first goods receipt in a brand-new company code will trip a chain of one-time config gates (Material Ledger, tolerances, number ranges). That's expected — see Setup Guide Step 1O + 1P (the "4 Gates" + 9-Gate Gauntlet) and fix them once, up front.

📦 Master Data Setup

📦 Create these two master records first — full field-by-field guides

Both moved to their own pages so any scenario can link to them. Then maintain the price link below.

Link them — Create Info Record · ME11 · Material ↔ Vendor + price

What: The agreement "Vendor X sells Material Y to Plant Z at price P." PR/PO then auto-suggests the price. Optional but standard.

  1. Run ME11 → Vendor MUGHAL21 · Material RM-IRON-01 · Purch Org PKLO · Plant PK01 · Standard
  2. Purch Org Data 1: Net Price 250000 · Currency PKR · Validity to 31.12.9999 → Save

Verify: SE16N → EINA + EINE populated.

🔄 Transaction Flow — The 5 Steps

Step 1 — Purchase Requisition · ME51N

What: Internal request "I need this material." No vendor commitment yet, no FI posting.

  1. Run ME51N → Doc Type NB
  2. Line 1: Material RM-IRON-01 · Qty 50 TO · Delivery date today+14 · Plant PK01 · Sto Loc RAWM · Purch Grp RMT
  3. Item Detail → Source of Supply: vendor MUGHAL21 (info record suggests 250000/TO) → Save → PR # e.g. 10000123

Tables: EBAN (+ EBKN if account-assigned).

Step 2 — Purchase Order · ME21N · adopt the PR (don't re-type!)

What: The legal commitment to the vendor.

🎯 If you already created a PR, do NOT re-enter Plant/Purch Org/Vendor/Material in the PO
Use the Adopt PR flow — every PR field auto-copies. You only verify and add PO-specific fields (Tax Code, exact delivery date).

✅ Flow A — Convert PR → PO (recommended)

  1. Run ME21N — don't type anything yet
  2. Most reliable method (worked in our IDES): in the PO item table scroll right to the "Purchase Requisition" column → type the PR number → Enter → all fields auto-copy. (Alternative: Document Overview On → Purchase Requisitions → drag the item across.)
  3. SAP auto-copies: Material, Plant, Storage Loc, Qty, UOM, Vendor, Purch Org, Purch Group, Net Price, Material Group, Delivery Date, Currency.
  4. You only add/verify: Tax Code I0 (Input 0% — ⚠️ V0 did NOT exist in our IDES; press F4 to see your codes, "I" prefix = input tax for purchases) · Header → Org Data CC PSPK · Delivery/Invoice tab payment terms (auto from vendor)
  5. Check → Save → PO # e.g. 4500000123. PR now shows "PO created."

⚠️ Flow B — Direct PO (no PR)

Only for urgent/low-value/recurring buys. Enter everything manually: Doc Type NB · Vendor MUGHAL21 · Org Data (PKLO/RMT/PSPK) · Item (RM-IRON-01, 50 TO, 250000, PK01, RAWM) · Invoice tab Tax I0 → Check → Save. No PR-PO audit link.

Tables: EKKO + EKPO + EKET + EKPV (Flow A link) + EKBE. No accounting entry yet — a PO is a commitment, not a posting.

Step 3 — Goods Receipt · MIGO · movement 101 · first FI entry

What: Vendor delivers; you post the ore into inventory. The first accounting entry hits here.

⚠️ First GR in a brand-new company code? Expect one-time config errors (ML not productive → T169P → VP tolerance → G/L not in CC → number range). Normal — each a 2-minute fix. Walkthrough: Setup Guide Step 1O + 1P. Fix all up front and MIGO posts first try.
  1. Run MIGO → Goods Receipt · Purchase Order · PO 4500000123
  2. Movement Type 101 (auto) · Header: Delivery Note (any text) · Posting Date today
  3. Item: confirm Qty 50 TO, Sto Loc RAWM, tick Item OK → Check → Post
  4. Material Doc # + FI Doc # generated
Posting KeyG/LDescriptionAmount (PKR)
89 Inventory Dr300000Raw Material Inventory (BSX, VKL 3000)Dr 12,500,000
96 GR/IR Cr191100GR/IR Clearing (WRX)Cr 12,500,000

Tables: MSEG + MKPF + BKPF/BSEG + MBEW. Verify: MMBE → 50 TO unrestricted at PK01/RAWM.

Step 4 — Invoice Receipt · MIRO · 3-way match

What: Vendor invoice verified against PO + GR (qty/price). Posting creates the vendor liability.

  1. Run MIRO → Invoice · Invoice Date · Posting Date today · Reference (vendor inv #)
  2. Amount 12,500,000 · PO Reference 4500000123 → Enter
  3. System pulls the GR line (50 TO @ 250,000) · Balance must be 0.00 🟢 → Post → Invoice doc #
Posting KeyG/LDescriptionAmount (PKR)
86 GR/IR Dr191100GR/IR Clearing (clears the GR credit)Dr 12,500,000
31 Vendor Cr160000Trade Payables (via recon account)Cr 12,500,000

The GR/IR test: after GR + IV the account nets to 0. Non-zero = qty/price mismatch. Tables: RBKP + RSEG + BKPF/BSEG.

Step 5 — Vendor Payment · F-53 (manual) or F110 (run)

What: Pay the vendor and clear the AP liability.

  1. Run F-53 → Doc/Posting Date today · CC PSPK · Currency PKR
  2. Bank Data: G/L 113100 · Amount 12,500,000 (or 12,250,000 if taking the 2% early-payment discount)
  3. Open Item Selection: Vendor MUGHAL21Process Open Items → select the invoice → Amount Entered = Assigned → Post
Posting KeyG/LDescriptionAmount (PKR)
25 Vendor Dr160000Trade Payables (clears the credit)Dr 12,500,000
50 Bank Cr113100Bank Main AccountCr 12,250,000
50 Discount Cr276000Cash Discount Received (only if paid ≤14 days)Cr 250,000

If you pay after 14 days, drop the discount row and Bank = full 12,500,000. Tables: BKPF/BSEG + BSAK (cleared items).

Step 6 — Trace the whole document flow · ME23N · FBL1N · FB03

What: Prove every link in the chain and that the vendor is fully cleared — a daily consultant skill.

  1. PO History hub: ME23N → item → tab Purchase Order History → see WE (GR) + RE-L (invoice); click any to drill to its FI doc.
  2. Prove vendor is clear: FBL1N → MUGHAL21 → "Cleared items": invoice (RE) + payment (KZ) share the same Clearing Document (AUGBL). "Open items" → empty = fully paid.
  3. Relationship Browser: FB03 → any FI doc → Environment → Relationship Browser → the whole document family tree.

💰 Complete Accounting Trail (T-account view)

G/L AccountGR (101)IV (MIRO)Payment (F-53)Net
300000 Raw Material InventoryDr 12,500,000Dr 12,500,000
191100 GR/IR ClearingCr 12,500,000Dr 12,500,0000 ✓
160000 Trade PayablesCr 12,500,000Dr 12,500,0000 ✓
113100 BankCr 12,500,000Cr 12,500,000

Net: Inventory ↑ ₨12.5M · Bank ↓ ₨12.5M · GR/IR clears to 0 (success indicator) · Vendor clears to 0 (paid). (Taking the 2% discount shifts ₨250,000 from Bank to G/L 276000 income.)

🚨 Common Errors & Fixes

Hit an error not listed here? Search the full Troubleshooting Command Center.

StepErrorRoot causeFix
MM01Valuation class 3000 not allowed for ROHOMSK configOMSK → ROH → allow 3000–3999
ME21NNet price is 0.00No info recordME11, or enter price in PO line
MIGOAccount determination INT BSX VKL 3000 not possibleOBYC missingOBYC → BSX → add VKL 3000 → G/L 300000
MIGOML not productive for valuation area PSPKMaterial Ledger not activatedOMX2/OMX3 + CKMSTART — Step 1O
MIGOMaintain tolerance limits for key VPOMC0 missingOMC0 → VP for PSPK — details
MIGOPosting period not openOB52OB52 → open period for variant PSPK
MIROBalance not zeroQty/price mismatchCheck GR qty vs invoice qty, PO price vs invoice price
F-53No open items foundWrong vendor / already paidFBL1N → check open status

✅ Verification — Confirm Scenario 1 Worked

#T-codeCheck
1ME53NPR status = Completed (converted to PO)
2ME23NPO status = Delivered + Invoiced
3MB51Mvt 101 entry for RM-IRON-01 at PK01/RAWM
4MMBE50 TO unrestricted at PK01/RAWM
5MIR4Invoice posted, balance 0
6FBL1NVendor MUGHAL21 → no open items (cleared)
7FAGLB03G/L 191100 GR/IR → net 0 for this PO
8FBL3NG/L 300000 → debit of 12,500,000 visible

🎓 Interview-Ready Answers

Q: Walk me through the standard P2P cycle.

PR (internal request, ME51N) → PO (commitment, ME21N, no FI hit) → GR (101, MIGO — Inventory Dr, GR/IR Cr) → IV (MIRO — GR/IR Dr, Vendor Cr; 3-way match) → Payment (F-53/F110 — Vendor Dr, Bank Cr). GR/IR clears across GR + IV; non-zero means a qty or price mismatch.

Q: Difference between V and S price control?

V = Moving Average — valuation updates with every GR at actual price; used for raw materials with varying prices. S = Standard Price — fixed in the master, variance posts to a separate account; used for finished goods for stable costing.

Q: How does GR auto-determine G/L 300000 with no manual entry?

Material's Valuation Class (3000) + Movement Type (101) + Transaction Key (BSX) + Chart of Accounts (INT) → OBYC table lookup → G/L 300000. Pure config.

Q: Why is buying stock not an expense?

It's an asset swap — cash (or a payable) becomes inventory, both on the balance sheet. The P&L expense (consumption / COGS) only posts later when the material is issued to production or sold.

← Back
All 26 Scenarios (Hub)
Next →
Scenario 2: Return to Vendor