๐ฆ SAP Batch Management โ When to Use vs Standard
Tracking stock by batch is one of SAP MM's most powerful โ and over-configured โ features. This page shows you what SAP standard already gives you, when batch management is genuinely needed, and how to configure it with real examples.
1. What SAP standard already does โ WITHOUT batch management
Before reaching for batch management, know what standard MM gives you for free:
- โ Stock per plant + storage location (quantity)
- โ Stock status โ unrestricted, quality, blocked, returns
- โ Movement type history (which transactions moved stock)
- โ Material document trail (date, user, qty, reference)
- โ Plant-level valuation (one price per material per plant)
- โ Vendor history per material (info records, source list)
2. When you actually NEED batch management
Batch management becomes necessary when you need to track stock at a finer granularity than plant + SL:
| Need | Why batch helps |
|---|---|
| Track manufacturing lot for recall | Pharma: "Lot ABC-202605 had impurity โ recall only that batch, not all stock" |
| Shelf life management | Food: "Pick the batch expiring soonest first" (FEFO) |
| Quality grade differences | Steel: "Batch H45 has tensile 480 MPa; Batch H46 has 510 MPa" |
| Country/origin traceability | Chemicals: "EU-import batches need REACH compliance" |
| Customer-specific allocation | "Batch X reserved for Customer Y per contract" |
| Heat number / furnace tracking | Steel manufacturing: each furnace pour = batch |
| Genealogy / where-used | "Which finished goods used batch ABC of raw material?" |
| Customer warranty | "This rod broke โ which batch was it? Investigate that batch only." |
3. What batch enables that standard CAN'T do
| Capability | Standard SAP | With Batch Management |
|---|---|---|
| Track stock by sub-grouping within SL | โ Cannot | โ Each batch is separate |
| FEFO picking (oldest expiry first) | โ No | โ Auto by batch search procedure |
| Recall individual lot | โ Recall entire stock | โ Recall just that batch |
| Track quality characteristics per batch | โ One spec per material | โ Per-batch classification |
| Different price per batch (split valuation) | โ One price per plant | โ Yes, with split valuation |
| Genealogy โ where did this batch go | โ Only material doc history | โ Full batch where-used (MB56) |
| Allocate batch to customer order | โ Limited | โ Batch determination in SD |
| Shelf-life expiry alerts | โ Material-level only | โ Per batch (MC.9) |
4. How to activate โ configuration steps
-
Decide batch level โ OMCT
Three options:
- Client level โ batch number unique across all plants and materials (rare)
- Material level โ batch unique per material across plants (common)
- Plant level โ batch unique per material per plant (most common)
Recommendation: Plant level for most projects. Easier to manage.
-
Set Material Master flag โ MM02 โ Plant Data / Storage 1 view
Tick
XCHPF"Batch Management". This activates batch behavior for this specific material at this plant.If material is already used, system warns โ you can activate going forward (new batches created), but existing stock won't be retroactively batched.
-
Choose batch number assignment โ OMCT
- Internal numbering โ system auto-generates (e.g. 0000000001, 0000000002...)
- External numbering โ user enters batch number on GR (e.g. "VENDOR-LOT-202605")
For pharma/food, external is often preferred (matches vendor's lot ID).
-
Define batch class โ CL02
Class type 023 for batches. Add characteristics that describe the batch.
-
Define characteristics โ CT04
Examples: ProductionDate, ExpiryDate, TensileStrength, Grade, OriginCountry, FurnaceNumber.
-
Define search strategy โ OMCY
Common strategies:
- FEFO โ First-Expired-First-Out (food, pharma)
- FIFO โ First-In-First-Out (general)
- LIFO โ Last-In-First-Out (steel where new is preferred)
-
Activate shelf life (if needed) โ MM02
Storage 1 view: MHDRZ (min remaining shelf life), MHDHB (total shelf life), IPRKZ (period D/W/M).
5. Batch classification with characteristics
The real power of batch management = classification. You don't just track that there's a batch โ you track WHAT'S SPECIAL about each batch.
Example โ PSEC Steel Rod batch classification
Class: STEEL_BATCH (Class type 023)
Characteristics:
HEAT_NO โ Furnace heat number (e.g. H-25-05-001)
TENSILE_MPA โ Tensile strength in MPa (e.g. 480, 510)
CARBON_PCT โ Carbon percentage (e.g. 0.18, 0.22)
GRADE โ A, B, C
PRODUCTION_DATE โ When made
EXPIRY_DATE โ Date if shelf life applies (not for steel)
When batch is created at GR:
Batch No. 0000000001
HEAT_NO = H-25-05-001
TENSILE_MPA = 485
CARBON_PCT = 0.19
GRADE = A
PRODUCTION_DATE = 2025-05-20
Now when a customer order needs Grade A + Tensile > 480, batch determination automatically picks matching batches via classification search.
T-codes for classification
| T-code | What it does |
|---|---|
| CL01 / CL02 | Create / edit class |
| CT04 | Create characteristic |
| CL20N | Assign characteristic values to batch |
| CLMM | Mass assign classification |
6. All T-codes for batch management
| T-code | What it does |
|---|---|
| MSC1N | Create batch master record |
| MSC2N | Change batch (status, characteristics, deletion) |
| MSC3N | Display batch |
| MSC4N | Display batch changes (audit) |
| MB56 | Batch where-used list (genealogy) |
| MB58 | Batches with restricted use |
| MBBS | Stock by batch |
| MMBE | Stock overview (includes batches if active) |
| CL20N | Assign batch to class (classification) |
| OMCT | Configure batch level (client/material/plant) |
| OMCY | Define batch search strategy (FEFO/FIFO) |
| MC49 | Shelf life expiration list |
| MC.9 | Batches expiring soon (alerting) |
| SE16N โ MCHA | View batch master (DB table) |
| SE16N โ MCHB | Batch stock per plant/SL/batch |
7. Real-world scenarios per industry
๐ฅ Pharmaceutical โ Lot tracking for recall
Material: Antibiotic XYZ-500mg (FERT)
Batch level: Material (one batch number per material across plants)
Batch numbering: External (matches manufacturer's lot)
Characteristics: ManufactureDate, ExpiryDate, GMP_Test_Pass
Scenario: Patient reports adverse reaction โ trace to batch number on packaging
โ MB56 shows: this batch supplied to 3 distributors, 47 pharmacies
โ Targeted recall, not all stock
๐ Food & Beverage โ FEFO shelf life
Material: Milk Powder 1kg (FERT)
Batch level: Plant
Batch numbering: Internal
Characteristics: ProductionDate, ExpiryDate, BestBefore
Shelf life: 365 days (MHDHB), min 30 days remaining (MHDRZ)
Search strategy: FEFO (oldest expiry first)
Scenario: Customer order ships โ SAP picks batch expiring soonest
โ Reduces waste, increases freshness on shelf
๐ฉ Steel manufacturing (PSEC) โ Heat number traceability
Material: Steel Rod 12mm (FERT)
Batch level: Plant
Batch numbering: External (heat number = batch)
Characteristics: HeatNo, TensileMPa, Carbon%, Grade
Scenario: Bridge contractor reports steel failure
โ Test failed rod โ identify HeatNo via packaging
โ MB56 finds all customers who got this heat
โ Test their stock; targeted replacement
โ Furnace investigation if metallurgical issue
๐งช Chemicals โ REACH compliance
Material: Industrial solvent (HAWA imported)
Batch level: Material
Characteristics: SupplierBatchID, OriginCountry, REACH_Cert_Available
Stock status: Quality hold until certificate verified
Scenario: EU customs requires REACH certificate per batch
โ Each batch tagged with source documentation
โ Compliance auditor pulls MSC3N, sees all data
8. When NOT to use batch management (over-engineering traps)
| Trap | Why it's wrong | Use instead |
|---|---|---|
| "We want to know which PO each stock came from" | That's already in material document history (MB51, EKBE) | Standard movement history |
| "We want different prices for same material from different suppliers" | Use split valuation by valuation type, not batches | Split valuation (OMW0) |
| "We need to separate stock by warehouse aisle" | That's WM bin management, not batch | WM/EWM with bin management |
| "We want to track quality status per stock" | Stock status already does this (Unrestricted / Quality / Blocked) | Standard stock types |
| "We want stock per project" | Use Project Stock (special stock indicator Q) or sales-order stock (E) | Special stock indicators |
9. Try it in real SAP โ step by step
- Open OMCT in IDES โ see the current batch level setting (usually plant level)
- Open MM02 for an existing material (e.g. T-AS100 in IDES) โ Plant Data / Storage 1 view โ tick "Batch Management" โ save
- Do a Goods Receipt via MIGO 101 โ notice the system now asks for Batch Number
- Enter batch (or let system auto-generate) โ save
- Run MSC3N for that batch โ see the batch master record created
- Open CL20N โ assign characteristic values
- Do another GR โ see new batch created
- Run MB56 โ see batch where-used list
- Run SE16N โ MCHB โ see batch stock table directly
10. Interview Q&A
What is batch management in SAP MM?
A feature that tracks stock at a sub-storage-location level via batch numbers. Each batch can have its own characteristics (production date, quality grade, expiry, heat number). Activated per material via the XCHPF flag.
What's the difference between batch level material vs plant?
Material-level: batch number unique per material across all plants (used when transferring material between plants keeps the batch identity). Plant-level: batch number unique per material per plant (most common โ simpler).
What is FEFO?
First Expired First Out โ batch search strategy that picks the batch with the earliest expiry first. Critical for food, pharma, perishables. Configured via search strategy OMCY.
Can a batch's classification values change?
Yes โ via CL20N. But change history is tracked. Some characteristics (like production date) should never change; others (like remaining shelf life) update automatically.
How is batch genealogy traced?
MB56 (batch where-used) shows where a batch was consumed. For finished goods made from raw material batches, batch input/output is captured in production order data (CO11N back-flush).
Is batch management mandatory for any industry?
Effectively yes for: pharma (FDA recall traceability), food (FSSAI/FDA shelf life), chemicals (REACH compliance), steel (heat number certification). Not legally mandatory but operationally required.