You are configuring SAP batch determination and the engine does not kick in. You are picking batches in the wrong order even though the sort rule is correctly set up. Welcome to the club of consultants who spent two days on a point that gets solved in five minutes once you know the right transactions. Here are the 6 clean steps and the 4 pitfalls that cost full days on a project.
What is batch determination in plain terms?
SAP batch determination is the function that automatically selects the batches to consume or deliver based on criteria you define: expiration date, quality status, plant, technical batch characteristic (set up through the SAP classification system). It replaces the manual entry of a batch number with a rules engine. It is this engine that makes industrial FIFO possible at scale.
Definition of an SAP batch
A batch in SAP is a physical instance of a material, identified by a unique number and carrying its own characteristics: production date, vendor, serial number, quality inspection result. The batch lives in table MCH1 and its stock in MCHB. You create it via MSC1N or it is born automatically at goods receipt (MIGO movement 101).
When the engine kicks in
Batch determination is triggered in four contexts: when creating or releasing a production or process order, during an outbound delivery (SD), during a WM or EWM picking, and during a stock transfer between plants. In all these cases, the system does not select the batch on its own. It applies the search procedure you configured, and that procedure drives the chaining of the rules. The SAP Help Portal documentation details the usage contexts module by module.

The modules involved (PP, MM, SD, WM)
Batch determination is used by several SAP modules, each with its typical use case and its triggering transaction.
| Module | Use case | Transaction |
|---|---|---|
| PP (Production Planning) | Consumption of components in a production or process order | CO01 / COR1 |
| MM (Materials Management) | Manual goods issue, transfer | MIGO |
| SD (Sales and Distribution) | Picking of an outbound delivery | VL01N / VL02N |
| WM / EWM | Transfer order picking in the warehouse | LT03 / Fiori warehouse |
We stay on the PP configuration (production order) in what follows. That is where most consultants run into the topic for the first time. The principles (condition table, access sequence, search procedure) are identical for SD, MM and WM. Only the assignment transactions change.
Configuring batch determination in 6 steps
The Customizing fits into 6 objects to chain in order. The SPRO path:
Logistics → Central Functions → Batch Management → Batch Determination → Batch Search Procedure
Here are the 6 steps, in order.
- 1
Create the condition table
The condition table defines the search key: which fields will SAP use to look for a strategy record? In PP, the classic combination is plant plus material plus order type. You create the table in the batch determination Customizing, under application
PP(or MM, SD, WM depending on your case).
Customizing screen of condition table 030: you choose the fields (plant, material, customer) that structure the batch determination matrix. - 2
Define the access sequence
The access sequence orders the condition tables by priority. SAP tests the tables from the most specific to the most general until it finds a record. If you have two tables (plant plus material, and plant only), you place the most specific one in first position.

Access sequence batch determination: order in which SAP tests the condition tables, from the most specific (plant + material) to the most general, until it finds an applicable record. - 3
Set up the sort rule
The sort rule drives the sorting order of the eligible batches: FIFO on production date (characteristic HSDAT), sort on expiration date (characteristic VFDAT), LIFO or a custom criterion. You create it in
CU70by selecting the sort characteristics and their ascending or descending order. A step often forgotten at the assignment to the strategy type, see pitfall 3 further down.
Sort rule batch determination: SAP sorts the candidate batches by characteristic (production date, FIFO, FEFO) in ascending or descending mode before proposing the selection. - 4
Build the strategy type
The strategy type links the access sequence to a batch selection logic and to a sort rule. It is the pivot object of the Customizing: it declares how SAP must search (access sequence), filter (characteristic class) and sort (sort rule) the batches.

Strategy type YB11: central container that aggregates access sequence, characteristics class and sort rule. It is the one the search procedure will call to run the determination. - 5
Assemble the search procedure
The search procedure groups one or more strategy types in an execution order. SAP runs the strategy types one by one until it finds enough batches to cover the requested quantity. It is the final container of the Customizing.

Search procedure: ordered chaining of the strategy types tested one by one until the requested quantity is covered. It is the final entry point of the batch determination Customizing. - 6
Assign via OPL8
Last step, and the one that most often fails: you assign the search procedure to the order type via
OPL8(Order Type Dependent Parameters). Without this step, the engine never kicks in: all your Customizing is correct but inactive. Check it for each order type involved. For the Manufacturing detail, see SAP KBA 3649584.
Transaction OPL8: assignment of the batch determination search procedure to the production order type (or DSD for SD, OMI4 for MM). Without this link, the engine does not kick in.
Once the 6 steps are done, you maintain the condition records in COB1. This is the step that turns the Customizing (technical) into operational data (business).
Maintain the records in COB1, the step everyone forgets
On the PP projects I have seen, forgetting to maintain COB1 after go-live is recurring. The batch determination engine is silent about its own missing records: it raises no error, it just returns an empty batch list. The consultant who debugs spends the whole day searching in the configuration, while the problem is in the data.
Pierre Balbinot, SAP PP/PM consultant
COB1 creates and maintains the condition records of the batch determination engine. Without a record in COB1, your Customizing is valid but the engine finds no applicable strategy and returns an empty batch list. This is the number one silent pitfall.
COB1 vs MBC1: do not mix them up
COB1 is the transaction for creating and maintaining the condition records (Customizing and master data side). MBC1 is the transaction for running the batch search on the user side, which consumes the records configured in COB1. In plain terms: COB1 writes the rules, MBC1 applies them. On S/4HANA, MBC1 is largely replaced by the Fiori apps Manage Batches and Maintain Batch Search Strategies, but COB1 remains the reference transaction for the configuration.
ECC vs S/4HANA: what really changes
The batch determination logic is strictly identical between ECC and S/4HANA. What moves is the surrounding master data and the UI.
SAP ECC
- Batch level configurable plant or material via
OMCT - Batch classification via class type 022 (plant) or 023 (material/client)
- UI 100% SAP GUI:
COB1,MSC1N,MSC2N OPL8andCU70identical to the S/4 Customizing
SAP S/4HANA
- Batch level moved up to the client by default, classification simplified to class 023
- Fiori apps Manage Batches and Maintain Batch Search Strategies complement the GUI
COB1,OPL8,CU70kept identical- ECC to S/4 migration: no rework of the batch determination Customizing
So you can reassure the project managers during a migration: batch determination is not part of the work packages to rebuild. You transport your Customizing as is, you check the batch level (which may move on the MM side) and you run a regression test. For the post-migration classes and batch levels, SAP KBA 3078948 provides the up-to-date matrix.
4 pitfalls we run into in production
Pitfall 1: Batch Management activated after stock movements
You activate the Batch Management flag in MM02 on a material that already has stock in MCHB. By default, SAP will not let you do it (error message). But if you force it one way or another … The result: MIGO blocks every movement with an error message on batch level consistency. The fix: activate Batch Management before any movement, or archive the existing stock before switching the flag. The creation of the Production Version, which often serves as a prerequisite, follows the same timing logic.

Pitfall 2: OPL8 forgotten on a custom order type
You copy a standard order type PP01 into ZP01 for a specific business need. You carry over the whole dependent Customizing, except the assignment of the search procedure in OPL8. The batch determination engine never kicks in on ZP01 and raises no error. You search through the Customizing for hours while the cause is a missing line in OPL8.
Pitfall 3: Sort rule defined but not assigned to the strategy type
You create a clean FIFO sort rule in CU70, you save, you test. SAP picks the batches in a seemingly random order. Cause: the sort rule exists but is not linked to the strategy type involved. The engine therefore selects the batches without sorting. The fix: open the strategy type, sort sequence tab, explicitly link the sort rule.
Pitfall 4: Class type 022 vs 023 chosen wrong
You work with a material batch level (S/4 default) but you classified the material via class type 022 (plant level). The characteristics do not propagate, the engine ignores your filters and returns all the available batches. The fix: align the class type with the actual batch level (023 for material/client, 022 for plant).

FAQ: SAP Batch Determination
What is the difference between COB1 and MBC1?
COB1 creates and maintains the condition records (search strategy records) on the Customizing and master data side. MBC1 is the transaction for running the batch search on the user side, which applies the records configured in COB1. In plain terms: COB1 writes the rules, MBC1 applies them. On S/4HANA, MBC1 is largely replaced by the Fiori Manage Batches apps but COB1 remains the reference for the configuration.
Why does my batch determination not trigger in the production order?
Three causes come up on projects. The search procedure not assigned to the order type via OPL8 (without this line, the engine never kicks in). No condition record in COB1 for the plant plus material plus order type combination. Or the material does not have the Batch Management flag active in MM02. Check these three points before digging into the Customizing.
How do I activate batch determination on an existing order type?
Go into OPL8, select your order type and your plant, open the Implementation tab. Enter the search procedure in the Batch Search Procedure field and activate the Automatic Batch Determination flag if you want the engine to kick in without user intervention. Save. The engine will be active on the orders created from this line onward. Orders already created do not receive the new config.
Do I need to redo the configuration when migrating ECC to S/4HANA?
No. The batch determination Customizing is kept as is during an ECC to S/4HANA migration. The transactions COB1, OPL8 and CU70 are identical. What may move on the MM side: the batch level (which may rise to the client by default on S/4) and the classification (class 023 being the majority). You transport your Customizing, you check the batch level with OMCT in pre-go-live and you run a regression test on the critical order types.
Can you force a strict FIFO order with batch determination?
Yes, provided your sort rule is created in CU70 on the production date characteristic (or receipt date depending on your convention) in ascending order, then assigned to the strategy type involved in its sort sequence tab. If you forget the assignment to the strategy type, your sort rule exists but is never applied and SAP selects the batches in a seemingly random order (see pitfall 3).
Does batch determination work in MIGO 261 (manual consumption)?
Yes, but with a nuance. The engine kicks in at goods issue on the production order side (release or confirmation), not at manual entry MIGO 261 outside an order. If you do a 261 movement directly on a cost center without going through an order, batch determination in PP has no context to kick in. For this case, configure a search procedure on the MM side (application 02) and assign it to movement type 261 via OMK1.
Batch determination is a silent engine. It raises no error when a record is missing. It does not tell you that your sort rule is not linked. When a consultant tells me “my batch determination does not work”, I always start with COB1 and OPL8. The technical Customizing comes after.
If you want to go further on the PP module end-to-end, we are preparing a complete SAP PP training that will be released on our short training catalog in the coming months. For the prerequisites linked to the creation of the Production Version, see our SAP Production Version tutorial. And on the logistics side, the same cascade logic applies for the storage bin type search in SAP WM, where SAP filters the candidate bins across 3 levels before retaining the final storage bin.