VL10B — Delivery Due List by Purchase Order
VL10B is the delivery due list transaction pre-filtered on purchase order number instead of sales order number. It is used to create outbound deliveries for stock transport orders and cross-company stock transfers, where the shipping team knows the PO number but the actual delivery-relevant document behind the scenes is often a sales order generated automatically against that PO.
This page covers VL10B, the purchase-order-oriented variant of the delivery due list used for stock transport order and cross-company stock transfer scenarios. It focuses on why VL10B returns nothing when the PO looks correct, how the underlying sales order and delivery item category drive the result list, and how to prove the cause in the data before touching configuration.
Reviewed by an ERPClimb SAP consultant on 15 Sept 2026· 1,163 words
What it does
VL10B runs the same delivery due list logic as VL10 and VL10A but opens on a selection screen built around the purchase order number, purchasing document type, and supplying plant instead of sales order fields. It exists because stock transport orders (STOs) and cross-company stock transfers are procurement documents from the receiving plant's point of view, but the actual outbound delivery is still created against a sales-and-distribution document at the supplying plant. The structural fact that explains most confusion: for cross-company STOs, SAP generates a sales order automatically in the background when the PO is saved, and VL10B is really selecting deliveries against that generated sales order, filtered by the PO number as a search key. If that background sales order was never created, or was created with an item category that is not delivery-relevant, VL10B has nothing to find, regardless of how correct the PO looks.
When it is used
VL10B sits in the plant-to-plant and cross-company replenishment flow, between purchase order creation at the receiving plant and goods issue at the supplying plant. A consultant reaches for it when the logistics team at the supplying plant has been handed a PO number and needs to create the outbound delivery, but has no visibility into (or interest in) the sales order number that SAP generated behind it. It is chosen over VL10A when the business process is procurement-led (STO, subcontracting-related transfer, intercompany stock transfer) rather than sales-order-led. On S/4HANA it is increasingly replaced in day-to-day use by the corresponding Fiori delivery creation app, but VL10B remains the fallback when the Fiori variant configuration does not cover the scenario or when working in a system without the app activated.
How to use it
- Enter the purchase order number or range, and optionally shipping point and supplying plant, on the initial selection screen
- Execute; the resulting list shows delivery-due items keyed to the PO but drawn from the background sales order and its schedule lines
- Check the 'Confirmed Qty' and delivery date columns against expectation before selecting anything
- Select the relevant lines and choose background processing to create deliveries in bulk, or individual delivery to control shipping point, route and delivery split manually
- Review the log for lines rejected due to blocks, incomplete shipping data, or zero open quantity
Key fields
- LIKP - delivery header created once a due item is processed, holding shipping point, route, ship-to party
- LIPS - delivery item, carries the delivery quantity, batch, and reference to the sales order item behind the PO
- VBFA - document flow linking the purchase order, the generated sales order, and the resulting delivery
- VBAK/VBAP - the sales order header and item generated automatically for cross-company STOs, which VL10B is actually selecting against
- EKKO/EKPO - the purchase order header and item that VL10B uses purely as the selection key, not as the delivery-relevant document itself
How to prove it in the data
In SE16 on VBFA, filter on the purchase order number in the preceding document field with document category matching a purchase order and check whether a subsequent sales order (VBTYP_N for order) exists at all. If no row appears, the background sales order was never generated and VL10B will never show the PO. If it exists, pull that sales order number into VBAP and check the schedule line category and delivery block fields on the item; a non-delivery-relevant schedule line category or an active delivery block explains an empty VL10B result even though the PO and sales order both look complete.
ECC vs S/4HANA
The selection logic and underlying tables are unchanged on S/4HANA; VL10B still filters the same delivery due list by PO number. The practical difference is that S/4HANA offers a Fiori app for creating outbound deliveries that many sites use for the sales-order-driven case, while STO and cross-company scenarios often continue to rely on VL10B because the app's variant configuration does not always cover purchasing-document-based selection cleanly. No structural change to the background sales order generation mechanism for cross-company STOs.
Common pitfalls
- Empty result list, PO looks correct: the most common cause is a missing or failed background sales order for a cross-company STO. Check VBFA for the PO before checking anything on the delivery side; reprocessing the PO or re-saving it sometimes triggers the sales order generation that failed silently the first time.
- Empty result list, sales order exists: the sales order item's schedule line category is not delivery-relevant, or the item category assigned by the item category determination is wrong for this PO document type and plant combination. This is a configuration issue, not a master data issue, and reflexively re-running VL10B with wider date ranges will not fix it.
- Lines appear but cannot be selected: an active delivery block on the sales order item, or a credit block if the receiving plant is modeled as a customer for billing purposes in the cross-company scenario. Check the block field on the sales order item before assuming it is an authorization problem.
- Duplicate deliveries created: running VL10B and VL10A (or VL10) against the same underlying sales order from different teams who do not realize they are hitting the same document. Coordinate which variant is authorized for which plant before go-live, not after the first duplicate.
- Partial delivery quantity mismatch: open quantity on the PO does not match open quantity on the generated sales order because someone manually changed one side after the automatic link was created. Compare EKPO open quantity against VBAP open quantity directly rather than trusting either document's own display.
Whose problem this is
Functional SD, usually the consultant covering shipping and cross-company stock transfer configuration, owns VL10B behavior and the item category determination behind it. A clean handover names the PO number, the generated sales order number from VBFA, the plant pair, and whether the failure is 'nothing found' versus 'found but blocked', so the receiving consultant does not have to re-derive the document chain from scratch.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tcodes/vl10bERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.