⚙️ Advanced SAP MM Customizations
Once you've mastered the basics (org structure, master data, P2P), move into the customization topics that real consultants configure on every project. These are the topics that separate junior from senior MM consultants.
Advanced track (this page) covers customizations — batch management, release strategies, special procurement, pricing procedures — that real clients ask for.
🎯 The Advanced Topics Roadmap
Batch Management
Track stock by batch number. FEFO/FIFO/LIFO picking, shelf life, batch classification, where-used, batch genealogy.
Open dedicated page →Custom Material Types
Create your own material types beyond ROH/HALB/FERT. Define number ranges, allowed views, valuation, special procurement.
Read more ↓Custom Document Types
Create custom PR/PO/RFQ document types for special business scenarios. Number ranges, field selection, allowed item categories.
Read more ↓Release Strategies
Approval workflows for PRs and POs. Release codes, groups, characteristics, classes. Value-based, plant-based, group-based routing.
Open dedicated page →Subcontracting (Item Cat L)
You own components, vendor processes. Movement types 541/543/101. BOM-driven.
Open dedicated page →Pricing Procedures
Condition types, calculation schema, access sequences. Define gross price, discounts, surcharges, freight, customs.
Read more ↓OBYC Account Determination
How SAP picks G/L accounts. Transaction keys (BSX, WRX, GBB, PRD, KBS). Valuation class, valuation grouping code.
Read more ↓Output Determination
How POs get sent to vendors — print, email, EDI, Fiori. Condition records, partner functions, output media.
Read more ↓Quota Arrangements
Distribute orders across multiple vendors by percentage/quantity. Auto vendor selection in MRP.
Read more ↓Service Procurement
Service master, Service Entry Sheets (SES), milestone billing, integration with project systems.
Read more ↓Split Valuation
Same material with different prices by category (origin, quality grade, new/refurbished, own/consignment).
Read more ↓Cross-Company / Inter-Company
STO with billing between Company Codes. Vendor-customer cross-mapping (OMGN). Inter-company pricing.
Read more ↓📦 Batch Management — Deep Dive
What is a batch?
A subset of a material's stock that shares specific characteristics — typically a manufacturing lot, expiry date, or quality grade. Each batch has a unique batch number; same material can have many batches with different values.
When to use batch management
- Pharma — track manufacturing lot for recall + expiry
- Food & Beverage — shelf life management (FEFO picking)
- Chemicals — quality grade tracking
- Steel/Metal — heat number traceability
- Any regulated industry needing genealogy
Activation
- Material Master flag — MM02 → General Plant Data / Storage 1 view →
XCHPFBatch Management ✓ - Batch level config — OMCT — Choose: material-level (cross-plant), plant-level, or client-level
- Internal vs External batch number — Config decides if batch number is auto-generated or user-entered
- Classification — CT04 — Define characteristics (e.g. ProductionDate, ExpiryDate, Grade)
- Classification class — CL02 — Class type 023 for batches
- Search procedure — OMCY — FEFO, FIFO, LIFO, or custom
Key T-codes
| T-code | What it does |
|---|---|
| MSC1N | Create batch master |
| MSC2N | Change batch (status, characteristics) |
| MSC3N | Display batch |
| CL20N | Assign classification values to batch |
| MB56 | Batch where-used list |
| MB58 | Batches with restricted use |
| SE16N → MCHA | View batch master records |
| SE16N → MCHB | Batch stock per plant + SL |
📋 Custom Material Types — Deep Dive
SAP standard material types
| Type | Description | Used for |
|---|---|---|
ROH | Raw materials | Inputs to production |
HALB | Semi-finished | WIP / sub-assemblies |
FERT | Finished products | Final saleable goods |
HAWA | Trading goods | Buy & sell as-is |
ERSA | Spare parts | MRO items |
VERP | Packaging | Boxes, pallets, labels |
DIEN | Services | Non-physical services |
NLAG | Non-stock | Direct expense items |
UNBW | Non-valuated | No financial value |
When to create custom material types
- Industry-specific categorization needed (e.g. STEEL_BAR vs STEEL_TUBE distinct from ROH)
- Different number ranges by category
- Different views allowed per category
- Different default valuation class per category
- Specific authorization control by category
Configuration
- Create material type — OMS2 — Copy a similar standard type (e.g. ROH), rename, customize
- Number ranges — MMNR — Internal/external, range start-end
- Allowed views — In OMS2, tick which views can be filled (Sales, Purchasing, MRP, etc.)
- Default Industry sector — Mechanical, Chemical, Pharma, Retail, etc.
- Valuation class / Account category reference — OMSK — Define which valuation classes are allowed
- Item category groups for SD — If sold
📄 Custom Document Types — Deep Dive
Standard PO document types
| Type | Description |
|---|---|
NB | Standard PO |
UB | Stock Transport Order (within CC) |
FO | Framework Order (blanket PO) |
EC | Capital Expenditure (CapEx) |
ZX | (common custom — prefix Z is for customizations) |
When to create custom document types
- Different release strategies needed per type
- Different field selection (some fields visible/required/optional)
- Different number ranges
- Different allowed item categories
- Special business processes (e.g. R&D PO, urgent PO)
Configuration
- Define PR document types — SPRO → MM → Purchasing → PR → Define Document Types
- Define PO document types — SPRO → MM → Purchasing → PO → Define Document Types
- Define RFQ document types — Similar path
- Number ranges — Per document type
- Allowed item categories — Standard, Limit, Subcontract, Consignment, Third-party, Stock transfer, Service
- Field selection — OMF1 for PO / OMF4 for PR
Custom PO example — "ZR" Research & Development PO
Document Type ZR — R&D Purchase Order
Number range: 47000000-47999999
Allowed item categories: Standard only (no STO/subcontract)
Field selection: Cost Center mandatory (research project)
Release strategy: Goes to R&D Director above 100K
✅ Release Strategies — Deep Dive
Components
- Release Code — An individual approver (e.g. 01 = Manager, 02 = Director, 03 = CFO)
- Release Group — A set of release codes that go together
- Release Strategy — The complete approval chain for specific conditions
- Release Characteristics — What drives strategy selection (value, plant, Purch Group, etc.)
- Release Class — Container for characteristics
Configuration sequence
- Define characteristics — CT04 — e.g. CEKKO-GNETW (total PO value), CEKKO-EKGRP (Purch Group)
- Create release class — CL02 — Class type 032 for POs, 028 for PRs. Add the characteristics.
- Define release groups — OMGS for PO / OMGQ for PR
- Define release codes — Per group
- Define release strategies — Combine codes into ordered chains
- Set classification values — CL20N — Define WHEN each strategy applies (e.g. value > 100K + Purch Group IT0)
- Workflow event — Standard release workflow can be triggered
Common patterns
| Pattern | How |
|---|---|
| Value-based hierarchy | <50K = Buyer; 50K-5L = Manager; >5L = CFO |
| Plant-specific approval | Use Plant (WERKS) as characteristic; different chains per plant |
| Category-based | Use Purchasing Group (EKGRP) as characteristic — IT POs go to IT Director |
| CapEx workflow | Use Document Type (BSART) — CapEx POs need additional CFO + Board approval |
Key T-codes
| T-code | What it does |
|---|---|
| ME29N / ME28 | Release a PO |
| ME54N / ME55 | Release a PR |
| ME5F | Release reminder reports |
| ME35K | Release contracts |
🔄 Special Procurement — Deep Dive
Subcontracting (Item Category L)
You supply raw materials to a vendor; vendor processes them and returns the finished product. Special stock indicator O.
- PO item category: L
- Component provision: Material doc 541 (issue to subcontractor)
- Finished product receipt: 101 (the FERT comes back)
- Components consumed at GR: 543 (auto-posted)
- T-code: ME2O (subcontracting stock monitor)
Consignment (Item Category K)
Vendor owns the stock at YOUR plant until you consume it. Special stock indicator K.
- GR: Movement type 101 (special stock K)
- Withdrawal to own stock: 411 K
- Liability settlement: MRKO (settle consignment liabilities)
- Stock report: MB54
Stock Transport Order (STO)
Move material between plants.
| Type | Use | Document Type |
|---|---|---|
| Intra-company STO (one-step, 647) | Same CC, simple | UB |
| Intra-company STO (two-step, 351→101) | Same CC, tracks in-transit | UB |
| Inter-company STO | Different CCs, with billing | NB with shipping |
| STO with delivery | Uses SD delivery (VL10B) | UB / NB |
For inter-company STO, you need OMGN to set up the cross-CC Customer (receiving plant) and Vendor (supplying plant).
Third-Party (Item Category S)
Vendor ships directly to your customer; you never touch the goods. Sales order triggers PO directly to vendor.
- Sales order item category TAS
- PR auto-created from sales order
- PO to vendor with ship-to = customer
- No GR (no stock movement)
- Statistical GR possible for reporting
Pipeline (Item Category P)
Material consumed without prior receipt — gas, water, electricity. Special stock indicator P.
💵 Pricing Procedures — Deep Dive
Components
- Condition Type (PBXX, PDXX, FRA1, etc.) — Element of pricing (gross price, discount, freight)
- Access Sequence — Search strategy (vendor+material, material+plant, etc.)
- Condition Table — Stores actual prices (matched by access keys)
- Calculation Schema — Sequence of condition types making up the total
- Pricing Procedure — Assigned to PO via schema group of Vendor + Purch Org
Standard condition types
| Type | Description |
|---|---|
PBXX | Gross price (manual) |
PB00 | Gross price (from info record) |
PDXX | Discount (%) |
PRXX | Surcharge |
FRA1 | Freight |
FRB1 | Freight (lump sum) |
NAVS | Non-deductible tax |
SKTO | Cash discount |
Key T-codes
- M/06 — Define condition types
- M/03 — Define access sequence
- M/08 — Calculation schema (pricing procedure)
- MEKR — Maintain condition records
📒 OBYC Account Determination
OBYC is the lookup table that tells SAP which G/L account to debit/credit for each MM transaction.
The 3 inputs to OBYC lookup
- Transaction Key (BSX, WRX, GBB, PRD, KBS…) — derived from movement type
- Valuation Class — from material master (3000 raw, 7920 finished)
- Valuation Grouping Code — plant grouping (if OMWM activated)
Key transaction keys
| Key | For |
|---|---|
BSX | Inventory posting (Dr on GR, Cr on GI) |
WRX | GR/IR clearing (Cr on GR, Dr on IV) |
GBB | Offsetting — has sub-keys VBR (consumption), VAX (COGS), VNG (scrap), AUF (production) |
PRD | Price difference (when invoice price ≠ PO price) |
KBS | Account-assigned PO (cost center, order) |
FRL | External services |
AUM | Stock transfer price differences |
T-codes
- OBYC — Maintain OBYC mappings
- OMWM — Activate Valuation Grouping Code
- OMWD — Assign plants to Valuation Grouping Code
- OMSK — Valuation Class master / Account Category Reference
🏷️ Quota Arrangements — Deep Dive
Distribute purchases across multiple vendors automatically. Used when you want to: balance load, reduce risk, comply with sourcing policies.
How it works
- Define quota for a material — e.g. Vendor A = 60%, Vendor B = 30%, Vendor C = 10%
- MRP or PR conversion uses quota to pick vendor
- Quota usage updates as POs are created
- System balances over time to meet target percentages
T-codes
- MEQ1 — Create quota arrangement
- MEQ3 — Display
- MEQM — Mass maintenance
🛠️ Service Procurement — Deep Dive
Service Master
- AC01 — Create service master
- AC02 — Change
- AC03 — Display
- Hierarchical service catalog possible
Service procurement flow
- Create Service PR — ME51N with item category D
- Create Service PO — ME21N with item category D
- Receive service via SES — ML81N (Service Entry Sheet)
- Accept SES — Technical + financial acceptance
- Invoice verification — MIRO against SES
SES Types
- Standard SES
- Milestone SES (for projects with milestones)
- Recurring SES (monthly retainer)
- Collective SES (multiple services in one)
📨 Output Determination — Deep Dive
How POs get to vendors
- Print (physical paper)
- Email (PDF attachment)
- EDI (electronic data interchange)
- Fax (legacy)
- Fiori app notification
Components
- Output Type (e.g. NEU = new PO, MAHN = reminder)
- Condition Records — when output applies (per Purch Org, doc type, vendor)
- Partner Function — which vendor address to use
- Output Medium — printer, email, EDI
- SmartForm / SAPscript — the printable form
T-codes
- NACE — Output condition maintenance
- ME9F — Output reprint
- SE71 — SAPscript form
- SMARTFORMS — Modern form designer
🌐 Cross-Company / Inter-Company STO
Setup steps
- Define delivery type for inter-company — 0VLK
- Define order type for inter-company STO — UB or custom
- Assign Customer to receiving plant — OMGN
- Assign Vendor to supplying plant — Same OMGN screen
- Set up inter-company billing — Item categories, copying control
- Pricing procedure for inter-co — RM2000 standard
📚 Where to go next
Back to basics — Org Structure
Solidify your foundation first.
Practice — Interactive Builder
Build org structures hands-on.
Home
Full learning path.