UnitOfMeasureConversion
Shared across companiesUnit conversion rules — factor, numerator/denominator, and offsets for converting between two units, referenced by RecId to UnitOfMeasure on both sides; product-specific conversions carry the product's RecId, standard conversions leave it 0
Not in the CDM Tables catalog; structure verified against the Microsoft AX 2012 table reference. Product = 0 (not NULL) marks a standard conversion — a worked example of the no-nulls quirk.
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).
Fields
9 fields
9 fields.
| Key | Field | EDT | Description | Type | Length | Flags |
|---|---|---|---|---|---|---|
| FromUnitOfMeasure | RecId | RecId of the unit being converted from — join to UnitOfMeasure to get the symbol | int64 | |||
| ToUnitOfMeasure | RecId | RecId of the unit being converted to | int64 | |||
| Product | RecId | RecId of the product this conversion is specific to; 0 (not NULL) means a standard conversion that applies to every product | int64 | |||
| Factor | Multiplicative conversion factor from-unit to to-unit | real | ||||
| Numerator | Numerator of the conversion ratio when expressed as a fraction | int | ||||
| Denominator | Denominator of the conversion ratio when expressed as a fraction | int | ||||
| InnerOffset | Offset applied before the factor (needed for scales like temperature) | real | ||||
| OuterOffset | Offset applied after the factor | real | ||||
| Rounding | How converted quantities are rounded (nearest, up, or down) | enum |
Field provenance: hand-curated.
Boilerplate SQL
Starting point for reading UnitOfMeasureConversion 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.
2 parameters not filled: <catalog>, <schema>
-- ============================================================
-- Table : UnitOfMeasureConversion Unit conversion rules — factor, numerator/denominator, and offsets for converting between two units, referenced by RecId to UnitOfMeasure on both sides; product-specific conversions carry the product's RecId, standard conversions leave it 0
-- Purpose: Column-selected read of UnitOfMeasureConversion — auto-generated from field metadata
-- Grain : One row per recid (surrogate key)
-- 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
u.fromunitofmeasure AS "RecId of the unit being converted from — join to UnitOfMeasure to get the symbol",
u.tounitofmeasure AS "RecId of the unit being converted to",
u.product AS "RecId of the product this conversion is specific to; 0 (not NULL) means a standard conversion that applies to every product",
u.factor AS "Multiplicative conversion factor from-unit to to-unit",
u.numerator AS "Numerator of the conversion ratio when expressed as a fraction",
u.denominator AS "Denominator of the conversion ratio when expressed as a fraction",
u.inneroffset AS "Offset applied before the factor (needed for scales like temperature)",
u.outeroffset AS "Offset applied after the factor",
CASE u.rounding WHEN 0 THEN 'Nearest' WHEN 1 THEN 'Up' WHEN 2 THEN 'Down' ELSE CAST(u.rounding AS STRING) END AS "How converted quantities are rounded (nearest, up, or down)" -- enum: UnitOfMeasureConversionRounding
FROM <catalog>.<schema>.unitofmeasureconversion u
-- Resolve UnitOfMeasure (via FromUnitOfMeasure): uncomment to join on its RecId surrogate key
-- LEFT JOIN <catalog>.<schema>.unitofmeasure fromunitofmeasure ON fromunitofmeasure.recid = u.fromunitofmeasure
-- Resolve UnitOfMeasure (via ToUnitOfMeasure): uncomment to join on its RecId surrogate key
-- LEFT JOIN <catalog>.<schema>.unitofmeasure tounitofmeasure ON tounitofmeasure.recid = u.tounitofmeasure
-- Resolve EcoResProduct (via Product): uncomment to join on its RecId surrogate key
-- LEFT JOIN <catalog>.<schema>.ecoresproduct eco ON eco.recid = u.product
;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 unitofmeasureconversion.fromunitofmeasure = unitofmeasure.recidON unitofmeasureconversion.tounitofmeasure = unitofmeasure.recidON unitofmeasureconversion.product = ecoresproduct.recid
Data Entities That Expose This Table
More Product Information tables
- EcoResProductThe shared product master — one row per product across all companies; released products in InventTable point back to it by RecId
- EcoResProductTranslationLanguage-specific product names and descriptions — one row per shared product and language, joined back to EcoResProduct by RecId; the table product names actually live in
- EcoResStorageDimensionGroupStorage dimension group master — shared setup that decides which storage dimensions (site, warehouse, location) are active and mandatory for the products assigned to it, including whether advanced warehousing applies
- EcoResTrackingDimensionGroupTracking dimension group master — shared setup that decides whether batch and serial tracking are active for the products assigned to it, and where serials are captured
- InventItemGroupItem group master — one row per company and item group, the reporting and posting bucket items are assigned to via InventItemGroupItem
- InventItemGroupItemThe link table that assigns each released item to its item group — in D365 the item group is NOT a column on InventTable; this table is where the assignment lives. Cross-company: it carries explicit ItemDataAreaId / ItemGroupDataAreaId columns instead of a DataAreaId partition