MSKA table — MSKA Sales Order Stock Table
MSKA holds stock quantities that are earmarked against a specific sales order and item (special stock indicator E) at material, plant, storage location and batch level, split into unrestricted, quality inspection, blocked and stock-in-transfer buckets, with an optional valuation number for make-to-order or project-related sales order stock.
MSKA is the quantity table behind sales order stock, the special stock scenario where inventory is physically in the plant but reserved for one sales order and item and cannot be consumed by any other demand. This page covers its key fields, how it joins to material master and movement tables, and the diagnostic checks used when sales order stock is stuck, missing, or unexpectedly valuated.
Published 16 Sept 2026· 1,042 words
What it stores
One row in MSKA represents the quantity of a material tied to one sales order and sales order item, at a given plant, storage location and batch, under special stock indicator E. This is sales order stock: physically received or produced inventory that SAP segregates so it can only be withdrawn against that specific order line, typically arising from make-to-order production, third-party order processing, or individual purchase orders assigned to a sales order. The row carries separate quantity fields for unrestricted-use, quality inspection, blocked and stock-in-transfer status, mirroring the structure used for plant stock in MARD but scoped to a sales order. A valuation number (KALNR) is populated when the stock is valuated separately from standard plant stock, which happens in make-to-order and engineer-to-order scenarios where each sales order needs its own cost view.
Key fields
- MANDT - client
- MATNR - material number
- WERKS - plant where the sales order stock is held
- LGORT - storage location within the plant
- CHARG - batch number, blank if the material is not batch-managed
- VBELN - sales order number the stock is reserved against
- POSNR - sales order item number
- SOBKZ - special stock indicator, E for sales order stock
- KALNR - valuation number linking to a separate cost estimate for valuated sales order stock
- LABST - unrestricted-use quantity
- INSME - quality inspection stock quantity
- SPEME - blocked stock quantity
- UMLME - stock in transfer quantity
How it joins the data model
- MSKA-MATNR = MARA-MATNR
- MSKA-MATNR/WERKS = MARC-MATNR/WERKS
- MSKA-WERKS = T001W-WERKS
- MSKA-KALNR = MBEW-KALNR, when the sales order stock is valuated separately
- MSKA-MATNR/WERKS/VBELN/POSNR corresponds to movements in MSEG posted with SOBKZ E, linked back through MKPF for document header data
How to read it safely
Always restrict on MANDT first. MSKA is far smaller than MARD or MSEG in most systems because only sales order stock rows exist, but selectivity still matters: never select on VBELN alone across a whole client if the system runs multiple company codes with overlapping order number ranges without also checking WERKS. The natural narrow key for a single incident is MATNR plus WERKS plus VBELN plus POSNR, which returns at most a handful of rows including batch splits. Do not read LABST in isolation and assume it is the total sales order stock; sum LABST, INSME, SPEME and UMLME if the question is 'how much stock is held against this order,' because a quality-inspection lock or a blocked-stock posting can hide quantity that still belongs to the order.
How to prove it in the data
Symptom: a sales order shows a delivery-blocking shortage even though goods receipt was posted. Select MSKA on MATNR, WERKS, VBELN and POSNR for the order line. If a row exists with quantity sitting in INSME or SPEME rather than LABST, the stock arrived but is inspection-locked or blocked, not actually short. If no row exists at all, the goods receipt was posted to plant stock (SOBKZ blank) instead of sales order stock, usually because the purchase order account assignment or the delivery's requirement was not flagged as order-related.
ECC vs S/4HANA
MSKA continues to exist as a transparent table in S/4HANA and is still the authoritative source for sales order stock quantities; it was not absorbed into the unified MATDOC document table the way MSEG summary logic was reworked. Standard reporting and Fiori stock apps read sales order stock through compatibility views built on top of MSKA rather than querying it directly, but the table itself and its field layout are unchanged from the ECC version for practical consulting purposes.
Common pitfalls
- Reading LABST alone and reporting it as 'available stock for the order' ignores INSME and SPEME, which can hold material that legitimately belongs to the sales order but is not yet usable.
- Assuming a missing MSKA row means the goods receipt failed. It often means the receipt posted correctly but landed as normal plant stock because the special stock indicator was never set on the underlying document, which is a configuration or order-type issue, not a table integrity issue.
- Treating KALNR as always populated. Non-valuated sales order stock has no separate valuation number, and its cost sits in the standard material valuation, so absence of KALNR is normal, not an error.
- Confusing sales order stock with project stock or vendor consignment stock. All three use the special stock mechanism but live in different tables with different special stock indicators; MSKA is specifically indicator E.
- Trying to close out or delete a sales order that still has an MSKA quantity balance. The order cannot be technically completed while sales order stock remains open, and clearing it requires a goods movement, not a table edit.
- Forgetting batch splits. A single sales order item can have several MSKA rows differing only by CHARG, so summing without grouping by batch produces a correct total but hides which batch is stuck.
Whose problem this is
Sales order stock discrepancies are jointly owned by MM inventory management and SD order fulfillment, since the special stock indicator originates from the sales order's requirement configuration but the quantity movement is an MM goods movement. Valuation questions involving KALNR belong to controlling or product costing, particularly for make-to-order cost object analysis.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tables/mskaERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.