SAP VL150: Collective Processing of Documents Due for Delivery
SAP VL150 collective processing of documents due for delivery
Also searched as
- SAP mass delivery creation VL10 vs VL150
- SAP delivery not created check block
- how to fix sales order blocked from delivery creation
Short answer
VL150 (and its more commonly used successor VL10) mass-creates outbound deliveries for sales orders that are due by a selected date, based on shipping point, route, and delivery-relevant item category. Orders that do not appear are usually held back by a delivery block, an incomplete order, a failed availability check, or a delivery date outside the selection window.
Applies to: SAP ECC 6.0 and S/4HANA, SD (Sales and Distribution) shipping and transportation
Run and troubleshoot mass delivery creation
- 1Open VL10 (the standard collective processing transaction; VL150 is an older equivalent still present in some systems) and select the appropriate variant - VL10A for sales orders, VL10B for purchase orders (stock transfers), VL10C for both.
- 2Enter your selection criteria: shipping point, delivery creation date range, and optionally sold-to party, route or order number to narrow the run.
- 3Execute and review the result list, which splits into documents that will be delivered versus documents that dropped out with a reason.
- 4For orders missing from the deliverable list, use the log/error tab in the same screen to see why - common reasons are delivery block, incomplete order, credit hold, or availability check failure.
- 5Clear a delivery block by removing it on the order header (VA02, Shipping tab) if authorized, or route it to the person who set the block (commonly credit management or a manual shipping hold).
- 6For incomplete orders, use VA02 to find and fill the missing field the incompletion log flags (often a required shipping or billing field).
- 7For availability failures, check ATP via CO09 for the material and plant, and either confirm a later delivery date, expedite stock, or authorize a partial delivery per the item category's settings.
- 8Rerun VL10 for the corrected documents, or process them individually via VL01N once each blocking issue is resolved.
VL10 versus VL150
VL150 is the classic collective delivery creation transaction; VL10 (with its variants VL10A/B/C/D/E/F) is the newer, more flexible worklist-based version that most SD teams use today because it groups results by delivery-relevant criteria and shows a clear success/error split in one screen.
Both ultimately call the same underlying delivery creation logic, so a document that fails in VL10 will fail the same way in VL150 or VL01N - the transaction choice affects usability and reporting, not the delivery rules themselves.
Why orders drop out of the selection
The most frequent reason is a delivery block set on the order header (VBAK-LIFSK) or, less often, at the delivery type level - these are deliberate holds, commonly tied to credit management, export compliance, or a manual shipping review, and require someone with authority to release them.
The second most common reason is order incompleteness - a required field the incompletion procedure flags as mandatory before shipping documents can be created, visible via the incompletion log accessible from VA02's Edit menu or automatically on save.
Availability checks and delivery date logic
Even a clean, unblocked order will not appear in VL10 if its confirmed delivery date falls outside your selection date range, or if the ATP (Available to Promise) check run at order entry confirmed a later date than expected due to stock, production, or purchasing lead times.
CO09 shows the ATP situation for a material/plant combination directly - receipts, requirements, and the resulting available quantity by date - which is the fastest way to confirm whether a missing delivery is a genuine stock problem versus a selection window that needs widening.
VL10A -> Shipping Point + Delivery Creation Date range -> Execute
CO09 -> Material + Plant -> check ATP situation by date
VA02 -> order -> Edit > Incompletion Log (if creation blocked)
Partial deliveries and item category control
Whether SAP allows a partial delivery when full quantity is not available is controlled by the item category (partial delivery indicator) combined with the customer's delivery tolerance settings in the customer master shipping data - not a global system setting.
For customers who require complete deliveries only, an availability shortfall on one line item can hold back the entire delivery document rather than shipping what is available, which is a frequent source of 'why didn't this order deliver' tickets that trace back to customer master configuration rather than a bug.
Common pitfalls
- !Releasing a delivery block without knowing why it was set can ship an order that credit management or export compliance deliberately held - confirm with the department that owns the block type before clearing it.
- !Widening the VL10 date range to catch more orders can also pull in documents that are due but not yet meant to ship (e.g. future-dated for logistics planning reasons) - check the business intent before mass-processing a wider window.
- !An order that looks complete in VA03 can still fail VL10 if the incompletion log flags a shipping-specific field not visible on the standard overview screen - always check the log rather than eyeballing the order.
- !Partial delivery behavior depends on both item category and customer master settings together; changing one without checking the other can produce unexpected full-block or over-split delivery behavior.
- !Running VL10 with too broad a selection on a large dataset can be slow and lock resources during peak order entry - schedule large collective runs as background jobs where possible.
How an ERP-grounded AI assistant handles this
ERPray grounded on your SAP SD data can answer 'why didn't order 4500012345 deliver' in one query by checking the delivery block, incompletion log, and ATP situation together, instead of a shipping clerk working through VA02, CO09 and VL10's error log separately for each order.
Frequently asked questions
Should I use VL10 or VL150?
VL10 (and its A/B/C variants) is the standard modern transaction most teams use for its clearer worklist and error reporting. VL150 still exists and works the same underlying way, but VL10 is generally the better entry point.
Why does an unblocked, complete order still not appear in VL10?
Check the confirmed delivery date against your selection date range, and check ATP via CO09 - the order may be correctly excluded because its delivery date, driven by stock or production availability, falls outside the window you selected.
Who can remove a delivery block?
Typically only users with the relevant authorization for that block type - credit-related blocks usually sit with credit management, and manual shipping holds with the person or team who set them. Removing a block without checking its purpose can bypass a deliberate control.
Related
SAP M7 021: Deficit of SL Stock Quantity
M7 021 fires during a goods issue, delivery, or confirmation when SAP checks the unrestricted-use (SL) stock for the exact plant, storage location and batch combination and finds less than what you are trying to post out. Fix the entry (batch, storage location, quantity) first; only enable negative stock or downgrade the message to a warning if the business genuinely needs to post ahead of a receipt.
Error fixSAP CO11N Confirmation Errors and How to Fix Them
CO11N (time ticket confirmation for production/process orders) throws several distinct errors: deviation from the standard value is too large, goods movement not possible for a component, or the order/operation status does not allow confirmation. Each has a specific cause in order status, routing tolerance settings, or component availability, not a single generic fix.
Error fixSAP F5 060: Posting Only Possible in Periods X and Y
Message F5 060 fires when a document date falls in a fiscal period that the posting period variant has not opened for that account type. Either change the document/posting date into an open period, or have Finance open the required period and account type in OB52 for the relevant variant.
How-toSAP SE16N vs SQVI: Table Browser vs Ad Hoc Query
SE16N is a single-table browser: fast filtering, formatted display, and export from one table at a time, with an optional edit function for authorized users. SQVI (Quick Viewer) builds ad hoc queries that join multiple tables without writing ABAP, and can be saved as a reusable report. Use SE16N for a quick look at one table; use SQVI when you need data joined across two or more tables.
Error fixSAP IDoc Status 51: Application Document Not Posted
Status 51 tells you the IDoc reached the application layer and failed to post, but the status text itself is not the error - the real cause sits in the status record's long text or the linked application log. Fix the underlying data or configuration, then reprocess the IDoc through BD87 rather than editing the status.
Error fixSAP Short Dump TIME_OUT: Maximum Runtime Exceeded
A TIME_OUT runtime error means a dialog (or RFC) work process ran longer than the maximum allowed runtime, controlled by profile parameter rdisp/max_wprun_time (600 seconds by default). The fix is almost always to move the long-running work to background processing or tune the underlying program, not to raise the timeout.
AI for ERPAI for SAP Plant Maintenance: Notifications, Work Orders, and Predictive Signals
AI grounded on SAP PM data that triages notifications, drafts work orders, standardizes failure codes, and flags predictive maintenance signals, on-prem.
AI for ERPAI for SAP S/4HANA, Running On-Prem or in Your Private Cloud
Run AI on SAP S/4HANA without sending ERP data to a public API. On-prem and private-cloud architecture, CDS views, OData, and honest deployment trade-offs.
Stuck on SAP ERP (ECC 6.0 / S/4HANA)?
Talk to engineers who work inside SAP ERP (ECC 6.0 / S/4HANA) every week, and who build private AI that answers these questions from your own ERP data.