Setup Step 3 — Create Plants
MANDATORY
Layer 2 · Logistics · owned by MM
⏱️ ~20 min
OX10
🎯 Why this setting exists
The plant is the operational location — the physical place where business activity happens: where stock is stored, where production runs, where goods are received and issued. It is the single most-referenced entity in MM. Material has plant-specific views, MRP runs per plant, and every stock figure is "stock at a plant." Without a plant, there is no MM: nothing to receive into, store, value, or consume.
💡 Easy example
Think of a plant as one physical building or site. PakSteel's Karachi factory (PK01) is a plant; its Lahore factory (PK02) is a different plant. Each building keeps its own stock count and runs its own production schedule — 50 tons of iron at Karachi is not the same pile as iron at Lahore.
The company code (PSPK) is the company that owns both buildings on paper and files one set of accounts; the plants are the buildings where the actual work happens. One company, many plants — like one business with several branches.
The company code (PSPK) is the company that owns both buildings on paper and files one set of accounts; the plants are the buildings where the actual work happens. One company, many plants — like one business with several branches.
🔗 How this connects to everything else
A plant never stands alone. Here's the web of settings and modules that hang off it — useful whether you configure it or just need to discuss it with the FI/PP/SD consultant who does.
⬆️ Depends on (must exist first)
- Step 1 — Company Code: a plant is only useful once it can be assigned to a company code (next step) so its stock has a balance sheet to be valued against.
- A factory calendar (Pakistan "PK") must exist — used for delivery-date scheduling.
⬇️ Enables (what this unlocks)
- Step 4 — Assign Plant → Company Code (the actual MM↔FI link)
- Step 5 — Valuation Level: the plant is the valuation area in most setups
- Step 7 — Storage Locations live inside a plant
- Step 10 — Purch Org → Plant assignment
- Material master plant views (MM01) and every goods movement (Scenario 1 onward)
🧩 Who owns it & why MM cares
MM Logistics-General. This is core MM territory — you will configure and reference plants constantly. It's the anchor for stock, valuation, purchasing, and production.
🔮 Links to other modules (now & later)
- FI Plant rolls up to the company code → its stock value lands on that legal entity's balance sheet.
- PP Production happens at a plant; work centers, BOMs and routings are plant-specific.
- SD The "delivering plant" on a sales order decides where goods ship from.
- QM Quality inspection is set up per plant + material.
- WM Warehouses sit under a plant's storage location.
- CO Plant links to product costing / valuation in Controlling.
🔧 Configuration — fields & steps
OX10 · SPRO → Enterprise Structure → Definition → Logistics — General → Define, copy, delete, check plant
Action sequence (for each plant)
- Run OX10 → Copy from an existing plant like
0001or1000(copies screen/field defaults) - Target:
PK01(your new plant) - Click "Define plant" → select
PK01→ fill the fields below - Click "Address" → fill the address tab → Save
- Repeat for
PK02,PK03,AE01
Fields explained
| Section · Field | Fill | What the field asks (plain words) | Why we choose this — and the impact if wrong |
|---|---|---|---|
| Define Plant — detail screen | |||
| Plant* | PK01 (required) | What is this location's own short code? Like a branch number over the door — it names the site and never changes. | A 4-character ID and the most-used field in all of MM: every stock figure, material view and goods movement is tagged with it. Pick meaningful codes (PK = Pakistan sites, AE = UAE). Impact: the code is frozen the moment the plant is first used, so a careless code is stuck forever, and a wrong code sends stock and its accounting to the wrong site. |
| Name 1* | Karachi Factory (required) | What readable name should staff see for this site? The code is the ID; this is the label people read. | Shown in every transaction that lists the plant, so use city + function ("Karachi Factory") to make the right site obvious. Impact: a vague name like "Plant 1" makes buyers and storekeepers pick the wrong plant from long dropdown lists. |
| Factory Calendar* | PK (required) | Which working-days-and-holidays calendar does this site follow? Like the wall calendar that marks the days the factory is open. | PK marks Pakistan's non-working days (Sundays, Eid, public holidays); scheduling and delivery-date planning count only the open days. Impact: the wrong calendar (say one without Eid) makes SAP promise deliveries on days the plant is shut, so every planned date comes out wrong. |
| Customer | — (blank now) | The customer-master number that represents this plant in cross-company stock transfers — so it can be shipped to and billed like a customer. | Left blank for now; needed only when you set up inter-company stock transport orders (STO), covered in Step 14. Impact: none until then — but an inter-company STO cannot create its delivery to this plant without it. |
| Vendor | — (blank now) | The vendor-master number that represents this plant in cross-company stock transfers — so it can act as the supplying side. | Also blank now, set together with inter-company STO in Step 14. Impact: none until then — but the STO cannot name this plant as the supplying plant without it. |
📍 Plant address fields
| Section · Field | Fill | What the field asks (plain words) | Why we choose this — and the impact if wrong |
|---|---|---|---|
| Address tab | |||
| Street | Industrial Area, Korangi (optional) | The street line of the site's postal address — what a courier would read to find the gate. | Prints on output documents (POs, delivery notes) so goods and paperwork reach the right place. Impact: leaving it blank only makes printouts less complete — no transaction is blocked. |
| City | Karachi (required) | Which city is this site in? | Feeds tax determination and prints on output. Impact: a wrong city can pull the wrong tax jurisdiction and misprint the address on documents. |
| Postal Code | 74900 (required) | The site's postal (ZIP) code. | Used by logistics integration, such as transport routing. Impact: a wrong code can misroute transport scheduling and shipping paperwork. |
| Country | PK (required) | Which country is this site in? Usually the same country as the owning company — but SAP allows it to differ. | Drives plant-level tax; a plant may (rarely) sit in a different country from its company code. Impact: the wrong country applies the wrong national tax rules to everything received at this plant. |
| Region/Province | SD (Sindh) (country-dependent) | Which province/state within the country? Required where the country splits tax by region. | Sets the provincial sales-tax authority (Pakistan: SRB Sindh, PRA Punjab, KPRA, BRA). Impact: the wrong region routes sales tax to the wrong provincial board — e.g. Sindh's SRB instead of Punjab's PRA. |
Our 4 plants
| Plant | Name | Calendar | City/Region | Purpose |
|---|---|---|---|---|
| PK01 | Karachi Factory | PK | Karachi, Sindh | Manufacturing — full production |
| PK02 | Lahore Factory | PK | Lahore, Punjab | Manufacturing — second site |
| PK03 | Karachi DC | PK | Karachi, Sindh | Distribution Center — no production |
| AE01 | Dubai DC | AE | Dubai | Export DC for cross-company STO testing |
✅ Verification
- Run SE16N → table
T001W→ all 4 plants visible - Open OX10 → each plant has a factory calendar populated
⚠️ Common gotcha
Creating a plant by Copy (not Define-new) is strongly recommended — it brings across the screen layouts and dependent entries (shipping, sales views) that a blank plant lacks. A blank plant often fails later in MM/SD with "view not maintained."