SD Schedule Line Categories Part 4: Troubleshooting Determination Failures and Custom Requirements
A systematic method for schedule line problems: no schedule line or wrong category, items missing from the delivery due list, missing PRs for third-party, ATP not running — and when custom requirement routines or user exits are justified versus configuration fixes.
Explanation
📌 KEY POINTS
✅ Most schedule line problems come from three inputs: item category, MRP type (VOV5) and schedule line category settings (VOV6).
✅ "Schedule line category not defined" = missing VOV5 entry for item category + MRP type (and no blank-row default).
✅ Missing PR for CS/CB: purchasing data in VOV6 or incomplete purchasing data (vendor, purchasing group, source list).
✅ Items missing in VL10: confirmed quantity, dates, delivery relevance, blocks, shipping point selection — before blaming the category.
⚠️ Custom routines to "force" a category hide wrong master data; fix data and configuration first.
━━━━━━━━━━━━━━━━━━━━
▶ WHERE WE ARE
Parts 1–3 covered purpose, configuration and integration. Now the diagnostic method.
━━━━━━━━━━━━━━━━━━━━
▶ 1. NO OR WRONG SCHEDULE LINE CATEGORY
- Check the item category first (VOV4 / item category group).
- Then MRP type of the material in the delivering plant.
- Then VOV5 row for this combination and manual alternatives.
━━━━━━━━━━━━━━━━━━━━
▶ 2. NO PURCHASE REQUISITION (CS/CB)
- VOV6: order type, item category, account assignment category.
- Material: purchasing view, source of supply, purchasing group.
- Incompletion of purchasing data in the order item.
━━━━━━━━━━━━━━━━━━━━
▶ 3. NOT IN DELIVERY DUE LIST
- Confirmed quantity > 0 and material availability date in selection.
- Delivery block on schedule line or header; credit block.
- Category relevant for delivery; VTLA copy control.
━━━━━━━━━━━━━━━━━━━━
▶ 4. ATP OR REQUIREMENTS NOT RUNNING
- Schedule line flags, requirements class, checking group (Part 3).
- Plant-specific data (MRP type ND = no planning).
━━━━━━━━━━━━━━━━━━━━
▶ 5. WHEN CUSTOM LOGIC IS JUSTIFIED
- Genuine business rules configuration cannot express (e.g. choose CS vs CP by customer contract).
- Options: user exit in item/schedule line processing (e.g. MV45AFZZ), BAdI in S/4HANA, copy/requirement routines (VOFM).
- Document, test and keep them minimal — they run for every document.
━━━━━━━━━━━━━━━━━━━━
▶ STEP BY STEP
- Reproduce with the exact material, plant, order type.
- Walk item category → MRP type → VOV5 → VOV6.
- Check master data (MRP, purchasing, availability).
- Fix data/config; only then consider custom logic.
✅ CHECKPOINT: you can explain any wrong schedule line category in under five minutes by walking this chain.
Code example
===== STEP 1: diagnostic chain =====Order item → item category (VA03 item) VOV4 / MVKE-MTPOSPlant data → MRP type MM03 MRP 1 (MARC-DISMM)Determination→ VOV5 entry (item cat. + MRP type) T184LDefinition → VOV6 flags / purchasing data TVEP ===== STEP 2: typical messages and checks ====="Schedule line category not defined" → VOV5 entry missing"No purchase requisition created" → VOV6 order type/acct assignment, material purchasing dataItem not in VL10 → confirmed qty, dates, blocks, VTLA, shipping pointNo MD04 demand → Req./assembly flag, requirements class (OVZG) ===== STEP 3: custom logic options (last resort) =====User exit MV45AFZZ (e.g. USEROUTINE_SAVE_DOCUMENT / field modifications)Routines VOFM requirements/data transfer routinesS/4HANA prefer released BAdIs / extensibility; document and test eachReal project scenario
A retail distribution client reported that some order items never appeared in VL10. A developer had already proposed a user exit forcing CP. Walking the chain showed the items had CN because the materials' MRP type in the new DC was ND (no planning) — the DC had been set up by copying a consignment plant. With CN, no ATP ran; the items were delivery-relevant but outside the selection because material availability dates were in the past with zero confirmation. Correcting the MRP type and rescheduling fixed it — no custom code needed.
Common mistakes
- Writing code to force a category instead of fixing MRP type or VOV5.
- Checking the category but not the confirmed quantity.
- Ignoring plant-specific MRP data in the delivering plant.
- Missing purchasing data for CS/CB materials.
- Not rescheduling open orders after fixes.
Best practices
- Always walk item category → MRP type → VOV5 → VOV6.
- Keep a troubleshooting checklist in the support runbook.
- Use custom routines only for real business rules, documented and tested.
- Reschedule open orders after changes.
- Monitor unconfirmed and undelivered items proactively.
Interview angle
Questions: "An item gets no schedule line category — what do you check?", "Why is no PR created for a third-party item?", "When would you use a routine or exit?"
Strong answer: walk item category, MRP type, VOV5 and VOV6; PR issues from VOV6 purchasing data or material purchasing data; VL10 issues from confirmed quantity, dates, blocks and copy control; custom logic only for real business rules, documented and minimal.
Practice this lesson
Quick check
1. A developer proposes a user exit to force schedule line category CP for some items. Investigation shows those materials have MRP type ND in the new plant. What is the correct fix?
2. A third-party item (CS) does not create a purchase requisition. Which VOV6 fields are most relevant?
3. Order entry reports "schedule line category not defined". What is the first configuration to check?
Interview questions
1. A business rule says: for customers with a vendor-direct agreement, items must go third-party (CS), otherwise stock (CP). Configuration alone cannot express the customer condition. How do you implement it responsibly?
Answer it in your own words first, then compare.
2. Some sales order items never appear in the delivery due list for a new distribution center, although they look complete. How do you investigate?
Answer it in your own words first, then compare.
Reference-verified: the steps are checked against official SAP documentation and tutorials, and object and field names in the sample code are checked for consistency. The code has not been compiled or run on an SAP system by ERPClimb. Syntax marked release-dependent varies by SAP release, so check it in your own system.
More lessons in this topic
- SD Schedule Line Categories Part 1: What Schedule Lines and Their Categories Do
- SD Schedule Line Categories Part 2: Configuration and Determination (VOV6 / VOV5)
- SD Schedule Line Categories Part 3: Movement Types, Availability Check and Transfer of Requirements
- SD Schedule Line Categories Part 5: Governing Schedule Line Category Design in Templates