Scenario 27 — Barcode Labels & Scanning (Coil Tags, Auto-Print & Scan-to-Field)

TIER 7 · CROSS-FUNCTIONAL ★★★☆☆ ⏱️ ~2 hours (MM parts) SE73 → SPAD → SMARTFORMS → NACE (ME) → MN21 → MIGO → scan
← Related
Scenario 16: Batch Management
Back to
All Scenarios
🎯 Why this scenario exists

Scenario 16 taught you to track stock by batch. Then comes the question every warehouse asks: "the coil is in front of me — which batch is it?" SAP can only track what the physical world can identify. This scenario closes that gap with barcode labels.

Verified live on our IDES (DEV/250): SAP's barcode library (SE73) and the output-control application list (NACE) — both confirmed present, with the real values quoted below. Steps marked BASIS or ABAP are not yours to build, but you must be able to specify them — so they are written out too.

📊 Business Case

A steel coil arrives, gets a batch number in SAP, and is put on a rack. Three weeks later it comes back from production half-used. Which coil is it? If the answer depends on someone remembering, or on a handwritten tag that fell off, your batch data is fiction. Barcode labelling makes the physical world match the system — and turns a 30-second typing job into a one-second scan.

🕐 When to use it

As soon as you have batch management, serial numbers, or storage bins. The moment stock has an identity, that identity must be readable on the item itself.

❓ Why it matters

Speed and accuracy. Typing a 10-character batch number invites typos; a scan cannot mistype. And a mislabelled coil is effectively lost stock.

👤 Who triggers it

The label prints automatically when the storekeeper posts the goods receipt. Nobody has to remember to print it.

🔁 The key distinction

SAP generates and prints barcodes natively. SAP does not need to "read" them — a scanner behaves as a keyboard, so scanning works with zero configuration.

💰 Financial Impact — The Easy-Money Example

PakSteel receives 40 coils a day. Each goods receipt needs a batch number typed, and each issue needs it typed again.

⌨️ Typing by hand
~2% wrong
40 coils × 2 movements × 30 s ≈ 40 min/day of typing — and roughly one mistyped batch a day.
→
🔦 Scan the label
~1 second each
Scanner types the batch for you. Wrong-batch errors effectively disappear.
→
📊 Result
≈35 min/day saved
Plus the real prize: no lost coils. One mis-identified 5 TO coil at ₨250,000/TO is ₨1.25M of stock nobody can find.
💡 Lesson: the saving people quote is the typing time — but the saving that matters is never losing track of a coil. Batch management without labelling is a spreadsheet that lies to you.

🇵🇰 The Business Story

PakSteel's yard holds 300 coils. Each has a batch number in SAP carrying its heat number and grade. Today the storekeeper walks the yard reading paper tags, and part-used remnants get mixed with full coils. The plan: print a Code 128 label at goods receipt showing batch, material, grade and weight — tie it to the coil — and scan it at every issue and return.

🎯 What you'll learn

👥 Who owns what — read this before you start

Barcoding is not one module. A newcomer's biggest confusion is expecting to do all of it in MM. You will not — but you must be able to specify all of it.

PieceOwnerT-codeCan you practise it?
Barcode types (Code 128, EAN, QR…)BASISSE73👁️ look only — already delivered by SAP, nothing to create
Printer defined in SAPBASISSPAD👁️ look only — use an existing printer (e.g. LP01)
The label form itselfABAPSMARTFORMS👁️ look only — copy a standard form
Output type for the labelMM ⭐NACE app ME✅ yes — your job
Condition record — when/where to printMM ⭐MN21✅ yes — your job
What data goes on the labelMM ⭐spec document✅ yes — your decision
EAN / UPC on the materialMM ⭐MM02✅ yes
Scanning into fields—any transaction✅ yes — needs nothing
Label printer & scannersIT / procurement—hardware purchase

🗺️ Practice Roadmap

🥇 START HERE — Practice 1: scan without any setup

Before touching config, prove the easy half works. A scanner is a keyboard. Open MIGO, click into the Batch field, scan any barcode — the characters appear. That is the whole "reading" side of barcoding, and it costs nothing.

No scanner handy? Type the batch number instead — the point is that SAP needs no special "scanner mode".

PracticeWhat you learnT-codesOwner⏱️
1. Scan into a fieldScanning needs zero configMIGOMM5 m
2. Explore SAP's barcodes §27.1Which types exist, which to pickSE73👁️ look15 m
3. Decide the label content §27.2The functional spec — your real deliverable—MM ⭐20 m
4. Create the output type §27.4Teach SAP that a "coil label" existsNACEMM ⭐30 m
5. Condition record §27.5When and where it printsMN21MM ⭐20 m
6. Test the auto-print §27.6Post a GR → label appearsMIGO SP01MM20 m
7. SKU barcode (EAN) §27.7Find a material by scanning its barcodeMM02MM15 m

📋 Prerequisites — what must be in the system (and why)

① A batch-managed material with batches from Scenario 16

🎯 What this is for: a label needs something to print. The batch number is the thing being barcoded.

What breaks without it: nothing to label — the output has no batch to print.

✅ How you'll know: MMBE shows stock split by batch, e.g. RM-IRON-HEAT-01 / HEAT-26-01.

② A printer defined in SAP BASIS

🎯 What this is for: output determination must send the label somewhere. In SAP a printer is an "output device".

How it's set: SPAD → Output Devices → the device name (commonly LP01 for a default/local printer). For real labels this is a thermal label printer using a device type that supports barcodes.

What breaks without it: the output type has no printer and the label fails with a spool error.

✅ How you'll know: SPAD lists the device; SP01 can show its spool requests. For practice, printing to LP01 and viewing the spool in SP01 is enough — you do not need real hardware.

③ A label form ABAP

🎯 What this is for: the layout — where the barcode, batch number, material and weight sit on the label.

How it's built: SMARTFORMS (or older SE71 SAPscript). A developer copies a standard form and assigns a barcode character format to the batch field — that is what turns text into bars.

What breaks without it: the output type has no form to print, so nothing comes out.

💡 Your job as MM: not to build it, but to hand the developer a content spec — see §27.2.

🔧 Step-by-Step

🧭 The route at a glance
StepT-codeWhat it doesOwner
27.1SE73See which barcode types SAP already provides👁️ look
27.2—Decide what the label showsMM ⭐
27.3SMARTFORMSBuild the label layoutABAP
27.4NACECreate the output type "coil label"MM ⭐
27.5MN21Condition record — when/where to printMM ⭐
27.6MIGO / SP01Post a GR and see the labelMM
27.7MM02EAN/UPC barcode for the material (SKU)MM
27.8—Scanning back inMM

⚙️ Config & Setup

27.1 — What barcodes does SAP already have? · SE73 👁️ VERIFIED LIVE

⚡ This step will: show you that you do not create barcodes — SAP ships a library of them. You only choose one. 📄 paper: — · 📦 stock: none · 💰 money: none

Do: SE73 → select System Bar Codes → Display.

✅ Confirmed on our IDES — a selection of what's there:
BarcodeTypeBest for
⭐ BC_C128B · C128A · C128BCode 128batch & serial numbers — alphanumeric, compact, the industry default
BC_CD39 · BC_CD39CCode 39simple, very widely supported (with/without check digit)
BC_EAN13 · BC_EAN8 · BC_EANHEAN / GTINretail SKU barcodes
BC_I25 · BC_I25CInterleaved 2 of 5numeric only, very compact
J1IGINQR · J2GQRQR Code 20052D — holds a lot, scannable by phone
LAW_BCPDF4172D, high data capacity
ARTNR · AUFNRpre-builtarticle number · order number
MBBARC · BARCLVSpre-builtinventory management · warehouse (LVS)

Which to choose for coils: Code 128. Batch numbers can contain letters (HEAT-26-01), Code 128 handles alphanumeric in a short bar pattern, and every scanner reads it.

✅ How you'll know it worked: you can name the barcode type you intend to use, and confirm it exists in this list. That is the whole deliverable of this step.

27.2 — Decide what the label shows MM ⭐ YOUR REAL JOB

⚡ This step will: produce the one-page spec you hand to the developer. This is the functional consultant's actual deliverable — not the form itself.

On the labelFieldWhy
⭐ BarcodeBatch number (MCHB-CHARG)the scannable identity — the whole point
Batch number in plain textsameso a human can read it if the barcode is damaged
Material + descriptionMATNR / MAKTXwhat it is
Quantity + unitERFMG / ERFMEcoil weight
Grade / qualitybatch characteristiclets the yard pick the right grade
Goods receipt dateBUDATage of stock — supports FEFO
Vendor / mill batchLIFNR / LICHAtraceability to the certificate
Plant / storage locationWERKS / LGORTwhere it belongs
⚠️ Decide the label size early. A 100×150 mm thermal label holds roughly the fields above. Ask for more and the barcode shrinks until scanners struggle. The barcode must stay at least ~30 mm wide.
27.3 — Build the label form · SMARTFORMS ABAP

⚡ This step will: turn your spec into a printable layout. You do not build this — but you should understand it to review the result.

  1. SMARTFORMS → copy a standard label form to Z…
  2. Place text fields for material, quantity, grade, date
  3. For the barcode: create a character format in the form's Style and assign the system barcode (e.g. BC_C128B) to it, then apply that format to the batch field
  4. Activate the form

💡 The one technical idea worth knowing: a barcode in SAP is a character format, not an image. You tag the field "print this as Code 128" and the printer renders bars. That's why it needs no graphics and prints fast.

✅ How you'll know: the developer can run a print preview of the form showing bars, not text.

27.4 — Create the output type · NACE, application ME MM ⭐ YOUR JOB

⚡ This step will: teach SAP that a thing called "coil label" exists, what form it uses and how it is sent.

✅ Verified live: NACE opens and lists the output-control applications. The one you need is ME = "Inventory Management" — that is the application covering material documents (goods receipts/issues). Others you will meet: EF Purchase Order · E1 Inbound Delivery · V6 Handling Units · MR Invoice Verification.
Where · FieldFillWhy — and the impact
NACE → select applicationME Inventory Managementgoods-receipt documents live here. Impact: choose the wrong application and your output will never trigger on a GR
Button Output Types → New Entries (or copy WE01)output type ZCOI, name "Coil Label"copying the standard GR-slip output WE01 inherits sensible defaults. Impact: from scratch you must set every field yourself
General data → Access sequencee.g. the one used by WE01tells SAP which key to look up condition records by (e.g. plant / movement type). Impact: no access sequence = no condition record can ever be found
Processing RoutinesMedium 1 Print · Program … · Form/Smart Form = your Z label formlinks the output type to the layout. Impact: wrong form = wrong label printed
Partner Functionsmedium 1 (print) · partner e.g. WEwho/where it goes. Impact: missing partner function blocks output creation
Save—customizing → goes into a transport request

✅ How you'll know it worked: your output type appears in the ME application's output-type list with your form attached.

27.5 — Condition record: when and where to print · MN21 MM ⭐ YOUR JOB

⚡ This step will: switch the label on for real conditions — "for plant PK01, on movement 101, print one copy to this printer."

The idea in one line: the output type (27.4) says what a coil label is; the condition record says when to actually print one. Both are needed — this is the single most common reason "output is configured but nothing prints."

Where · FieldFillWhy — and the impact
MN21 · Output typeZCOIthe label you created
Key combinatione.g. Plant / Movement typethe granularity of the rule. Impact: too broad and every movement prints labels
Plant · Movement typePK01 · 101print only on goods receipts at Karachi. Impact: omit the movement type and issues print labels too
Medium1 Print outputas opposed to EDI/email
Date/time4 = immediately when savinglabel prints the moment the GR posts. Impact: 1 waits for a batch job — the storekeeper walks away without a label
Printer / Output devicee.g. LP01 (the label printer in production)where it comes out. Impact: wrong printer = label prints in the wrong building
Save—a master-data record — no transport needed

✅ How you'll know: MN23 displays the record for your plant/movement combination.

🔄 Transaction Flow

27.6 — Test it: post a goods receipt and see the label · MIGO → SP01

⚡ This step will: prove the whole chain — GR posts, SAP finds the condition record, generates the label and sends it to the spool. 📄 paper: material doc + spool request · 📦 stock: normal GR · 💰 money: normal GR

  1. MIGO → Goods Receipt · Purchase Order → post a receipt for your batch material at PK01
  2. Before posting, check Messages (menu Goods Receipt → Messages) — your output type ZCOI should be listed as proposed
  3. Post
  4. SP01 → your user → the spool request appears → Display to see the label

💡 For practice you do not need a real printer. Printing to LP01 and viewing the output in SP01 proves the configuration works — the bars will render as a barcode font.

✅ How you'll know: a spool request exists in SP01 containing the batch number and the barcode.

27.7 — SKU barcode on the material master (EAN/UPC) · MM02 MM

⚡ This step will: store the product barcode so a scan of the packaging finds the material. This is separate from batch labels — it identifies what the product is, not which lot.

  1. MM02 → material → view Basic Data 1
  2. Click Additional Data → tab Units of Measure
  3. On the base-unit row fill EAN/UPC and EAN category (e.g. HE internal / IE for internal EAN)
  4. Save

What you gain: in most material fields you can scan the EAN and SAP resolves it to the material number. Stored in table MEAN.

✅ How you'll know: SE16 → MEAN shows your material with its EAN.

27.8 — Scanning it back in NO CONFIG NEEDED

⚡ This step will: close the loop — and show you the cheapest win in this whole scenario.

🔦 A barcode scanner is a keyboard. It reads the bars, "types" the characters into whatever field has the cursor, and usually presses Enter. SAP needs no driver, no setting, no scanner configuration.
  1. MIGO → goods issue → click into the Batch field
  2. Scan the coil label → the batch number fills instantly
  3. Post

Even better — combine with Scenario 16's trick: for a remnant return, set Reference = Material Document and scan the document number from the picking slip. SAP then copies every batch automatically and you type nothing at all.

LevelWhat you scanNeeds
⭐ 1. Plain scannerbatch no. / document no. into any fieldnothing — works today
2. Handling Unitsone HU barcode → material + batch + qty togetherHU management (NACE app V6)
3. RF / mobilescan on a handheld, no desktop screenWM / EWM build

🐞 Errors you will hit — and how to fix them

WhereSymptomWhat it meansFix
MIGO after posting No label prints, no error The commonest problem by far. The output type exists but no condition record matched — so SAP silently printed nothing. Check MN23 for a record on your exact plant + movement type. Then in the document check Messages — if the output isn't listed, the condition record didn't match.
Document → Messages Output listed but status yellow / not processed Date/time is set to "send with periodic job" (1) instead of immediately. Set Date/time = 4 (immediately) in the condition record — or run RSNAST00 to process pending output.
Output → red status Processing failed Usually the printer/output device is missing or invalid, or the form isn't active. Check the device exists in SPAD; check the form is activated in SMARTFORMS.
SP01 output Barcode prints as plain text, not bars The character format with the system barcode was not applied to that field, or the printer's device type doesn't support the barcode. ABAP: confirm the barcode character format is assigned. Basis: use a device type that supports barcodes (thermal label printers do).
Scanner Scans but characters are wrong / run together Scanner keyboard layout mismatch, or no terminator character. Set the scanner to the same keyboard layout as the PC and configure it to send Enter (CR) after the code. This is scanner setup, not SAP.
Barcode won't scan reliably Reads only at certain angles Barcode printed too small or too dense. Keep the barcode ≥30 mm wide; shorten the data or use a bigger label. Code 128 is denser than Code 39 for the same data.

✅ Verification

📌 Honest status of this scenario
Verified live on our IDES: the barcode library in SE73 (types quoted in 27.1 are real), and NACE with application ME Inventory Management and the full application list. Not yet built end-to-end here: the label form and output type — those need a Smart Form (ABAP) and a printer (Basis), which are outside the MM role. The MM steps (27.2, 27.4, 27.5, 27.7, 27.8) are all practiceable once a form and printer exist.

🎓 Interview-Ready Answers

Q: Does SAP support barcodes natively, or do you need a third-party tool?

Natively. SAP ships a library of system barcodes maintained in SE73 — Code 128, Code 39, EAN/GTIN, Interleaved 2 of 5, QR Code and PDF417 among them. A barcode is applied as a character format in a SAPscript/Smart Form, so the printer renders the bars. On the reading side nothing is needed at all: a scanner acts as a keyboard and types into whatever field has focus.

Q: A goods receipt posts but no label prints, and there's no error. Where do you look?

Almost always a missing or non-matching condition record. The output type in NACE only defines that the label exists; the condition record (MN21/MN23) says when to print it. I'd open the material document's Messages — if the output isn't listed, no condition record matched the plant/movement type; if it's listed but yellow, the date/time is set to periodic instead of immediate.

Q: Which NACE application do you use for a goods-receipt label, and why?

ME — Inventory Management, because that application covers material documents, which is what a goods receipt creates. Purchase orders are EF, inbound deliveries E1, handling units V6, invoice verification MR. Picking the wrong application is a common mistake — the output type then never triggers.

Q: As an MM consultant, what part of a barcode project is actually yours?

The specification and the triggering: deciding what appears on the label, which barcode type, the output type in NACE, and the condition records that control when and where it prints. The Smart Form is ABAP, the printer and device type are Basis, and the hardware is procurement. Knowing that split is what lets you scope the project realistically instead of promising work you can't deliver.

Q: What's the single biggest risk in a barcode rollout?

Not the technology — the process discipline. If a label falls off, or a coil is moved without scanning, the data is wrong and people stop trusting it. I'd insist on durable labels, a clear rule that stock never moves without a scan, and a recovery procedure (search by characteristics in CL30N, then verify by weight) for when a label is lost.

← Related
Scenario 16: Batch Management
Back to
All Scenarios