WHSWorkLine
worksheet lineWarehouse work line — the individual pick and put steps of a work order, with item, location, quantities, and the worker who executed them; the grain for labor and travel analysis
What the badges mean
- main
- Table group: how F&O categorizes the table's role — main entity, group/header, transaction, worksheet header, worksheet line, reference, parameter, or framework.
- Shared across companies
- The table carries no
DataAreaId— rows aren’t partitioned per company, so a query never needs (and can’t use) a company filter here (see the quirks guide). - Date-effective
- The table carries a
ValidFrom/ValidToeffectivity window — a join without a date filter multiplies every key by its history (see the quirks guide).
Header & line
WHSWorkLine lines join back to their header WHSWorkTable — and the DataAreaId — so a line never fans out across companies.
Fields
15 fields · 2 key
15 fields.
| Key | Field | EDT | Description | Type | Length | Flags |
|---|---|---|---|---|---|---|
| Key | WorkId | WorkId | Work order this line belongs to | string | ||
| Key | LineNum | LineNum | Line number within the work order — pick and put steps in execution sequence | real | ||
| WorkType | Step type — pick, put, count, or a custom step | enum | ||||
| WorkStatus | Status of the individual step (open, in process, closed…) | enum | ||||
| ItemId | ItemId | Item handled by the step | string | 20 | ||
| InventDimId | InventDimId | Inventory-dimension combination handled by the step; join to InventDim to resolve batch / serial / status | string | 25 | ||
| WMSLocationId | Warehouse location (bin) the step picks from or puts to | string | 25 | |||
| QtyWork | Quantity the step is instructed to move, in the work unit | real | ||||
| QtyRemain | Quantity still remaining on the step | real | ||||
| UnitId | Unit the work quantity is expressed in | string | ||||
| InventTransId | InventTransId | Lot ID of the source document line the step serves | string | 40 | ||
| UserId | Warehouse worker who executed the step — the labor-analysis dimension | string | ||||
| ZoneId | Warehouse zone of the step's location | string | ||||
| LoadLineRefRecId | RecId | RecId of the WHSLoadLine the step fulfills — the join from warehouse execution back to the load | int64 | |||
| WorkClosedUTCDateTime | When the step was completed, stored in UTC | datetime |
Field provenance: hand-curated.
Boilerplate SQL
Starting point for reading WHSWorkLine on Databricks — enums are decoded, 1900-01-01 dates are wrapped to NULL, and the DataAreaId anchor is in place. Set your Unity Catalog location, company, and filter values below; they’re substituted into the SQL and the copy button.
3 parameters not filled: <catalog>, <schema>, <company>
-- ============================================================
-- Table : WHSWorkLine Warehouse work line — the individual pick and put steps of a work order, with item, location, quantities, and the worker who executed them; the grain for labor and travel analysis
-- Purpose: Column-selected read of WHSWorkLine — auto-generated from field metadata
-- Grain : One row per company (dataareaid) + WorkId + LineNum
-- Notes : Auto-generated skeleton for Synapse Link / Fabric Link-landed F&O data (lowercase column names). Enums decoded inline where verified; datetimes stored in UTC; 1900-01-01 dates are sentinels mapped to NULL. System/audit columns omitted — see the quirks guide.
-- ============================================================
SELECT
w.workid AS "Work order this line belongs to",
w.linenum AS "Line number within the work order — pick and put steps in execution sequence",
w.worktype AS "Step type — pick, put, count, or a custom step", -- enum: decode w.worktype via GlobalOptionsetMetadata join — see quirks guide #enums
w.workstatus AS "Status of the individual step (open, in process, closed…)", -- enum: decode w.workstatus via GlobalOptionsetMetadata join — see quirks guide #enums
w.itemid AS "Item handled by the step",
w.inventdimid AS "Inventory-dimension combination handled by the step; join to InventDim to resolve batch / serial / status",
w.wmslocationid AS "Warehouse location (bin) the step picks from or puts to",
w.qtywork AS "Quantity the step is instructed to move, in the work unit",
w.qtyremain AS "Quantity still remaining on the step",
w.unitid AS "Unit the work quantity is expressed in",
w.inventtransid AS "Lot ID of the source document line the step serves",
w.userid AS "Warehouse worker who executed the step — the labor-analysis dimension",
w.zoneid AS "Warehouse zone of the step's location",
w.loadlinerefrecid AS "RecId of the WHSLoadLine the step fulfills — the join from warehouse execution back to the load",
w.workclosedutcdatetime AS "When the step was completed, stored in UTC" -- stored in UTC
FROM <catalog>.<schema>.whsworkline w
-- Dimension expansion: uncomment to resolve site / warehouse / location / batch
-- LEFT JOIN <catalog>.<schema>.inventdim id ON id.inventdimid = w.inventdimid AND id.dataareaid = w.dataareaid
-- Resolve WHSLoadLine (via LoadLineRefRecId): uncomment to join on its RecId surrogate key
-- LEFT JOIN <catalog>.<schema>.whsloadline whs ON whs.recid = w.loadlinerefrecid
WHERE
w.dataareaid = '<company>'
ORDER BY w.workid;Verified September 2026
Relationships
Diagram of 1-hop neighbors — join details below. RecId and InventDim edges are highlighted; they’re the joins newcomers most often get wrong.
Join details
ON whsworktable.workid = whsworkline.workid AND whsworktable.dataareaid = whsworkline.dataareaidON whsworkline.itemid = inventtable.itemid AND whsworkline.dataareaid = inventtable.dataareaidON whsworkline.inventdimid = inventdim.inventdimid AND whsworkline.dataareaid = inventdim.dataareaidON whsworkline.loadlinerefrecid = whsloadline.recid
Data Entities That Expose This Table
More Warehouse Management tables
- WHSWorkTableWarehouse work header — one row per work order (pick, put, count, replenish) created by wave processing, with status, priority, and the load/shipment it serves
- WHSLoadLineWarehouse load line — one row per order line placed on a load, linking the load and shipment to the source document line, item, and picked quantities
- WHSLoadTableWarehouse load header — one row per load (a truck, trailer, or container worth of goods); shipments are grouped onto loads, and ship confirmation happens at this level
- WHSShipmentTableWarehouse shipment header — one row per shipment built from released order lines, carrying its load, status, carrier, and ship-confirm timestamp; the outbound unit customers track