SAP Library / PP / M2D / Cheat sheet
SAP PP / M2D cheat sheet
25 objects in 3 groups. Each links to its full reviewed page.
T-Codes13
- MD01NMD01N is used to run HANA-optimized Material Requirements Planning for selected plants, materials, product groups or MRP controllers. It is most useful when S/4HANA planners need a regenerative or net-change planning run using MRP Live. Start with the exact document, material, organizational scope and business date, then follow status and document flow before changing configuration or master data.
- MD04MD04 displays the stock/requirements list for a material at plant or MRP area level: current stock plus every open demand and supply element, pulled live from planning, sales, purchasing and production tables. It has no persistent table of its own. What appears depends entirely on whether MRP has actually run for that material and whether the planning file entry is set.
- MD05MD05 displays the MRP list, the frozen snapshot of stock, requirements, and exception messages that was written to the database when MRP last ran for a given material and plant. It does not recalculate anything live. If stock or demand has changed since that run, MD05 will not show it until MRP is executed again and a new list is generated.
- CO01CO01 creates a production order manually, exploding the BOM and routing for a material at the moment of creation to build the order's operations, components, and dates. It does not stay linked to master data afterward: changes to the BOM or routing after the order is saved will not appear on the order unless someone explicitly triggers a recompute in CO02.
- CO02CO02 changes an existing discrete production order created in CO01 - header dates, quantities, operations, components, and status (release, hold, technical completion). The key structural fact is that editability is status-dependent: once an order carries a system status like released, partially confirmed, or delivered, large parts of the order lock, and changes made at header level do not automatically retro-adjust operations or reservations that were already fixed.
- CO03CO03 is the read-only counterpart to CO02, opening a production order in display mode so no field can be changed. It shows the same header, operation, component, cost and confirmation data as the change transaction, but every input field is protected. Consultants use it to check order status, quantities and confirmations without risking an accidental save.
- CO11NCO11N is the standard transaction for entering time and quantity confirmations against a production or process order operation. It records yield, scrap, and activity quantities, triggers automatic goods movements for backflushed components, posts activity costs to the order, and can set the operation or order to final confirmed. It replaced CO11 as the default entry screen.
- CO15CO15 posts a completion confirmation against a production order, at the level of the whole order or selected operations, recording actual yield, scrap and activity quantities. In the same step it can trigger automatic goods receipt for the header material and automatic goods issue for backflushed components, so a confirmation failure often surfaces as an MM stock or reservation error rather than a pure PP problem.
- CS01CS01 creates a new material bill of material: a header record for a material, plant and BOM usage, plus the component item lines underneath it. It only works when no BOM already exists for that exact material, plant and usage combination — if one does, the system throws an existence error and CS02 has to be used instead.
- CS02CS02 changes an existing material bill of material - components, quantities, validity, or alternative BOM assignment. It writes to MAST, STKO and STPO. Most confusion around it comes from BOM usage and alternative BOM being separate dimensions from the material itself, and from engineering change management making some fields date-effective rather than immediately overwritten.
- CS03CS03 is the display-only transaction for a material Bill of Material. It shows the header material's components for a given plant, BOM usage, alternative BOM, and validity date, reading from MAST, STKO and STPO without allowing changes. Most confusion comes from users assuming there is one BOM per material when there can be several alternatives and usages, each independently validity-dated.
- CA01CA01 creates a routing (task list) that defines the operations, work centers, and standard values needed to manufacture a material. The routing itself is identified by a group and group counter, independent of any material; the material is linked to it separately through a task list-material allocation, which is the source of most confusion about why a routing does not show up on an order.
- CA02CA02 changes an existing production routing: the operation sequence, work centers, control keys, standard values, and component-to-operation assignment for a material. It does not automatically update production orders already created from the routing, and a material can have several valid routings distinguished by usage, status, and validity dates, so the change made is not always the one an order actually picks up.
Key Tables8
- AFKOAFKO holds the operational header data for a production or process order: basic and scheduled start/finish dates, the MRP controller and production scheduler, the reservation number for components, and the pointers into the BOM (STLNR/STLAL) and routing (PLNNR/PLNAL) that were exploded when the order was created. One row per order number, keyed on AUFNR.
- AFPOAFPO stores the item-level data of a production or process order: the material being produced, the plant, the order quantity, batch and storage location, goods receipt quantity, and the make-to-order link to a sales order. Each row is one order item, usually item 0001 for the main product, with additional items for co-products or by-products. It joins to AFKO by order number.
- AFRUAFRU stores order confirmations, one row per confirmation number and counter, recording confirmed yield, scrap, work center, actual start and finish dates, and posting date for a specific operation of a production or process order. It is the table to query when reconciling reported quantities, actual dates, or work center load against what the order routing planned.
- AFVCAFVC stores one row per operation (or sub-operation) of a production or process order's routing: the operation number, control key, work center, and descriptive text. It does not hold planned or actual quantities and times, those sit in AFVV and AFRU respectively, joined back to AFVC through the internal keys AUFPL and APLZL.
- PLAFPLAF stores one row per planned order header, the intermediate planning object created by MRP before it is converted into a production order, process order, or purchase requisition. It holds the planned quantity, dates, plant, MRP controller, and procurement type. It does not store the order's components or operations directly; those live in linked tables reached through the order's internal planning number.
- RESBRESB stores reservation and dependent requirement line items: one row per material requirement tied to a production order, planned order, network, maintenance order, or cost center. Key fields are RSNUM, RSPOS, MATNR, WERKS, BDMNG (requirement quantity), ENMNG (withdrawn quantity), BDTER (requirement date) and AUFNR (order number). It records planned demand, not the actual goods movement.
- STKOSTKO is the bill of material header table. One row is one internal BOM (identified by BOM category, internal BOM number and alternative) holding header-level data such as base quantity, unit, status and deletion flag. It does not carry material number or plant directly; those links live in MAST for material BOMs, so STKO must always be joined outward to be useful.
- STPOSTPO stores the item-level data of a bill of material: one row per BOM item node, holding the component material, quantity, unit of measure and item category. It is alternative- and validity-independent; which alternative uses which item, and from when to when, is controlled separately in STAS. Always join through STLKN, never assume STPO alone tells you the current, active BOM.
Common Issues4
- MRP not generating a planned order for a required materialThe most common reason is that the material never entered the MRP run at all because its planning file entry is missing or stale, not because the requirement is wrong. Before touching demand or master data, confirm in the planning file (MD21) whether the material was flagged for the last net change run; if it was not, no amount of re-running MD01 will produce a proposal.
- Production order not releasing due to missing componentsThe order fails release because the availability check on one or more BOM components returns a shortage, either a real one or a false one caused by checking control scope, blocked stock, a missing plant extension, or a storage location mismatch between the reservation and where stock physically sits. Forcing release without fixing the underlying check only moves the failure to confirmation.
- BOM component not exploding in the production orderA component defined in the bill of material does not appear on the production order's component list, most often because the BOM item is deleted or flagged not relevant, its effectivity dates do not cover the order's basic start date, the production version points to a different BOM alternative, or a variant configuration object dependency excludes the item based on the order's characteristic values.
- Routing not selected for the production orderThe production order is created with no operations, or with only a single dummy operation, because the system found no valid routing for the material and plant combination at order creation. This is almost always a routing master data or selection logic issue: missing routing, wrong status, expired validity, lot size range mismatch, or a production version pointing to a routing group and counter that no longer exists.