Setup Step 17 — PP Setup for Production

REFERENCE Layer 5 · owned by PP ⏱️ do when scenario needs it CR01 CA01 CS01 C223 CO01 OPJH
← Previous
Step 16: SD Setup for Inter-Company STO
Next →
Step 18: BP Master Data Configuration

🎯 Why this setting exists

Some MM scenarios involve production-related goods movements that only work if a PP (Production Planning) skeleton exists behind them: To test movement 261 properly you need a work center, BOM, routing and a production order. The easier alternative for most learning is movement 201 (goods issue to a cost center) — no PP required. That's why this whole step is "do it when the scenario needs it".

💡 Easy example

PakSteel's Karachi factory (PK01) wants to make steel billets. PP first defines the recipe: a BOM says "1 TO of steel billet = ~1.05 TO of iron (RM-IRON-01)" and a routing says "melt the iron, then cast the billet on work center WC-MIL01". Together they tell SAP what goes in and how it's made.

When a production run starts, PP creates a production order. Now MM steps in: the iron (RM-IRON-01) sitting in stock is an MM material, and issuing it onto that production order is a goods issue with movement type 261 — pure MM. The finished billet comes back into stock with movement 101.

So the split is clean: PP owns the recipe and the order; MM owns the material and the goods issue. If you only need to practice the goods issue, skip the PP recipe entirely and issue to a cost center with movement 201 instead.

🔗 How this connects to everything else

This is PP master data, but it sits on the plant you built and it consumes MM materials. Here is the web — useful because on a real project you own the material and the movement, and must coordinate with the PP consultant who owns the recipe.

⬆️ Depends on (must exist first)

  • Step 3 — Plants: every work center, BOM, routing and production order is created at a plant (e.g. PK01). No plant, no production.
  • The materials being produced and consumed must exist with the right views — finished product (FERT) and the raw/semi-finished component (HALB/ROH).

⬇️ Enables (what this unlocks)

  • Production goods issue — movement type 261 against a production order (Scenario 3).
  • Subcontracting components — the BOM that explodes when you issue components to a subcontractor (Scenario 9).
  • The full make cycle: CO01 → GI 261 → confirmation CO11N → GR 101 of the finished product.

🧩 Who owns it & why MM cares

PP The PP consultant configures work centers, routings, BOMs and order types. You don't build the recipe — but the components it consumes are your materials. When a production order issues a component, that is movement type 261 on an MM material out of an MM storage location; the finished good comes back as 101. MM owns the material master (including the MRP views that drive planning), the procurement type, and every goods movement the order triggers. Knowing how the BOM, MRP views and mvt 261/101 fit together lets you talk to the PP consultant precisely — and configure the parts that are genuinely MM (Purchasing + MRP views, subcontracting item category L).

🔮 Links to other modules (now & later)

  • PP Work center, routing, BOM and the production order itself — the recipe and the run.
  • CO The production order settles to CO; work-center costing uses a cost center + activity type, and variances post at settlement.
  • MM Material master MRP views, procurement type (E/F/X), and the mvt 261/101 stock postings the order triggers.

🔧 Configuration — the full production setup, in order

✅ Live-tested — do it in THIS order and you hit no walls
A production order needs two layers: (A) one-time config gates for your plant & controlling area, then (B) the master-data recipe, then (C) create & run the order. Almost everyone fails because they jump to the order (C) before the gates (A) exist — each missing gate throws a different error. Build A → B → C and it flows.

T-codes in play — Config: OKKP OPJH CO82 OPL8 OPU3 OPJK · Master data: CR01 CS01 CA01 C223 · Run: CO01 CO02 MIGO

Part A gateT-codeWhy it's neededError if missing
Activate Order ManagementOKKPThe order is a CO object; CO must allow orders in your controlling area"Activate order management in controlling area PSPK in 2026"
Order typeOPJHDefines the order category (PP01 = standard production order)(PP01 is standard — already there)
Number rangeCO82Gives the order its number"Maintain a number range for order type PP01"
Order-type params (per plant)OPL8Costing variants, settlement, control — per plant"Order type-dependent parameters are missing… PP01 in plant PK01"
Scheduling params (per plant)OPU3How the order calculates its dates"Scheduling parameters are not defined for production orders"
Availability check controlOPJKThe rule the release runs to check availability"No checking rule maintained… release not possible"
Optional for MM: ~90% of MM learning never needs production orders — use mvt 201 (cost center) instead of 261, and subcontracting (Scenario 9) needs only a BOM. But if you want the real 261, here is the complete, error-free path.

🅰️ Part A — the one-time config gates (do these FIRST)

A1 · Activate Order Management — OKKP

What: The controlling area's master switch for which CO components are active, per fiscal year.

Why: A production order is a CO cost object — every cost posted to it (your 261 consumption) lands in Controlling. CO refuses it unless Order Management is switched on.

Settings:

  1. OKKP → controlling area PSPK → left tree Activate components/control indicators
  2. Open the fiscal-year row covering today (2026 to 9999)
  3. Order Management → change "Component not active" to "Component active". Leave Cost Centers active, the rest unchanged.
  4. Save (Customizing request → continue)

Easy example: PakSteel's books (PSPK) were set up for cost centers but never told "we also run production orders" — this flips that switch on. Without it: the 261 fails "Activate order management in controlling area PSPK in 2026." Links: all CO reporting on the order (KOB1), settlement.

A2 · Order Type — OPJH

What: The order-type template. PP01 = standard production order (order category 10). Client-level — applies to every plant.

Why: Every production order is "of a type"; the type carries the category and points to the number range.

Settings: use standard PP01 — nothing to create. (Only touch OPJH if you ever need a custom Z order type.)

Links: number range (A3), order-type parameters (A4).

A3 · Number Range for Orders — CO82

What: The pool of numbers production orders draw from (number-range object AUFTRAG, shared by production & internal CO orders). Numbers live in groups; each group = one interval + the order types assigned to it.

Why: The order needs a unique number, so its order type must sit in a group that has an interval.

Settings (internal numbering, so SAP auto-assigns — no typing):

  1. CO82Goto → Groups
  2. Group → Insert → text PakSteel Production Orders → interval From 000002000000 To 000002999999leave "Ext" UNticked
  3. Scroll to Non-assigned elements (bottom) → tick PP01 + tick the new group → Edit → Element/Group → PP01 moves in
  4. Save → confirm the "number ranges are not transported" message (normal — they never are)

The "Ext" flag is the key: unticked = internal (SAP picks the number — recommended), ticked = external (you must type a valid number every time). Without any assignment: "Maintain a number range for order type PP01."

A4 · Order-Type-Dependent Parameters (per plant) — OPL8

What: The settings applied when order type PP01 is used in a specific plant — costing, settlement, planning behaviour.

Why: The order type is global, but costing/settlement differ per plant, so each plant needs its own set.

Settings — New Entries: Plant PK01 · Order Type PP01:

TabFieldValue & why
PlanningReservation/PurReq3 (immediately) — create the component reservation as soon as the order exists, so your 261 has a reservation to issue against
Cost AccountingCosting Variant – PlannedPPP1 — calculates the order's planned cost. (If it later errors "no valuation variant for PK01", either blank this to skip pre-costing, or fix the valuation variant in OKK4.)
Cost AccountingCosting Variant – ActualPPP2 — values the actual costs collected on the order
Cost AccountingSettlement Profilea production settlement profile — controls where the order settles (→ the material). It's what makes the settlement rule auto-create as "to material"
Cost AccountingDefault RulePP1 (settlement to material)

Without it: "Order type-dependent parameters are missing for order type PP01 in plant PK01." Links: costing variants (→ valuation variant), settlement profile (→ the auto settlement rule you see when you save the order).

A5 · Scheduling Parameters (per plant) — OPU3

What: How the order works out its start/finish dates.

Why: Enter a quantity + finish date and the order schedules using these rules. No rule = it can't schedule.

Settings — New Entries: Plant PK01 · Order Type PP01 · Production Scheduler *:

  1. Adjust Dates: "Adjust basic dates, adjust dep. reqmts to operation date"
  2. Scheduling Type: Backwards · Automatic Scheduling:
  3. Generate Capacity Reqs: off (simpler) → Save

The * scheduler is a catch-all — it covers whatever scheduler (e.g. PK1) is on the material, so you don't need one row per scheduler. Without it: "Scheduling parameters are not defined for production orders."

A6 · Availability Check Control — OPJK

What: The rule the order runs to check availability — at create (business function 1) and at release (business function 2).

Why: Release runs an availability check; with no rule defined it can't run and rejects the release.

Settings — New Entries: Plant PK01 · Order Type PP01 · Business Function 2 (Release):

  • Simplest (learning): under Material availability tick "No check" (same for PRT; Capacity is usually "No check" already). No rule needed → release passes.
  • Proper (real): leave "No check" off and set Checking Rule PP — SAP then does a real ATP check using the material's availability check group (MRP 3 view = 02).
  • Repeat for Business Function 1 (Create) → Save.

Without it: "Order type PP01 plant PK01: No checking rule maintained for operation → Release of order not possible." Links: the material's availability check group (MRP 3).

🅱️ Part B — the master-data recipe

Create the materials first (full field-by-field): Create the Production Materials. Then build the recipe below. Canonical chain: make HALB-BILLET-01 from RM-IRON-01.
B1 · Create Work Center — CR01

What: Work Center = where production happens (machine, assembly line, manual workstation). Holds capacity, scheduling, costing data.

SPRO Path: Master data, not config. Run the T-code directly.

Action:

  1. Run CR01
  2. Plant: PK01 · Work Center: WC-MIL01 (Milling Center 1) · Category: 0001 (Machine)
  3. Basic Data tab: Description, Person Responsible, Usage = 009 (Routings + Networks)
  4. Default Values tab: Setup time, machine time, labor time
  5. Capacities tab: Capacity category (machine/labor), available capacity
  6. Costing tab: Cost Center (e.g., PKKHI-PROD), Activity Type
  7. Save

Repeat for other work centers as needed (WC-WLD01 welding, WC-PCK01 packing, etc.)

B2 · Create Bill of Materials (BOM) — CS01

What: BOM = the recipe — what components and quantities are needed to make 1 unit of a finished product.

Already covered in Scenario 9 (Subcontracting) — same T-code.

Quick action:

  1. Run CS01
  2. Material: the product you make — HALB-BILLET-01 · Plant: PK01 · BOM Usage: 1 (Production)
  3. Component: RM-IRON-01 · Quantity ~1.05 TO per 1 TO of billet
  4. Save → BOM number assigned
B3 · Create Routing — CA01

What: Routing = the production process steps. Defines WHICH work center does WHAT operation in WHAT sequence with WHAT time.

Action:

  1. Run CA01
  2. Material: HALB-BILLET-01 · Plant: PK01 · Group/Counter auto
  3. Header data: Usage 1, Status 4 (Released)
  4. Operations:
    • Op 0010: Work Center WC-MIL01 · "Melt iron" · Time 30 min/TO
    • Op 0020: Work Center WC-MIL01 · "Cast billet" · 15 min/TO
  5. Save → Routing # assigned
B4 · Create Production Version — C223 S/4HANA: mandatory

What: A production version locks one valid BOM + routing combination together for a material. In S/4HANA it is mandatory — MRP Live, planned orders and production orders all refuse a material that has no active production version (in classic ECC it was optional). So even for a single test order you must create one.

Action:

  1. Run C223 (or open the finished material in MM02MRP 4 view → Prod. versions button)
  2. Material: HALB-BILLET-01 · Plant: PK01
  3. New version 0001 · valid-from / valid-to dates · lot-size range (e.g. 1 – 99,999,999)
  4. Link the BOM (alt. BOM 1, usage 1 from B2) and the routing (group/counter from B3)
  5. Press check — the consistency lamp must turn green — then Save

No production version = error at CO01 ("no valid production version"). This is the #1 thing an ECC habit trips over in S/4HANA.

▶️ Part C — Create, release & issue the order

C1 · Create → release → 261 — CO01 · CO02 · MIGO

Create the order:

  1. CO01 → Material HALB-BILLET-01 · Plant PK01 · Order Type PP01 · leave Order blank (auto-numbers, from A3) → Enter
  2. Total Qty 25 TO · Basic End date a few days out → Enter → it schedules (Start fills), finds production version 0001, explodes the BOM (RM-IRON-01) and pulls the routing.

Two prompts you'll see — both harmless:

  • Settlement rule — leave it blank; the material rule auto-creates at save. You can't type a MAT rule ("can only be created automatically") — just Back out.
  • "Error calculating costs?" → click Yes. Pre-costing only fails if the valuation variant isn't set for PK01; it does not affect the goods issue. (Silence later via OKK4 if you like.)

Release & save:

  1. Click Release — the green flag 🏳 (or CO02 → Functions → Release). Status must reach REL — a 261 needs a released order.
  2. If release is rejected, open Goto → Logs for the reason (that's how we found the OPJK gap — A6).
  3. Save → note the order number (e.g. 2000000).

Post the goods issue (the 261):

  1. MIGOGoods Issue · Order → type the exact order number → Enter
  2. RM-IRON-01 loads → Qty 25 TO · Plant PK01 · SLoc RAWM · movement type 261 → tick Item OKPost
  3. Result: 400000 Consumption Dr / 300000 Inventory Cr, charged to the order. → see Scenario 3.2. Verify: KOB1 shows the cost on the order.
⚠️ Before the next step (GR 101 of the finished billet): error M7 097

The 261 above issues the iron. To bring the finished HALB-BILLET-01 back into stock with GR 101, its material type must be quantity + value managed in valuation area PK01 — otherwise GR 101 (and a 309 reclassification into it) fails with "No stock posting possible… M7 097." ROH was already on, which is why the iron postings worked; HALB/FERT often aren't, on a freshly created plant.

Fix once: OMS2 → select material type HALB (then repeat for FERT) → in the Dialog Structure double-click Quantity/value updating → row for valuation area PK01 → tick Qty updating ✅ + Value updating ✅ → Save (create a Customizing request — fine on a test server).

Then a follow-on error C+470 "Missing connection… to the material ledger"? Turning value updating on means the material now needs a Material Ledger record (mandatory in S/4HANA) that it never got. Repair it: SE38 → report ML_REPAIR_ML_MASTERDATA → Material HALB-BILLET-01 · valuation area PK01 → test run, then real. (Check ML is active for PK01 in OMX1; if the whole new valuation area was never started, run FCML4H_STARTUP for PK01.) Then GR 101 posts.

📋 These two gates (OMS2 + Material Ledger) plus storage-location extension are explained from scratch in Stock-Readiness Settings.

🎯 Material Master MRP views needed for production MM owns this

If you want full production planning, your material master needs these views (set in MM01/MM02):

ViewKey fields for PP
MRP 1MRP Type (e.g., PD = MRP), MRP Controller, Lot Size (e.g., EX = Exact, FX = Fixed)
MRP 2Procurement Type (E = In-house, F = External), Planned Delivery Time, GR Processing Time
MRP 3Safety Stock, Reorder Point, Forecast settings
MRP 4BOM Explosion, Selection method for routing
Work SchedulingProduction Storage Location, Production Scheduler, In-House Production Time
💡 The MM consultant's role in production scenarios (read this)

You don't configure PP, but you DO:

  • Set up the material master Purchasing view + MRP views (collaborate with PP)
  • Define the material's procurement type (E vs F vs X)
  • Configure subcontracting (Scenario 9) — BOM + item category L on the PO
  • Handle GR from a production order (mvt 101 of the finished product)
  • Handle backflushing of components (auto GI mvt 261 when production is confirmed)

🚨 Issues & fixes

⚠️ If you skip this step
You can still do most MM scenarios: For ~90% of MM learning you can skip this step entirely. Only set up PP if you want the full cycle (CO01 → GI 261 → confirmation CO11N → GR 101).

Common gotcha: a mvt 261 goods issue requires a released production order — if you created it but didn't release it (green flag 🏳 / CO02 → Functions → Release), the goods issue is blocked with "not permitted for goods movement." And the component must have stock at the issuing storage location (RAWM), or the GI fails for "deficit of stock".

✅ Verification

← Previous
Step 16: SD Setup for Inter-Company STO
Next →
Step 18: BP Master Data Configuration