Skip to content
D365 Reference

RouteVersion

main

Route version — the link that assigns a route to a finished item for a validity period, quantity range, and site, mirroring how BOMVersion assigns a BOM

Module: Production ControlCompany-partitioned (DataAreaId)
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/ValidTo effectivity window — a join without a date filter multiplies every key by its history (see the quirks guide).
In field listings, K marks a key field.

Fields

10 fields · 2 key

10 fields.

Table fields: key flag, field name, extended data type, description, data type, length, and quirk flags. 10 fields.
KeyFieldEDTDescriptionTypeLengthFlags
KeyRouteIdRouteIdRoute this version assignsstring20
KeyItemIdItemIdFinished item the route is assigned tostring20
ActiveWhether this version is the active one planning and order creation pickenum
ApprovedWhether the version is approvedenum
ApproverRecIdRecId of the worker who approved the versionint64
FromDateVersion validity start; unset rows carry the 1900-01-01 sentineldate
ToDateVersion validity end; unset rows carry the 1900-01-01 sentineldate
FromQtyMinimum order quantity the version applies fromreal
InventDimIdInventDimIdDimension scope of the assignment (typically the site); join to InventDimstring25
NameVersion namestring60

Field provenance: hand-curated.

Boilerplate SQL

Starting point for reading RouteVersion 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.

Query parameters

4 parameters not filled: <catalog>, <schema>, <company>, <ItemId>

-- ============================================================
-- Table  : RouteVersion Route version — the link that assigns a route to a finished item for a validity period, quantity range, and site, mirroring how BOMVersion assigns a BOM
-- Purpose: Column-selected read of RouteVersion — auto-generated from field metadata
-- Grain  : One row per company (dataareaid) + RouteId + ItemId
-- 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
  r.routeid AS "Route this version assigns",
  r.itemid AS "Finished item the route is assigned to",
  r.active AS "Whether this version is the active one planning and order creation pick",  -- enum: decode r.active via GlobalOptionsetMetadata join — see quirks guide #enums
  r.approved AS "Whether the version is approved",  -- enum: decode r.approved via GlobalOptionsetMetadata join — see quirks guide #enums
  r.approver AS "RecId of the worker who approved the version",
  CASE WHEN CAST(r.fromdate AS DATE) = DATE '1900-01-01' THEN NULL ELSE CAST(r.fromdate AS DATE) END AS "Version validity start; unset rows carry the 1900-01-01 sentinel",  -- 1900-01-01 sentinel → NULL
  CASE WHEN CAST(r.todate AS DATE) = DATE '1900-01-01' THEN NULL ELSE CAST(r.todate AS DATE) END AS "Version validity end; unset rows carry the 1900-01-01 sentinel",  -- 1900-01-01 sentinel → NULL
  r.fromqty AS "Minimum order quantity the version applies from",
  r.inventdimid AS "Dimension scope of the assignment (typically the site); join to InventDim",
  r.name AS "Version name"
FROM <catalog>.<schema>.routeversion r
-- Dimension expansion: uncomment to resolve site / warehouse / location / batch
-- LEFT JOIN <catalog>.<schema>.inventdim id ON id.inventdimid = r.inventdimid AND id.dataareaid = r.dataareaid
WHERE
  r.dataareaid = '<company>'
  -- AND r.itemid = '<ItemId>'
ORDER BY r.routeid;

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

  • RouteVersionRouteTableforeign key · N:1
    ON routeversion.routeid = routetable.routeid AND routeversion.dataareaid = routetable.dataareaid
  • RouteVersionInventTableforeign key · N:1
    ON routeversion.itemid = inventtable.itemid AND routeversion.dataareaid = inventtable.dataareaid
  • RouteVersionInventDimInventDim · N:1
    ON routeversion.inventdimid = inventdim.inventdimid AND routeversion.dataareaid = inventdim.dataareaid

Data Entities That Expose This Table

Route export entities exist in Data management, but their programmatic names could not be primary-source verified — land the raw tables.

Browse more production tables

More Production Control tables

Maintained by Summit Analytics, a supply chain analytics practice. The tools and references are free — the consulting is selective.

Part of the Summit Analytics reference library.

Work with the practice

Not affiliated with or endorsed by Microsoft. Microsoft, Dynamics 365, and Microsoft Fabric are trademarks of the Microsoft group of companies.