SAP Materials Management (MM) Skill
0. Environment Intake and Safety Contract
Before diagnosing or recommending an MM action, collect:
- Release: ECC 6.0 EhP or S/4HANA release year
- Deployment: On-Premise, RISE/Private Cloud, or Public Cloud
- Industry/process: manufacturing, retail, project procurement, services, or regulated industry
- Scope keys: user-provided purchasing organization, plant, storage location, PO, and material
- Evidence: exact message class/number, T-code or Fiori app, timestamp, last normal document
- Control state: posting period, approval status, GR-based IV flag, and whether QM/batch/serial control applies
Never invent company codes, G/L accounts, cost centers, plants, purchasing organizations, or tolerance
values. If environment context is missing, ask up to four grouped questions and still provide clearly
labelled provisional read-only checks. Configuration changes require a Transport Request (TR), a
representative test in DEV/QA, UAT evidence, and a rollback plan. Never edit production tables with
SE16N.
1. Procurement Cycle
PR (ME51N) → RFQ (ME41) → Quotation (ME47) → PO (ME21N)
→ GR (MIGO 101) → IV (MIRO) → Payment (F110)
Shortcut flows:
- Without RFQ: PR → PO (ME58 — auto-convert PR to PO)
- Consignment: PO item cat K → GR → settlement (MRKO)
- Subcontracting: PO item cat L → GI components → GR finished
2. Purchase Order Issues
Account assignment errors
- Category K (cost center): cost center must exist and be active
- Category A (asset): asset master must exist, depreciation area active
- Category F (internal order): order must be in Released status
- Category P (project/WBS): WBS element must be open for costs
Tolerance check (MIRO)
- OMR6 → tolerance keys: BD (amount) / VP (moving avg price variance) / PP (price)
- Tolerance = percentage + absolute amount — both must be within limits
GR-based invoice verification
- PO item → Invoice tab → GR-Based IV flag = X
- With flag: MIRO only possible after GR; invoice quantity = GR quantity
3. Goods Receipt (MIGO)
Key Movement Types
| MVT |
Description |
Notes |
| 101 |
GR for purchase order |
Standard GR |
| 102 |
Reversal of 101 GR |
Reference the original GR document |
| 122 |
Return delivery to vendor |
With return PO |
| 161 |
GR for return PO |
For returns with credit |
| 201 |
GI to cost center |
Free goods issue |
| 261 |
GI for production order |
Component consumption |
| 301 |
Transfer plant to plant (1 step) |
Same company code |
| 311 |
Transfer storage location to storage location |
Same plant |
| 551 |
Scrapping |
Write-off to loss account |
Account Determination (OBYC)
- Transaction key BSX: inventory posting (stock G/L account)
- Transaction key WRX: GR/IR clearing account
- Transaction key PRD: price difference account (standard price)
- Transaction key GBB: goods issue / offsetting accounts
- Valuation class (material master → Accounting 1) links material to G/L accounts
4. Invoice Verification (MIRO)
Blocking reasons
| Code |
Reason |
Release T-code |
| R |
Manual block |
MR02 / MRBR |
| A |
Amount exceeds tolerance |
MRBR (automatic) |
| D |
Date issue |
MRBR |
| Q |
Quantity variance |
MRBR |
| P |
Price variance |
MRBR |
Parked invoices: MIR7에서 park/complete 상태를 구분하고 MIR4에서 문서와 후속 상태를 조회한다.
Blocked invoice release는 parked invoice 처리와 섞지 말고 MRBR의 blocking reason 기준으로 별도 진단한다.
Credit memos: MIRO → transaction = Credit Memo → reverses original invoice logic
5. Inventory Management
Physical inventory process
- MI01: create physical inventory document → print count sheet
- MI04: enter count results (MI09 is a separate count-without-document process)
- MI07: post inventory differences → generates MM document + FI document
- MI20: list of inventory differences for review
Key reports
| T-code |
Report |
| MMBE |
Stock overview (all stock types) |
| MB52 |
Warehouse stocks of material |
| MB53 |
Plant stock availability |
| MB5B |
Stocks for posting date |
| MB51 |
Material document list |
6. Material Master Key Views
| View |
Key Fields |
| MRP 1 |
MRP type, MRP controller, lot size procedure |
| MRP 2 |
Planned delivery time, safety stock |
| MRP 3 |
Strategy group (make-to-stock vs make-to-order) |
| MRP 4 |
BOM explosion, individual/collective requirements |
| Accounting 1 |
Valuation class, price control (S/V), standard/moving avg price |
| Purchasing |
Purchasing group, info update, GR processing time |
| Plant Data/Stor.1 |
Storage conditions, shelf life, batch management |
Extend to new plant: MM01 → select org levels → plant / storage location
7. MM Period Close
- MMPV: close MM posting period — FI 오픈 기간과 인터페이스 cut-off를 대조하고 회사의 승인된 마감 순서에 맞춰 실행
- MMRV: allow posting to previous MM period (emergency use only — document reason)
- Check open GR/IR before closing: MB5S → identify items needing MR11
8. S/4HANA MM Differences
| Topic |
ECC |
S/4HANA |
| Material document persistence |
MKPF / MSEG |
MATDOC; compatibility access depends on release |
| Read model |
Classic tables/reports |
Released CDS views and Fiori analytics preferred for extensions |
| Supplier master |
Vendor master transactions and LFA* data |
Business Partner with CVI; validate conversion status |
| Material Ledger |
Optional by valuation area |
Mandatory foundation; Actual Costing remains optional |
| MRP run |
MD01/classic MRP |
MD01N MRP Live plus supported classic functions |
| Purchase order history |
EKBE |
EKBE remains relevant; released CDS/API is preferred for clean-core extensions |
9. Operator Action Map — T-code + Menu Path
Every recommendation must pair the executable surface with its menu path. Fiori-only actions must say
T-code: none rather than inventing a GUI code.
| Action |
T-code / app |
Menu path |
| Display PO and history |
ME23N |
SAP Easy Access > Logistics > Materials Management > Purchasing > Purchase Order > Display |
| Change PO after approval |
ME22N |
SAP Easy Access > Logistics > Materials Management > Purchasing > Purchase Order > Change |
| List POs by document |
ME2N |
SAP Easy Access > Logistics > Materials Management > Purchasing > Purchase Order > List Displays > By PO Number |
| Post or reverse goods movement |
MIGO |
SAP Easy Access > Logistics > Materials Management > Inventory Management > Goods Movement > Goods Movement |
| Enter logistics invoice |
MIRO |
SAP Easy Access > Logistics > Materials Management > Logistics Invoice Verification > Document Entry > Enter Invoice |
| Display logistics invoice |
MIR4 |
SAP Easy Access > Logistics > Materials Management > Logistics Invoice Verification > Further Processing > Display Invoice Document |
| Review blocked invoices |
MRBR |
SAP Easy Access > Logistics > Materials Management > Logistics Invoice Verification > Further Processing > Release Blocked Invoices |
| Display material master |
MM03 |
SAP Easy Access > Logistics > Materials Management > Material Master > Material > Display > Display Current |
| Maintain purchasing info record |
ME11 |
SAP Easy Access > Logistics > Materials Management > Purchasing > Master Data > Info Record > Create |
| Display material documents |
MB51 |
SAP Easy Access > Logistics > Materials Management > Inventory Management > Environment > List Displays > Material Documents |
| Display stock overview |
MMBE |
SAP Easy Access > Logistics > Materials Management > Inventory Management > Environment > Stock > Stock Overview |
| Create physical inventory document |
MI01 |
SAP Easy Access > Logistics > Materials Management > Physical Inventory > Physical Inventory Document > Create |
| Enter physical count |
MI04 |
SAP Easy Access > Logistics > Materials Management > Physical Inventory > Count > Enter |
| Review count differences |
MI20 |
SAP Easy Access > Logistics > Materials Management > Physical Inventory > Difference > Difference List |
| Post count differences |
MI07 |
SAP Easy Access > Logistics > Materials Management > Physical Inventory > Difference > Post |
| Review GR/IR candidates |
MR11 |
SAP Easy Access > Logistics > Materials Management > Logistics Invoice Verification > GR/IR Account Maintenance > Maintain |
| Close MM period |
MMPV |
SAP Easy Access > Logistics > Materials Management > Material Master > Other > Close Period |
For S/4HANA Cloud Public Edition, verify the released Fiori app and business role in the user's tenant.
Classic T-code availability must not be assumed.
10. PO → GR → IR Evidence Chain
Treat the document flow as four independent gates. A green upstream status does not prove that the
next gate completed.
Gate A: PR/source/master data
→ Gate B: PO creation and approval
→ Gate C: GR and material/FI documents
→ Gate D: IR, three-way match, payment block
10.1 Gate A — PR, Source, and Master Data
Start with read-only master data checks:
[T-code: ME53N | menu: Logistics > Materials Management > Purchasing > Purchase Requisition > Display]
— confirm requested quantity, delivery date, account assignment, source assignment, and processing status.
[T-code: MM03 | menu: Logistics > Materials Management > Material Master > Material > Display > Display Current]
— confirm base UoM, purchasing/MRP views, plant extension, valuation class, batch and serial controls.
[T-code: ME23N | menu: Logistics > Materials Management > Purchasing > Purchase Order > Display]
— verify which source and master attributes were copied to the created PO.
Use the following evidence fields; do not modify them directly:
| Object |
Table.Field |
Diagnostic meaning |
| PR |
EBAN-BANFN, EBAN-BNFPO |
PR identity |
| PR |
EBAN-MATNR, EBAN-WERKS, EBAN-MENGE |
Material, plant, requested quantity |
| Material |
MARA-MTART, MARA-MEINS |
Material type and base UoM |
| Plant data |
MARC-WERKS, MARC-EKGRP, MARC-DISMM |
Plant extension, purchasing group, MRP type |
| Valuation |
MBEW-BKLAS, MBEW-VPRSV |
Valuation class and price control |
| UoM conversion |
MARM-UMREZ, MARM-UMREN |
Alternative/base UoM conversion |
| Info record |
EINA-MATNR, EINA-LIFNR, EINE-EKORG |
Supplier-material and purchasing-org segment |
| Source list |
EORD-MATNR, EORD-WERKS, EORD-VDATU, EORD-BDATU |
Source validity interval |
Hypothesis A1 — source is invalid for the requested date.
- Supporting evidence: no valid
EORD interval, or the PO source differs from the approved source.
- Falsification: a valid fixed/allowed source covers the requested date and the same source is copied to the PO.
- Fix: correct source master data through the approved master-data workflow, then recreate or deliberately
update the affected document in DEV/QA first.
- Rollback: restore the previous source validity record and document selection using the approved change log;
do not delete source records from tables.
Hypothesis A2 — UoM conversion causes an apparent quantity mismatch.
- Supporting evidence: PO order unit differs from
MARA-MEINS, and MARM conversion does not match the supplier pack.
- Falsification: order/base quantities reconcile exactly with
MARM-UMREZ/UMREN.
- Fix: correct the governed UoM master or the document order unit after impact review.
- Rollback: revert the master/document change and re-run the same quantity comparison.
10.2 Gate B — PO Content and Approval
At [T-code: ME23N | menu: Logistics > Materials Management > Purchasing > Purchase Order > Display],
inspect header, item, schedule line, account assignment, conditions, confirmations, and PO history.
| Object |
Table.Field |
Check |
| Header |
EKKO-BSART, EKKO-LIFNR, EKKO-EKORG, EKKO-BUKRS |
Document type, supplier, org assignments |
| Item |
EKPO-MATNR, EKPO-WERKS, EKPO-MENGE, EKPO-NETPR |
Material, plant, quantity, PO price |
| Invoice controls |
EKPO-WEBRE, EKPO-EREKZ |
GR-based IV and final-invoice indicator |
| Delivery control |
EKPO-ELIKZ |
Delivery-completed indicator |
| Schedule |
EKET-EINDT, EKET-MENGE, EKET-WEMNG |
Due date, scheduled and GR quantities |
| Classic release |
EKKO-FRGGR, EKKO-FRGSX, EKKO-FRGKE |
ECC/classic strategy state |
ECC classic release
Use ME23N read-only status and release-strategy fields to determine whether the strategy was determined,
which release remains, and whether a value/characteristic change reset the status. Do not bypass the
strategy by changing classification or document value in production.
S/4HANA flexible workflow
Use [T-code: none | menu: Fiori Launchpad > My Inbox] for the approver work item and
[T-code: none | menu: Fiori Launchpad > Manage Workflows for Purchase Orders] for workflow definition.
Compare start-condition evaluation, recipient determination, work-item status, and document status.
Workflow configuration changes require a governed transport and test workflow with a non-production PO.
Hypothesis B1 — PO is blocked by approval, not by GR processing.
- Supporting evidence:
ME23N shows incomplete release or My Inbox has an open/failed work item.
- Falsification: the PO is fully released and no active workflow item remains.
- Fix: correct agent/recipient or release configuration in DEV, transport to QA, test approve/reject paths,
and then let the authorized approver decide the production work item.
- Rollback: restore the prior workflow/rule version and verify that new test POs route as before.
Hypothesis B2 — delivery or final-invoice completion was set prematurely.
- Supporting evidence:
EKPO-ELIKZ or EKPO-EREKZ is set while open business quantity remains.
- Falsification: completion indicators are blank or justified and PO history fully reconciles.
- Fix: have the document owner correct the indicator through
ME22N after PO-history review.
- Rollback: restore the captured original indicator and revalidate open quantity; never change
EKPO directly.
10.3 Gate C — MIGO Goods Receipt
Before posting, use the check function in [T-code: MIGO | menu: Logistics > Materials Management > Inventory Management > Goods Movement > Goods Movement]. Validate reference document, movement type,
posting/document dates, quantity/UoM, plant/storage location, stock type, batch/serial, and item OK status.
Evidence sequence:
ME23N PO History — identify the exact GR and any reversal.
MB51 — compare material document number, year, movement type, quantity, posting date, and user.
MMBE or MB52 — confirm current stock category and location after posting.
- FI document display, when generated, must be reviewed with the FI consultant; MM document success alone
does not prove correct account determination.
ECC evidence
- Header:
MKPF-MBLNR, MKPF-MJAHR, MKPF-BUDAT, MKPF-CPUDT
- Item:
MSEG-MATNR, MSEG-WERKS, MSEG-LGORT, MSEG-BWART, MSEG-MENGE
S/4HANA evidence
- Primary persistence:
MATDOC-MBLNR, MATDOC-MJAHR, MATDOC-MATNR, MATDOC-WERKS,
MATDOC-LGORT, MATDOC-BWART, MATDOC-MENGE, MATDOC-BUDAT_MKPF
- Use released CDS/API surfaces for custom extensions; do not build a new direct-update process on
MATDOC.
Hypothesis C1 — no eligible open PO quantity exists.
- Supporting evidence: schedule/PO history shows full GR, reversal chain changes the net quantity, or
EKPO-ELIKZ is set.
- Falsification: open PO quantity is positive, the item is released, and no completion block applies.
- Fix: correct the business document or reference the correct PO item; do not post an unreferenced GR to mask it.
- Rollback: reverse only the identified incorrect material document via
MIGO with reference after warehouse/FI approval.
Hypothesis C2 — account determination blocks posting.
- Supporting evidence: message identifies transaction key/valuation class and
MBEW-BKLAS has no matching
governed OBYC entry.
- Falsification: valuation class and all required transaction-key mappings exist for the valuation area.
- Fix:
[T-code: OBYC | menu: SPRO > Materials Management > Valuation and Account Assignment > Account Determination > Configure Automatic Postings]; configure in DEV, attach TR, test MIGO Check,
and validate the generated FI document in QA.
- Rollback: transport the captured previous mapping back through the landscape and repeat the posting simulation.
Hypothesis C3 — technical update or authorization failed after user input.
- Check
[T-code: SM13 | menu: SAP Easy Access > Tools > Administration > Monitor > Update] for update failure.
- Check
[T-code: ST22 | menu: SAP Easy Access > Tools > ABAP Workbench > Test > Dump Analysis] for a dump.
- Check
[T-code: SU53 | menu: SAP GUI > System > Utilities > Display Authorization Check] immediately
after an authorization error.
- Falsification: no matching update record/dump exists and the failed authorization object is not reproduced.
- Fix/Rollback: delegate code defects to ABAP/BASIS and role changes to security; test the narrowest correction
in QA and retain the prior transport/version for rollback.
10.4 Gate D — MIRO Invoice and Three-Way Match
At [T-code: MIRO | menu: Logistics > Materials Management > Logistics Invoice Verification > Document Entry > Enter Invoice], use Simulate before Post. Compare PO price/quantity, eligible GR,
invoice quantity/amount, tax, currency, exchange-rate date, planned delivery costs, and duplicate reference.
Read-only evidence:
| Object |
Table.Field |
Meaning |
| Invoice header |
RBKP-BELNR, RBKP-GJAHR, RBKP-BLDAT, RBKP-BUDAT |
Invoice identity and dates |
| External reference |
RBKP-XBLNR |
Duplicate-invoice comparison key |
| Invoice item |
RSEG-EBELN, RSEG-EBELP, RSEG-MENGE, RSEG-WRBTR |
PO reference, quantity, amount |
| PO history |
EKBE-EBELN, EKBE-EBELP, EKBE-VGABE, EKBE-MENGE |
GR/IR event chain |
| PO history value |
EKBE-WRBTR, EKBE-SHKZG, EKBE-BELNR, EKBE-GJAHR |
Value, sign, document reference |
Three-way match logic
- PO basis — agreed quantity, order unit, price conditions, tax and delivery-cost terms.
- GR basis — actual accepted quantity net of reversals/returns.
- IR basis — vendor invoice quantity and value assigned to the same PO item.
- Control —
EKPO-WEBRE decides whether invoice matching is tied to individual GR history;
OMR6 tolerance keys decide warning/block behavior for configured variance categories.
Do not describe three-way match as a single universal percentage. The applicable tolerance key, absolute
and percentage limits, GR-based IV flag, item type, and company policy all matter.
Hypothesis D1 — GR-based IV has no eligible GR quantity.
- Supporting evidence:
EKPO-WEBRE is set and EKBE shows no available GR after reversals/prior invoices.
- Falsification: an eligible unmatched GR exists for the same PO item and quantity.
- Fix: correct the GR/reversal sequence or invoice reference; do not clear the flag merely to post.
- Rollback: reverse only the incorrect test document and restore the original PO control if it was changed.
Hypothesis D2 — price or quantity variance exceeded configured tolerance.
- Supporting evidence: PO/GR/IR comparison reproduces the variance and
OMR6 shows the matching tolerance key.
- Falsification: recalculated variance is within both configured absolute and percentage limits.
- Fix: correct PO, GR, or invoice according to the commercial truth. Change
OMR6 only when policy itself
is approved for change, using DEV/QA, TR, and boundary tests below/at/above the threshold.
- Rollback: restore the prior tolerance configuration via controlled transport and rerun all boundary tests.
Hypothesis D3 — invoice is posted but payment-blocked.
- Supporting evidence:
MIR4 shows a posted document and block reason; MRBR lists it.
- Falsification: no invoice document exists, or the block is not present.
- Fix: resolve the underlying PO/GR/invoice variance first.
[T-code: MRBR | menu: Logistics > Materials Management > Logistics Invoice Verification > Further Processing > Release Blocked Invoices] is a
control step, not a substitute for root-cause correction.
- Rollback: do not mass-release. If a release was incorrect, follow the approved AP/payment-block restoration
process and verify the document in
MIR4 before payment selection.
11. GR/IR Reconciliation and Period-End
GR/IR is a timing and document-flow control account. A balance is not automatically an error.
11.1 Read-only candidate build
- ECC:
[T-code: MB5S | menu: Logistics > Materials Management > Inventory Management > Environment > Balance Sheet Valuation > GR/IR Balances] for PO-item candidates.
- S/4HANA:
[T-code: none | menu: Fiori Launchpad > Reconcile GR/IR Accounts] or the released
app available in the user's release; do not assume MB5S behavior is identical.
ME23N PO History — build the signed GR, reversal, IR, credit memo, and return sequence.
MIR4 and MB51 — open the source documents, not just the aggregate balance.
11.2 Root-cause buckets
| Balance pattern |
Likely business cause |
Falsification evidence |
| GR without IR |
Invoice not received, parked elsewhere, timing cutoff |
Matching posted IR exists against same PO item |
| IR without GR |
Invoice before receipt, missing reference, GR posted elsewhere |
Eligible signed GR exists and is matched |
| GR reversal after IR |
Return/cancellation sequence incomplete |
Net GR and net IR quantities/values reconcile |
| Small residual |
UoM, price, exchange rate, planned delivery cost |
Recalculation yields zero without clearing entry |
| Old open item |
PO completion/final invoice status not governed |
Business obligation is still valid and documented |
11.3 MR11 control
[T-code: MR11 | menu: Logistics > Materials Management > Logistics Invoice Verification > GR/IR Account Maintenance > Maintain] must always start with Test Run. Export the candidate list,
record selection parameters and cutoff date, obtain MM/FI/business-owner sign-off, then run the actual
posting only for confirmed no-obligation residuals.
Falsification: if an open invoice, return, dispute, or future delivery still exists, “stale residual” is
false and the item must not be cleared.
Rollback plan: before actual run, capture candidate PO item, amount, currency, generated document type,
and approvers. If an incorrect clearing is posted, stop further batches and use the release-supported,
auditable reversal procedure agreed by FI/MM; never repair GR/IR by table editing.
11.4 MM period close
Before [T-code: MMPV | menu: Logistics > Materials Management > Material Master > Other > Close Period]:
- reconcile late GR/IR and backdated warehouse documents;
- confirm FI posting-period coordination with the FI owner;
- confirm interfaces, physical inventory, and goods-movement queues are complete;
- reproduce the close in QA or use the release-supported check mode where available;
- record the current period and approved target period.
Period shift may not have a simple business rollback. Do not run MMPV in production until the recovery
procedure is documented and approved. Emergency previous-period posting is not a substitute for governance.
12. Inventory and Physical Inventory Diagnostics
12.1 Stock discrepancy ladder
[T-code: MMBE | menu: Logistics > Materials Management > Inventory Management > Environment > Stock > Stock Overview] — identify plant, storage location, batch, special stock, and stock type.
[T-code: MB52 | menu: Logistics > Materials Management > Inventory Management > Environment > Stock > Warehouse Stocks] — compare the selected organizational scope and key date assumptions.
[T-code: MB5B | menu: Logistics > Materials Management > Inventory Management > Environment > Stock > Stock for Posting Date] — reconstruct book stock at the cutoff date.
[T-code: MB51 | menu: Logistics > Materials Management > Inventory Management > Environment > List Displays > Material Documents] — trace receipts, issues, transfers, reversals, and posting dates.
Do not compare unrestricted stock in one report with total stock across quality/blocked/special categories in
another. Align unit, key date, plant, storage location, batch, special-stock indicator, and valuation scope first.
12.2 Physical inventory cycle
MI01 document and scope
→ count-sheet control / warehouse count
→ MI04 count entry
→ MI20 difference review and approval
→ MI07 difference posting
→ MB51/MMBE reconciliation
- Header evidence:
IKPF-IBLNR, IKPF-GJAHR, IKPF-BUDAT
- Item evidence:
ISEG-MATNR, ISEG-WERKS, ISEG-LGORT
- Material document evidence: ECC
MKPF/MSEG; S/4HANA MATDOC
Hypothesis P1 — scope mismatch, not count error.
- Supporting evidence: report and count document use different storage location, batch, or stock category.
- Falsification: all scope dimensions and UoM are identical.
- Fix: correct the count scope through the standard physical-inventory process before difference posting.
- Rollback: cancel/recreate only through the supported document flow and retain the audit trail.
Hypothesis P2 — cutoff movement caused the difference.
- Supporting evidence:
MB51 shows posting/document-date crossover around the count freeze.
- Falsification: no movement exists between freeze, count, and posting timestamps.
- Fix: reconcile the movement with warehouse evidence; do not “adjust” the count to force zero.
- Rollback: reverse an incorrect goods movement only with its source document and approvals.
Before MI07, there may be no safe generic Test Run in every release. Use MI20, peer approval, a
representative QA rehearsal, and captured before/after stock values. After posting, verify both the material
document and the accounting impact.
13. Configuration Routes with Test and Rollback
13.1 Invoice tolerances — OMR6
Path: [T-code: OMR6 | menu: SPRO > Materials Management > Logistics Invoice Verification > Invoice Block > Set Tolerance Limits].
- Change only an approved tolerance key for a user-provided company code.
- Test below, exactly at, and above both absolute and percentage boundaries.
- Include PO quantity, GR quantity, invoice quantity, currency, tax, and exchange-rate cases.
- Transport the change; do not tune production tolerance to release one invoice.
- Roll back by restoring the captured prior values in a new controlled transport and repeating boundary tests.
13.2 Automatic account determination — OBYC
Path: [T-code: OBYC | menu: SPRO > Materials Management > Valuation and Account Assignment > Account Determination > Configure Automatic Postings].
Evidence chain: movement type/account modifier → valuation grouping → valuation class (MBEW-BKLAS) →
transaction key (BSX, WRX, GBB, PRD) → user-provided G/L account.
Test at least one GR, reversal, consumption, and invoice variance relevant to the change. Validate MM and FI
documents. Roll back with the recorded previous mapping via TR; never replace a production G/L account
without Finance approval.
13.3 Movement types — OMJJ
Path: [T-code: OMJJ | menu: SPRO > Materials Management > Inventory Management and Physical Inventory > Movement Types > Copy, Change Movement Types].
Movement type changes affect quantity update, value update, screen selection, account grouping, reversal,
and downstream WM/EWM/QM integration. Clone and test only in DEV, include positive/reversal/return paths,
and transport after integrated UAT. Roll back with the prior configuration version; never modify the standard
movement type in production to solve one document.
14. ECC vs S/4HANA Decision Matrix
| Diagnostic area |
ECC 6.0 |
S/4HANA On-Premise / Private Cloud |
Public Cloud routing |
| Material documents |
MKPF/MSEG persistence |
MATDOC primary persistence; compatibility access is release-dependent |
Released Fiori app/CDS/API only |
| Supplier master |
Vendor master model; LFA* evidence |
Business Partner with CVI; validate synchronization and roles |
Maintain Business Partner app/business role |
| PO approval |
Classic release strategy common |
Classic strategy or Flexible Workflow by scope |
Flexible Workflow/My Inbox |
| Inventory valuation |
Material Ledger may be optional |
Material Ledger foundation mandatory; Actual Costing optional |
Scope-item and app dependent |
| MRP |
Classic MRP functions |
MRP Live plus supported classic functions |
Fiori/background app by scope |
| GR/IR analytics |
MB5S and classic reports |
Reconcile GR/IR Fiori analytics preferred |
Released reconciliation app |
| Extensions |
User exits/BAdIs possible |
Clean-core: released BAdI/CDS/API preferred |
In-app/side-by-side released extension only |
Never tell an S/4 user to update a compatibility view, and never assume an ECC-only report exists in Public
Cloud. Ask for the exact release and deployed scope item before giving write steps.
15. Falsification Templates
Template — “PO issue caused MIGO failure”
- Primary root cause: PO item is not eligible for GR.
- Falsification 1:
ME23N shows a released item with positive open quantity.
- Falsification 2: schedule line and completion indicators allow receipt on the posting date.
- If falsified: move to period, master, QM/batch/serial, account determination, then technical update checks.
Template — “Tolerance caused MIRO block”
- Primary root cause: quantity or price variance exceeds the applicable
OMR6 key.
- Falsification 1: recalculation is inside both absolute and percentage limits.
- Falsification 2:
MIR4 shows a different blocking reason.
- If falsified: inspect GR-based IV, duplicate check, tax, date, exchange rate, and delivery costs.
Template — “GR/IR residual can be cleared”
- Primary root cause: no future business obligation remains.
- Falsification 1: open delivery, invoice, return, or dispute evidence exists.
- Falsification 2: net signed GR/IR quantity or value does not reconcile.
- If falsified: keep the item open and route it to the responsible buyer/AP/warehouse owner.
Template — “Inventory difference is a count error”
- Primary root cause: physical count differs from book stock.
- Falsification 1: key-date reconstruction shows a cutoff movement explaining the full difference.
- Falsification 2: report scope/UoM differs from the physical inventory item.
- If falsified: correct scope or movement evidence, not the count.
16. Rollback Design by Change Type
| Change |
Before evidence |
Test |
Rollback |
| PO master/document |
Change log, original field values, approval state |
Copy scenario in QA |
Restore captured values through standard transaction and reapprove |
| Goods movement |
Source document, stock/FI before state |
MIGO Check and QA post |
Reference-based reversal with warehouse/FI approval |
| Invoice |
PO/GR/IR comparison, simulation output |
MIRO Simulate |
Use approved invoice reversal/correction process; retain audit trail |
OMR6 tolerance |
Prior key values and policy approval |
Boundary matrix |
Revert values via controlled TR |
OBYC mapping |
Prior transaction-key mapping |
GR/reversal/variance integration test |
Revert mapping via controlled TR |
OMJJ movement type |
Full prior configuration and dependents |
Integrated MM/FI/QM/WM/EWM UAT |
Restore prior configuration transport |
| Physical inventory |
Count document, approvals, stock snapshot |
QA rehearsal and MI20 review |
Supported document reversal/correction; never table edit |
Rollback is not “manually change it back later.” It must name the artifact/document, owner, trigger,
sequence, and verification report before the fix is approved.
17. Anti-Patterns
- ❌ Set
EKPO-ELIKZ or final invoice merely to hide an open PO item.
- ❌ Release all
MRBR candidates without proving each blocking reason is resolved.
- ❌ Widen
OMR6 tolerance in production to pass a single invoice.
- ❌ Post a backdated GR solely to make the period-end report balance.
- ❌ Run actual
MR11 before Test Run and business-owner sign-off.
- ❌ Treat every GR/IR balance as an error or clear a valid timing difference.
- ❌ Compare
MMBE, MB52, and MB5B without aligning stock type, key date, and UoM.
- ❌ Reverse a material document without checking linked invoice, QM, batch, serial, WM/EWM, and FI impact.
- ❌ Copy a movement type or account mapping straight into production without DEV/QA/TR.
- ❌ Read ECC
MSEG guidance as S/4 primary persistence guidance.
- ❌ Assume S/4 Public Cloud exposes every classic GUI T-code.
- ❌ Update
EKKO, EKPO, EKBE, RBKP, RSEG, MKPF/MSEG, or MATDOC directly with SE16N.
- ❌ Invent a SAP Note number, message meaning, company code, G/L account, plant, or tolerance percentage.
18. Standard Diagnostic Response
Use this format for an incident:
## Issue
Exact symptom, document/item, environment, business impact, last normal timestamp
## Primary Root Cause
One evidence-backed leading hypothesis; alternatives are lower priority
## Falsification
At least two observations that would disprove the primary hypothesis
## Check (T-code + Table.Field)
At least two relevant read-only T-codes/apps, menu paths, and one reliable Table.Field
## Fix
Smallest safe correction, DEV/QA test, approval, TR, production verification
## Rollback
Artifact/document, owner, trigger, reverse sequence, verification
## Prevention
Control owner, monitoring report/app, cadence, threshold and escalation
For multi-cause incidents, cross-module changes, inventory close, or GR/IR close, switch to the Evidence
Loop. The operator collects evidence and decides; the skill does not perform production writes.
1---2name: sap-mm3description: This skill handles SAP MM (Materials Management) including purchase requisitions, purchase orders, goods receipts, invoice verification, inventory management, GR/IR clearing, material master, vendor evaluation, and period-end closing. Use when user mentions MM, purchasing, procurement, MIGO, MIRO, ME21N, ME23N, MB52, MR11, GR/IR, material master, inventory, stock, MRP, info record, outline agreement, MMPV, account determination, OBYC, movement type, physical inventory, batch management, valuation class.4---56# SAP Materials Management (MM) Skill78## 0. Environment Intake and Safety Contract910Before diagnosing or recommending an MM action, collect:1112- **Release**: ECC 6.0 EhP or S/4HANA release year13- **Deployment**: On-Premise, RISE/Private Cloud, or Public Cloud14- **Industry/process**: manufacturing, retail, project procurement, services, or regulated industry15- **Scope keys**: user-provided purchasing organization, plant, storage location, PO, and material16- **Evidence**: exact message class/number, T-code or Fiori app, timestamp, last normal document17- **Control state**: posting period, approval status, GR-based IV flag, and whether QM/batch/serial control applies1819Never invent company codes, G/L accounts, cost centers, plants, purchasing organizations, or tolerance20values. If environment context is missing, ask up to four grouped questions and still provide clearly21labelled provisional read-only checks. Configuration changes require a Transport Request (TR), a22representative test in DEV/QA, UAT evidence, and a rollback plan. Never edit production tables with23`SE16N`.2425## 1. Procurement Cycle2627```28PR (ME51N) → RFQ (ME41) → Quotation (ME47) → PO (ME21N)29→ GR (MIGO 101) → IV (MIRO) → Payment (F110)30```3132Shortcut flows:33- Without RFQ: PR → PO (ME58 — auto-convert PR to PO)34- Consignment: PO item cat K → GR → settlement (MRKO)35- Subcontracting: PO item cat L → GI components → GR finished3637---3839## 2. Purchase Order Issues4041**Account assignment errors**42- Category K (cost center): cost center must exist and be active43- Category A (asset): asset master must exist, depreciation area active44- Category F (internal order): order must be in Released status45- Category P (project/WBS): WBS element must be open for costs4647**Tolerance check (MIRO)**48- OMR6 → tolerance keys: BD (amount) / VP (moving avg price variance) / PP (price)49- Tolerance = percentage + absolute amount — both must be within limits5051**GR-based invoice verification**52- PO item → Invoice tab → GR-Based IV flag = X53- With flag: MIRO only possible after GR; invoice quantity = GR quantity5455---5657## 3. Goods Receipt (MIGO)5859### Key Movement Types6061| MVT | Description | Notes |62|-----|-------------|-------|63| 101 | GR for purchase order | Standard GR |64| 102 | Reversal of 101 GR | Reference the original GR document |65| 122 | Return delivery to vendor | With return PO |66| 161 | GR for return PO | For returns with credit |67| 201 | GI to cost center | Free goods issue |68| 261 | GI for production order | Component consumption |69| 301 | Transfer plant to plant (1 step) | Same company code |70| 311 | Transfer storage location to storage location | Same plant |71| 551 | Scrapping | Write-off to loss account |7273### Account Determination (OBYC)7475- Transaction key BSX: inventory posting (stock G/L account)76- Transaction key WRX: GR/IR clearing account77- Transaction key PRD: price difference account (standard price)78- Transaction key GBB: goods issue / offsetting accounts79- Valuation class (material master → Accounting 1) links material to G/L accounts8081---8283## 4. Invoice Verification (MIRO)8485**Blocking reasons**8687| Code | Reason | Release T-code |88|------|--------|----------------|89| R | Manual block | MR02 / MRBR |90| A | Amount exceeds tolerance | MRBR (automatic) |91| D | Date issue | MRBR |92| Q | Quantity variance | MRBR |93| P | Price variance | MRBR |9495**Parked invoices**: `MIR7`에서 park/complete 상태를 구분하고 `MIR4`에서 문서와 후속 상태를 조회한다.96Blocked invoice release는 parked invoice 처리와 섞지 말고 `MRBR`의 blocking reason 기준으로 별도 진단한다.9798**Credit memos**: MIRO → transaction = Credit Memo → reverses original invoice logic99100---101102## 5. Inventory Management103104**Physical inventory process**1051. MI01: create physical inventory document → print count sheet1062. MI04: enter count results (MI09 is a separate count-without-document process)1073. MI07: post inventory differences → generates MM document + FI document1084. MI20: list of inventory differences for review109110**Key reports**111112| T-code | Report |113|--------|--------|114| MMBE | Stock overview (all stock types) |115| MB52 | Warehouse stocks of material |116| MB53 | Plant stock availability |117| MB5B | Stocks for posting date |118| MB51 | Material document list |119120---121122## 6. Material Master Key Views123124| View | Key Fields |125|------|-----------|126| MRP 1 | MRP type, MRP controller, lot size procedure |127| MRP 2 | Planned delivery time, safety stock |128| MRP 3 | Strategy group (make-to-stock vs make-to-order) |129| MRP 4 | BOM explosion, individual/collective requirements |130| Accounting 1 | Valuation class, price control (S/V), standard/moving avg price |131| Purchasing | Purchasing group, info update, GR processing time |132| Plant Data/Stor.1 | Storage conditions, shelf life, batch management |133134Extend to new plant: MM01 → select org levels → plant / storage location135136---137138## 7. MM Period Close139140- **MMPV**: close MM posting period — FI 오픈 기간과 인터페이스 cut-off를 대조하고 회사의 승인된 마감 순서에 맞춰 실행141- **MMRV**: allow posting to previous MM period (emergency use only — document reason)142- Check open GR/IR before closing: MB5S → identify items needing MR11143144---145146## 8. S/4HANA MM Differences147148| Topic | ECC | S/4HANA |149|-------|-----|---------|150| Material document persistence | MKPF / MSEG | MATDOC; compatibility access depends on release |151| Read model | Classic tables/reports | Released CDS views and Fiori analytics preferred for extensions |152| Supplier master | Vendor master transactions and LFA* data | Business Partner with CVI; validate conversion status |153| Material Ledger | Optional by valuation area | Mandatory foundation; Actual Costing remains optional |154| MRP run | MD01/classic MRP | MD01N MRP Live plus supported classic functions |155| Purchase order history | EKBE | EKBE remains relevant; released CDS/API is preferred for clean-core extensions |156157---158159## 9. Operator Action Map — T-code + Menu Path160161Every recommendation must pair the executable surface with its menu path. Fiori-only actions must say162`T-code: none` rather than inventing a GUI code.163164| Action | T-code / app | Menu path |165|---|---|---|166| Display PO and history | `ME23N` | SAP Easy Access > Logistics > Materials Management > Purchasing > Purchase Order > Display |167| Change PO after approval | `ME22N` | SAP Easy Access > Logistics > Materials Management > Purchasing > Purchase Order > Change |168| List POs by document | `ME2N` | SAP Easy Access > Logistics > Materials Management > Purchasing > Purchase Order > List Displays > By PO Number |169| Post or reverse goods movement | `MIGO` | SAP Easy Access > Logistics > Materials Management > Inventory Management > Goods Movement > Goods Movement |170| Enter logistics invoice | `MIRO` | SAP Easy Access > Logistics > Materials Management > Logistics Invoice Verification > Document Entry > Enter Invoice |171| Display logistics invoice | `MIR4` | SAP Easy Access > Logistics > Materials Management > Logistics Invoice Verification > Further Processing > Display Invoice Document |172| Review blocked invoices | `MRBR` | SAP Easy Access > Logistics > Materials Management > Logistics Invoice Verification > Further Processing > Release Blocked Invoices |173| Display material master | `MM03` | SAP Easy Access > Logistics > Materials Management > Material Master > Material > Display > Display Current |174| Maintain purchasing info record | `ME11` | SAP Easy Access > Logistics > Materials Management > Purchasing > Master Data > Info Record > Create |175| Display material documents | `MB51` | SAP Easy Access > Logistics > Materials Management > Inventory Management > Environment > List Displays > Material Documents |176| Display stock overview | `MMBE` | SAP Easy Access > Logistics > Materials Management > Inventory Management > Environment > Stock > Stock Overview |177| Create physical inventory document | `MI01` | SAP Easy Access > Logistics > Materials Management > Physical Inventory > Physical Inventory Document > Create |178| Enter physical count | `MI04` | SAP Easy Access > Logistics > Materials Management > Physical Inventory > Count > Enter |179| Review count differences | `MI20` | SAP Easy Access > Logistics > Materials Management > Physical Inventory > Difference > Difference List |180| Post count differences | `MI07` | SAP Easy Access > Logistics > Materials Management > Physical Inventory > Difference > Post |181| Review GR/IR candidates | `MR11` | SAP Easy Access > Logistics > Materials Management > Logistics Invoice Verification > GR/IR Account Maintenance > Maintain |182| Close MM period | `MMPV` | SAP Easy Access > Logistics > Materials Management > Material Master > Other > Close Period |183184For S/4HANA Cloud Public Edition, verify the released Fiori app and business role in the user's tenant.185Classic T-code availability must not be assumed.186187---188189## 10. PO → GR → IR Evidence Chain190191Treat the document flow as four independent gates. A green upstream status does not prove that the192next gate completed.193194```text195Gate A: PR/source/master data196 → Gate B: PO creation and approval197 → Gate C: GR and material/FI documents198 → Gate D: IR, three-way match, payment block199```200201### 10.1 Gate A — PR, Source, and Master Data202203Start with read-only master data checks:2042051. `[T-code: ME53N | menu: Logistics > Materials Management > Purchasing > Purchase Requisition > Display]`206 — confirm requested quantity, delivery date, account assignment, source assignment, and processing status.2072. `[T-code: MM03 | menu: Logistics > Materials Management > Material Master > Material > Display > Display Current]`208 — confirm base UoM, purchasing/MRP views, plant extension, valuation class, batch and serial controls.2093. `[T-code: ME23N | menu: Logistics > Materials Management > Purchasing > Purchase Order > Display]`210 — verify which source and master attributes were copied to the created PO.211212Use the following evidence fields; do not modify them directly:213214| Object | Table.Field | Diagnostic meaning |215|---|---|---|216| PR | `EBAN-BANFN`, `EBAN-BNFPO` | PR identity |217| PR | `EBAN-MATNR`, `EBAN-WERKS`, `EBAN-MENGE` | Material, plant, requested quantity |218| Material | `MARA-MTART`, `MARA-MEINS` | Material type and base UoM |219| Plant data | `MARC-WERKS`, `MARC-EKGRP`, `MARC-DISMM` | Plant extension, purchasing group, MRP type |220| Valuation | `MBEW-BKLAS`, `MBEW-VPRSV` | Valuation class and price control |221| UoM conversion | `MARM-UMREZ`, `MARM-UMREN` | Alternative/base UoM conversion |222| Info record | `EINA-MATNR`, `EINA-LIFNR`, `EINE-EKORG` | Supplier-material and purchasing-org segment |223| Source list | `EORD-MATNR`, `EORD-WERKS`, `EORD-VDATU`, `EORD-BDATU` | Source validity interval |224225**Hypothesis A1 — source is invalid for the requested date.**226227- Supporting evidence: no valid `EORD` interval, or the PO source differs from the approved source.228- Falsification: a valid fixed/allowed source covers the requested date and the same source is copied to the PO.229- Fix: correct source master data through the approved master-data workflow, then recreate or deliberately230 update the affected document in DEV/QA first.231- Rollback: restore the previous source validity record and document selection using the approved change log;232 do not delete source records from tables.233234**Hypothesis A2 — UoM conversion causes an apparent quantity mismatch.**235236- Supporting evidence: PO order unit differs from `MARA-MEINS`, and `MARM` conversion does not match the supplier pack.237- Falsification: order/base quantities reconcile exactly with `MARM-UMREZ/UMREN`.238- Fix: correct the governed UoM master or the document order unit after impact review.239- Rollback: revert the master/document change and re-run the same quantity comparison.240241### 10.2 Gate B — PO Content and Approval242243At `[T-code: ME23N | menu: Logistics > Materials Management > Purchasing > Purchase Order > Display]`,244inspect header, item, schedule line, account assignment, conditions, confirmations, and PO history.245246| Object | Table.Field | Check |247|---|---|---|248| Header | `EKKO-BSART`, `EKKO-LIFNR`, `EKKO-EKORG`, `EKKO-BUKRS` | Document type, supplier, org assignments |249| Item | `EKPO-MATNR`, `EKPO-WERKS`, `EKPO-MENGE`, `EKPO-NETPR` | Material, plant, quantity, PO price |250| Invoice controls | `EKPO-WEBRE`, `EKPO-EREKZ` | GR-based IV and final-invoice indicator |251| Delivery control | `EKPO-ELIKZ` | Delivery-completed indicator |252| Schedule | `EKET-EINDT`, `EKET-MENGE`, `EKET-WEMNG` | Due date, scheduled and GR quantities |253| Classic release | `EKKO-FRGGR`, `EKKO-FRGSX`, `EKKO-FRGKE` | ECC/classic strategy state |254255#### ECC classic release256257Use `ME23N` read-only status and release-strategy fields to determine whether the strategy was determined,258which release remains, and whether a value/characteristic change reset the status. Do not bypass the259strategy by changing classification or document value in production.260261#### S/4HANA flexible workflow262263Use `[T-code: none | menu: Fiori Launchpad > My Inbox]` for the approver work item and264`[T-code: none | menu: Fiori Launchpad > Manage Workflows for Purchase Orders]` for workflow definition.265Compare start-condition evaluation, recipient determination, work-item status, and document status.266Workflow configuration changes require a governed transport and test workflow with a non-production PO.267268**Hypothesis B1 — PO is blocked by approval, not by GR processing.**269270- Supporting evidence: `ME23N` shows incomplete release or My Inbox has an open/failed work item.271- Falsification: the PO is fully released and no active workflow item remains.272- Fix: correct agent/recipient or release configuration in DEV, transport to QA, test approve/reject paths,273 and then let the authorized approver decide the production work item.274- Rollback: restore the prior workflow/rule version and verify that new test POs route as before.275276**Hypothesis B2 — delivery or final-invoice completion was set prematurely.**277278- Supporting evidence: `EKPO-ELIKZ` or `EKPO-EREKZ` is set while open business quantity remains.279- Falsification: completion indicators are blank or justified and PO history fully reconciles.280- Fix: have the document owner correct the indicator through `ME22N` after PO-history review.281- Rollback: restore the captured original indicator and revalidate open quantity; never change `EKPO` directly.282283### 10.3 Gate C — MIGO Goods Receipt284285Before posting, use the check function in `[T-code: MIGO | menu: Logistics > Materials Management >286Inventory Management > Goods Movement > Goods Movement]`. Validate reference document, movement type,287posting/document dates, quantity/UoM, plant/storage location, stock type, batch/serial, and item OK status.288289Evidence sequence:2902911. `ME23N` PO History — identify the exact GR and any reversal.2922. `MB51` — compare material document number, year, movement type, quantity, posting date, and user.2933. `MMBE` or `MB52` — confirm current stock category and location after posting.2944. FI document display, when generated, must be reviewed with the FI consultant; MM document success alone295 does not prove correct account determination.296297#### ECC evidence298299- Header: `MKPF-MBLNR`, `MKPF-MJAHR`, `MKPF-BUDAT`, `MKPF-CPUDT`300- Item: `MSEG-MATNR`, `MSEG-WERKS`, `MSEG-LGORT`, `MSEG-BWART`, `MSEG-MENGE`301302#### S/4HANA evidence303304- Primary persistence: `MATDOC-MBLNR`, `MATDOC-MJAHR`, `MATDOC-MATNR`, `MATDOC-WERKS`,305 `MATDOC-LGORT`, `MATDOC-BWART`, `MATDOC-MENGE`, `MATDOC-BUDAT_MKPF`306- Use released CDS/API surfaces for custom extensions; do not build a new direct-update process on `MATDOC`.307308**Hypothesis C1 — no eligible open PO quantity exists.**309310- Supporting evidence: schedule/PO history shows full GR, reversal chain changes the net quantity, or311 `EKPO-ELIKZ` is set.312- Falsification: open PO quantity is positive, the item is released, and no completion block applies.313- Fix: correct the business document or reference the correct PO item; do not post an unreferenced GR to mask it.314- Rollback: reverse only the identified incorrect material document via `MIGO` with reference after warehouse/FI approval.315316**Hypothesis C2 — account determination blocks posting.**317318- Supporting evidence: message identifies transaction key/valuation class and `MBEW-BKLAS` has no matching319 governed `OBYC` entry.320- Falsification: valuation class and all required transaction-key mappings exist for the valuation area.321- Fix: `[T-code: OBYC | menu: SPRO > Materials Management > Valuation and Account Assignment >322 Account Determination > Configure Automatic Postings]`; configure in DEV, attach TR, test `MIGO` Check,323 and validate the generated FI document in QA.324- Rollback: transport the captured previous mapping back through the landscape and repeat the posting simulation.325326**Hypothesis C3 — technical update or authorization failed after user input.**327328- Check `[T-code: SM13 | menu: SAP Easy Access > Tools > Administration > Monitor > Update]` for update failure.329- Check `[T-code: ST22 | menu: SAP Easy Access > Tools > ABAP Workbench > Test > Dump Analysis]` for a dump.330- Check `[T-code: SU53 | menu: SAP GUI > System > Utilities > Display Authorization Check]` immediately331 after an authorization error.332- Falsification: no matching update record/dump exists and the failed authorization object is not reproduced.333- Fix/Rollback: delegate code defects to ABAP/BASIS and role changes to security; test the narrowest correction334 in QA and retain the prior transport/version for rollback.335336### 10.4 Gate D — MIRO Invoice and Three-Way Match337338At `[T-code: MIRO | menu: Logistics > Materials Management > Logistics Invoice Verification >339Document Entry > Enter Invoice]`, use Simulate before Post. Compare PO price/quantity, eligible GR,340invoice quantity/amount, tax, currency, exchange-rate date, planned delivery costs, and duplicate reference.341342Read-only evidence:343344| Object | Table.Field | Meaning |345|---|---|---|346| Invoice header | `RBKP-BELNR`, `RBKP-GJAHR`, `RBKP-BLDAT`, `RBKP-BUDAT` | Invoice identity and dates |347| External reference | `RBKP-XBLNR` | Duplicate-invoice comparison key |348| Invoice item | `RSEG-EBELN`, `RSEG-EBELP`, `RSEG-MENGE`, `RSEG-WRBTR` | PO reference, quantity, amount |349| PO history | `EKBE-EBELN`, `EKBE-EBELP`, `EKBE-VGABE`, `EKBE-MENGE` | GR/IR event chain |350| PO history value | `EKBE-WRBTR`, `EKBE-SHKZG`, `EKBE-BELNR`, `EKBE-GJAHR` | Value, sign, document reference |351352#### Three-way match logic3533541. **PO basis** — agreed quantity, order unit, price conditions, tax and delivery-cost terms.3552. **GR basis** — actual accepted quantity net of reversals/returns.3563. **IR basis** — vendor invoice quantity and value assigned to the same PO item.3574. **Control** — `EKPO-WEBRE` decides whether invoice matching is tied to individual GR history;358 `OMR6` tolerance keys decide warning/block behavior for configured variance categories.359360Do not describe three-way match as a single universal percentage. The applicable tolerance key, absolute361and percentage limits, GR-based IV flag, item type, and company policy all matter.362363**Hypothesis D1 — GR-based IV has no eligible GR quantity.**364365- Supporting evidence: `EKPO-WEBRE` is set and `EKBE` shows no available GR after reversals/prior invoices.366- Falsification: an eligible unmatched GR exists for the same PO item and quantity.367- Fix: correct the GR/reversal sequence or invoice reference; do not clear the flag merely to post.368- Rollback: reverse only the incorrect test document and restore the original PO control if it was changed.369370**Hypothesis D2 — price or quantity variance exceeded configured tolerance.**371372- Supporting evidence: PO/GR/IR comparison reproduces the variance and `OMR6` shows the matching tolerance key.373- Falsification: recalculated variance is within both configured absolute and percentage limits.374- Fix: correct PO, GR, or invoice according to the commercial truth. Change `OMR6` only when policy itself375 is approved for change, using DEV/QA, TR, and boundary tests below/at/above the threshold.376- Rollback: restore the prior tolerance configuration via controlled transport and rerun all boundary tests.377378**Hypothesis D3 — invoice is posted but payment-blocked.**379380- Supporting evidence: `MIR4` shows a posted document and block reason; `MRBR` lists it.381- Falsification: no invoice document exists, or the block is not present.382- Fix: resolve the underlying PO/GR/invoice variance first. `[T-code: MRBR | menu: Logistics > Materials383 Management > Logistics Invoice Verification > Further Processing > Release Blocked Invoices]` is a384 control step, not a substitute for root-cause correction.385- Rollback: do not mass-release. If a release was incorrect, follow the approved AP/payment-block restoration386 process and verify the document in `MIR4` before payment selection.387388---389390## 11. GR/IR Reconciliation and Period-End391392GR/IR is a timing and document-flow control account. A balance is not automatically an error.393394### 11.1 Read-only candidate build3953961. ECC: `[T-code: MB5S | menu: Logistics > Materials Management > Inventory Management >397 Environment > Balance Sheet Valuation > GR/IR Balances]` for PO-item candidates.3982. S/4HANA: `[T-code: none | menu: Fiori Launchpad > Reconcile GR/IR Accounts]` or the released399 app available in the user's release; do not assume `MB5S` behavior is identical.4003. `ME23N` PO History — build the signed GR, reversal, IR, credit memo, and return sequence.4014. `MIR4` and `MB51` — open the source documents, not just the aggregate balance.402403### 11.2 Root-cause buckets404405| Balance pattern | Likely business cause | Falsification evidence |406|---|---|---|407| GR without IR | Invoice not received, parked elsewhere, timing cutoff | Matching posted IR exists against same PO item |408| IR without GR | Invoice before receipt, missing reference, GR posted elsewhere | Eligible signed GR exists and is matched |409| GR reversal after IR | Return/cancellation sequence incomplete | Net GR and net IR quantities/values reconcile |410| Small residual | UoM, price, exchange rate, planned delivery cost | Recalculation yields zero without clearing entry |411| Old open item | PO completion/final invoice status not governed | Business obligation is still valid and documented |412413### 11.3 MR11 control414415`[T-code: MR11 | menu: Logistics > Materials Management > Logistics Invoice Verification >416GR/IR Account Maintenance > Maintain]` must always start with Test Run. Export the candidate list,417record selection parameters and cutoff date, obtain MM/FI/business-owner sign-off, then run the actual418posting only for confirmed no-obligation residuals.419420**Falsification**: if an open invoice, return, dispute, or future delivery still exists, “stale residual” is421false and the item must not be cleared.422423**Rollback plan**: before actual run, capture candidate PO item, amount, currency, generated document type,424and approvers. If an incorrect clearing is posted, stop further batches and use the release-supported,425auditable reversal procedure agreed by FI/MM; never repair GR/IR by table editing.426427### 11.4 MM period close428429Before `[T-code: MMPV | menu: Logistics > Materials Management > Material Master > Other > Close Period]`:430431- reconcile late GR/IR and backdated warehouse documents;432- confirm FI posting-period coordination with the FI owner;433- confirm interfaces, physical inventory, and goods-movement queues are complete;434- reproduce the close in QA or use the release-supported check mode where available;435- record the current period and approved target period.436437Period shift may not have a simple business rollback. Do not run `MMPV` in production until the recovery438procedure is documented and approved. Emergency previous-period posting is not a substitute for governance.439440---441442## 12. Inventory and Physical Inventory Diagnostics443444### 12.1 Stock discrepancy ladder4454461. `[T-code: MMBE | menu: Logistics > Materials Management > Inventory Management > Environment >447 Stock > Stock Overview]` — identify plant, storage location, batch, special stock, and stock type.4482. `[T-code: MB52 | menu: Logistics > Materials Management > Inventory Management > Environment >449 Stock > Warehouse Stocks]` — compare the selected organizational scope and key date assumptions.4503. `[T-code: MB5B | menu: Logistics > Materials Management > Inventory Management > Environment >451 Stock > Stock for Posting Date]` — reconstruct book stock at the cutoff date.4524. `[T-code: MB51 | menu: Logistics > Materials Management > Inventory Management > Environment >453 List Displays > Material Documents]` — trace receipts, issues, transfers, reversals, and posting dates.454455Do not compare unrestricted stock in one report with total stock across quality/blocked/special categories in456another. Align unit, key date, plant, storage location, batch, special-stock indicator, and valuation scope first.457458### 12.2 Physical inventory cycle459460```text461MI01 document and scope462 → count-sheet control / warehouse count463 → MI04 count entry464 → MI20 difference review and approval465 → MI07 difference posting466 → MB51/MMBE reconciliation467```468469- Header evidence: `IKPF-IBLNR`, `IKPF-GJAHR`, `IKPF-BUDAT`470- Item evidence: `ISEG-MATNR`, `ISEG-WERKS`, `ISEG-LGORT`471- Material document evidence: ECC `MKPF/MSEG`; S/4HANA `MATDOC`472473**Hypothesis P1 — scope mismatch, not count error.**474475- Supporting evidence: report and count document use different storage location, batch, or stock category.476- Falsification: all scope dimensions and UoM are identical.477- Fix: correct the count scope through the standard physical-inventory process before difference posting.478- Rollback: cancel/recreate only through the supported document flow and retain the audit trail.479480**Hypothesis P2 — cutoff movement caused the difference.**481482- Supporting evidence: `MB51` shows posting/document-date crossover around the count freeze.483- Falsification: no movement exists between freeze, count, and posting timestamps.484- Fix: reconcile the movement with warehouse evidence; do not “adjust” the count to force zero.485- Rollback: reverse an incorrect goods movement only with its source document and approvals.486487Before `MI07`, there may be no safe generic Test Run in every release. Use `MI20`, peer approval, a488representative QA rehearsal, and captured before/after stock values. After posting, verify both the material489document and the accounting impact.490491---492493## 13. Configuration Routes with Test and Rollback494495### 13.1 Invoice tolerances — OMR6496497Path: `[T-code: OMR6 | menu: SPRO > Materials Management > Logistics Invoice Verification >498Invoice Block > Set Tolerance Limits]`.499500- Change only an approved tolerance key for a user-provided company code.501- Test below, exactly at, and above both absolute and percentage boundaries.502- Include PO quantity, GR quantity, invoice quantity, currency, tax, and exchange-rate cases.503- Transport the change; do not tune production tolerance to release one invoice.504- Roll back by restoring the captured prior values in a new controlled transport and repeating boundary tests.505506### 13.2 Automatic account determination — OBYC507508Path: `[T-code: OBYC | menu: SPRO > Materials Management > Valuation and Account Assignment >509Account Determination > Configure Automatic Postings]`.510511Evidence chain: movement type/account modifier → valuation grouping → valuation class (`MBEW-BKLAS`) →512transaction key (`BSX`, `WRX`, `GBB`, `PRD`) → user-provided G/L account.513514Test at least one GR, reversal, consumption, and invoice variance relevant to the change. Validate MM and FI515documents. Roll back with the recorded previous mapping via TR; never replace a production G/L account516without Finance approval.517518### 13.3 Movement types — OMJJ519520Path: `[T-code: OMJJ | menu: SPRO > Materials Management > Inventory Management and Physical521Inventory > Movement Types > Copy, Change Movement Types]`.522523Movement type changes affect quantity update, value update, screen selection, account grouping, reversal,524and downstream WM/EWM/QM integration. Clone and test only in DEV, include positive/reversal/return paths,525and transport after integrated UAT. Roll back with the prior configuration version; never modify the standard526movement type in production to solve one document.527528---529530## 14. ECC vs S/4HANA Decision Matrix531532| Diagnostic area | ECC 6.0 | S/4HANA On-Premise / Private Cloud | Public Cloud routing |533|---|---|---|---|534| Material documents | `MKPF/MSEG` persistence | `MATDOC` primary persistence; compatibility access is release-dependent | Released Fiori app/CDS/API only |535| Supplier master | Vendor master model; LFA* evidence | Business Partner with CVI; validate synchronization and roles | Maintain Business Partner app/business role |536| PO approval | Classic release strategy common | Classic strategy or Flexible Workflow by scope | Flexible Workflow/My Inbox |537| Inventory valuation | Material Ledger may be optional | Material Ledger foundation mandatory; Actual Costing optional | Scope-item and app dependent |538| MRP | Classic MRP functions | MRP Live plus supported classic functions | Fiori/background app by scope |539| GR/IR analytics | `MB5S` and classic reports | Reconcile GR/IR Fiori analytics preferred | Released reconciliation app |540| Extensions | User exits/BAdIs possible | Clean-core: released BAdI/CDS/API preferred | In-app/side-by-side released extension only |541542Never tell an S/4 user to update a compatibility view, and never assume an ECC-only report exists in Public543Cloud. Ask for the exact release and deployed scope item before giving write steps.544545---546547## 15. Falsification Templates548549### Template — “PO issue caused MIGO failure”550551- Primary root cause: PO item is not eligible for GR.552- Falsification 1: `ME23N` shows a released item with positive open quantity.553- Falsification 2: schedule line and completion indicators allow receipt on the posting date.554- If falsified: move to period, master, QM/batch/serial, account determination, then technical update checks.555556### Template — “Tolerance caused MIRO block”557558- Primary root cause: quantity or price variance exceeds the applicable `OMR6` key.559- Falsification 1: recalculation is inside both absolute and percentage limits.560- Falsification 2: `MIR4` shows a different blocking reason.561- If falsified: inspect GR-based IV, duplicate check, tax, date, exchange rate, and delivery costs.562563### Template — “GR/IR residual can be cleared”564565- Primary root cause: no future business obligation remains.566- Falsification 1: open delivery, invoice, return, or dispute evidence exists.567- Falsification 2: net signed GR/IR quantity or value does not reconcile.568- If falsified: keep the item open and route it to the responsible buyer/AP/warehouse owner.569570### Template — “Inventory difference is a count error”571572- Primary root cause: physical count differs from book stock.573- Falsification 1: key-date reconstruction shows a cutoff movement explaining the full difference.574- Falsification 2: report scope/UoM differs from the physical inventory item.575- If falsified: correct scope or movement evidence, not the count.576577---578579## 16. Rollback Design by Change Type580581| Change | Before evidence | Test | Rollback |582|---|---|---|---|583| PO master/document | Change log, original field values, approval state | Copy scenario in QA | Restore captured values through standard transaction and reapprove |584| Goods movement | Source document, stock/FI before state | `MIGO` Check and QA post | Reference-based reversal with warehouse/FI approval |585| Invoice | PO/GR/IR comparison, simulation output | `MIRO` Simulate | Use approved invoice reversal/correction process; retain audit trail |586| `OMR6` tolerance | Prior key values and policy approval | Boundary matrix | Revert values via controlled TR |587| `OBYC` mapping | Prior transaction-key mapping | GR/reversal/variance integration test | Revert mapping via controlled TR |588| `OMJJ` movement type | Full prior configuration and dependents | Integrated MM/FI/QM/WM/EWM UAT | Restore prior configuration transport |589| Physical inventory | Count document, approvals, stock snapshot | QA rehearsal and `MI20` review | Supported document reversal/correction; never table edit |590591Rollback is not “manually change it back later.” It must name the artifact/document, owner, trigger,592sequence, and verification report before the fix is approved.593594---595596## 17. Anti-Patterns597598- ❌ Set `EKPO-ELIKZ` or final invoice merely to hide an open PO item.599- ❌ Release all `MRBR` candidates without proving each blocking reason is resolved.600- ❌ Widen `OMR6` tolerance in production to pass a single invoice.601- ❌ Post a backdated GR solely to make the period-end report balance.602- ❌ Run actual `MR11` before Test Run and business-owner sign-off.603- ❌ Treat every GR/IR balance as an error or clear a valid timing difference.604- ❌ Compare `MMBE`, `MB52`, and `MB5B` without aligning stock type, key date, and UoM.605- ❌ Reverse a material document without checking linked invoice, QM, batch, serial, WM/EWM, and FI impact.606- ❌ Copy a movement type or account mapping straight into production without DEV/QA/TR.607- ❌ Read ECC `MSEG` guidance as S/4 primary persistence guidance.608- ❌ Assume S/4 Public Cloud exposes every classic GUI T-code.609- ❌ Update `EKKO`, `EKPO`, `EKBE`, `RBKP`, `RSEG`, `MKPF/MSEG`, or `MATDOC` directly with `SE16N`.610- ❌ Invent a SAP Note number, message meaning, company code, G/L account, plant, or tolerance percentage.611612---613614## 18. Standard Diagnostic Response615616Use this format for an incident:617618```text619## Issue620Exact symptom, document/item, environment, business impact, last normal timestamp621622## Primary Root Cause623One evidence-backed leading hypothesis; alternatives are lower priority624625## Falsification626At least two observations that would disprove the primary hypothesis627628## Check (T-code + Table.Field)629At least two relevant read-only T-codes/apps, menu paths, and one reliable Table.Field630631## Fix632Smallest safe correction, DEV/QA test, approval, TR, production verification633634## Rollback635Artifact/document, owner, trigger, reverse sequence, verification636637## Prevention638Control owner, monitoring report/app, cadence, threshold and escalation639```640641For multi-cause incidents, cross-module changes, inventory close, or GR/IR close, switch to the Evidence642Loop. The operator collects evidence and decides; the skill does not perform production writes.