F4981
historyOne row per freight charge written by freight update (R4981) - the permanent audit trail that ties every billable and payable charge to the G/L document (voucher or invoice) it created. The system-of-record table for freight spend analytics.
Denormalized on purpose: carrier, mode, weight, geography, and order keys are stamped onto every charge row, so most freight-spend questions need no joins. Split billable vs. payable on BLPB before aggregating NAMT.
What the badges mean
- Superseded
- Superseded — a newer table has replaced it, but older scripts still read this one.
- Also in JDE World
- Also present in JDE World A9.x on the same table name.
- master
- Data class: what the table holds — master data, transaction documents, control/setup values, history, or a workfile.
- Read/write access
- Access mode: how the paired program reads or writes this table — R (read), W (write), or R/W (both).
Fields
40 fields · 1 key
40 fields.
| Key | Field | Alias | Description | Type | Length | Flags |
|---|---|---|---|---|---|---|
| Primary key | FHUK01 | UK01 | Internal unique key - the physical primary key of this table. | Numeric | 15 | |
| FHSHPN | SHPN | Shipment number - the system-assigned key that groups order lines for transport; the same value lands on F4211.SDSHPN. | Numeric | 8 | ||
| FHRSSN | RSSN | Routing step number within the shipment. | Numeric | 3 | ||
| FHVMCU | VMCU | Trip depot business unit - first half of the load key; join to F4960.TMVMCU. | String | 12 | ||
| FHLDNM | LDNM | Load number - second half of the load key; join to F4960/F4961. | Numeric | 8 | ||
| FHDLNO | DLNO | Delivery number, used when freight is charged at the delivery level. | Numeric | 8 | ||
| FHNMFC | NMFC | National Motor Freight Classification used for LTL rating. | String | 4 | ||
| FHORGN | ORGN | Origin address book number the goods ship from. | Numeric | 8 | ||
| FHNMCU | NMCU | Shipment depot - the origin depot business unit. | String | 12 | ||
| FHBLPB | BLPB | Charge direction: billable to the customer or payable to the carrier - always filter or group on this. | Character | 1 | ||
| FHMOT | MOT | Mode of transport - truckload, LTL, parcel, rail, and so on. | String | 3 | ||
| FHCARS | CARS | Carrier's address book number; join to F0101.ABAN8 for the name and F4906 for carrier attributes. | Numeric | 8 | ||
| FHCAMD | CAMD | Auto-pay flag - Y means freight update creates the carrier voucher automatically without a matched invoice. | Character | 1 | ||
| FHWGTS | WGTS | Shipment weight in the weight UoM; stored with 4 implied decimals - divide by 10,000. | Numeric | 15 | ||
| FHWTUM | WTUM | Weight unit of measure. | String | 2 | ||
| FHSCVL | SCVL | Scheduled volume in the volume UoM. | Numeric | 15 | ||
| FHVLUM | VLUM | Volume unit of measure. | String | 2 | ||
| FHFRSC | FRSC | Freight rate schedule used to rate this record. | String | 8 | ||
| FHRTNM | RTNM | Rate name that produced this charge. | String | 10 | ||
| FHRTGB | RTGB | Rate basis the charge was computed on (weight, volume, pieces...). | Character | 1 | ||
| FHRTDQ | RTDQ | Quantity the rate was applied against; 4 implied decimals. | Numeric | 15 | ||
| FHUOM | UOM | Unit of measure of the transaction quantity. | String | 2 | ||
| FHCGC1 | CGC1 | Charge code classifying the freight charge (line haul, fuel surcharge...). | String | 3 | ||
| FHAG | AG | Gross charge amount; 2 implied decimals. | Numeric | 15 | ||
| FHNAMT | NAMT | Net charge amount after discounts; 2 implied decimals - the number to aggregate for freight spend. | Numeric | 15 | ||
| FHCRDC | CRDC | Billing (to) currency code. | String | 3 | ||
| FHCRCD | CRCD | Transaction (from) currency code. | String | 3 | ||
| FHDOCO | DOCO | Order number of the related order line - joins F4211.SDDOCO (or F4311 for inbound). | Numeric | 8 | ||
| FHDCTO | DCTO | Order type of the related order line. | String | 2 | ||
| FHKCOO | KCOO | Order key company of the related order line. | String | 5 | ||
| FHLNID | LNID | Order line number; 3 implied decimals - matches F4211.SDLNID as stored. | Numeric | 6 | ||
| FHDOC | DOC | Document number of the voucher or invoice freight update created; joins F0411/F0911. | Numeric | 8 | ||
| FHDCT | DCT | Document type of the created voucher/invoice. | String | 2 | ||
| FHKCO | KCO | Document company of the created voucher/invoice. | String | 5 | ||
| FHDGJ | DGJ | G/L date of the freight document. | Numeric (DD type: Date) | 6 | ||
| FHVINV | VINV | Supplier's invoice number used for freight match. | String | 25 | ||
| FHSHAN | SHAN | Ship-to address book number; join to F0101. | Numeric | 8 | ||
| FHFRTH | FRTH | Freight handling code - the freight terms (who arranges and pays). | String | 3 | ||
| FHADDJ | ADDJ | Actual ship date - the anchor for on-time-shipment analysis. | Numeric (DD type: Date) | 6 | ||
| FHFRSN | FRSN | Reason code for a manual freight adjustment. | String | 3 |
Field provenance: hand-curated.
Boilerplate SQL
Starting point for reading F4981 on Databricks — Julian dates, implied decimals, and padded strings are already converted. Set your Unity Catalog location and filter values below; they’re substituted into the SQL and the copy button.
4 parameters not filled: <catalog>, <schema_data>, <DGJ_FROM>, <DGJ_TO>
-- ============================================================
-- Table : F4981 One row per freight charge written by freight update (R4981) - the permanent audit trail that ties every billable and payable charge to the G/L document (voucher or invoice) it created. The system-of-record table for freight spend analytics.
-- Purpose: Column-selected read of F4981 — auto-generated from field metadata
-- Grain : One row per FHUK01
-- Notes : Auto-generated skeleton. Julian dates (CYYDDD) are converted to DATE and implied-decimal amounts are scaled (verify decimals in F9210); padded business-unit/UDC keys are TRIMmed. Audit columns (…USER/…PID/…UPMJ) are omitted — see the quirks guide. Set catalog/schema to your Unity Catalog location; fill remaining placeholders (<...>) for your tenant.
-- ============================================================
SELECT
f.FHUK01 AS "Internal unique key - the physical primary key of this table.",
f.FHSHPN AS "Shipment number - the system-assigned key that groups order lines for transport; the same value lands on F4211.SDSHPN.",
f.FHRSSN / POWER(10, 1) AS "Routing step number within the shipment.", -- implied decimals: 1 (verify in F9210)
TRIM(f.FHVMCU) AS "Trip depot business unit - first half of the load key; join to F4960.TMVMCU.",
f.FHLDNM AS "Load number - second half of the load key; join to F4960/F4961.",
f.FHDLNO AS "Delivery number, used when freight is charged at the delivery level.",
f.FHNMFC AS "National Motor Freight Classification used for LTL rating.",
f.FHORGN AS "Origin address book number the goods ship from.",
TRIM(f.FHNMCU) AS "Shipment depot - the origin depot business unit.",
f.FHBLPB AS "Charge direction: billable to the customer or payable to the carrier - always filter or group on this.",
f.FHMOT AS "Mode of transport - truckload, LTL, parcel, rail, and so on.",
f.FHCARS AS "Carrier's address book number; join to F0101.ABAN8 for the name and F4906 for carrier attributes.",
f.FHCAMD AS "Auto-pay flag - Y means freight update creates the carrier voucher automatically without a matched invoice.",
f.FHWGTS / POWER(10, 4) AS "Shipment weight in the weight UoM; stored with 4 implied decimals - divide by 10,000.", -- implied decimals: 4 (verify in F9210)
f.FHWTUM AS "Weight unit of measure.",
f.FHSCVL AS "Scheduled volume in the volume UoM.",
f.FHVLUM AS "Volume unit of measure.",
f.FHFRSC AS "Freight rate schedule used to rate this record.",
f.FHRTNM AS "Rate name that produced this charge.",
f.FHRTGB AS "Rate basis the charge was computed on (weight, volume, pieces...).",
f.FHRTDQ / POWER(10, 4) AS "Quantity the rate was applied against; 4 implied decimals.", -- implied decimals: 4 (verify in F9210)
f.FHUOM AS "Unit of measure of the transaction quantity.",
f.FHCGC1 AS "Charge code classifying the freight charge (line haul, fuel surcharge...).",
f.FHAG / POWER(10, 2) AS "Gross charge amount; 2 implied decimals.", -- implied decimals: 2 (verify in F9210)
f.FHNAMT / POWER(10, 2) AS "Net charge amount after discounts; 2 implied decimals - the number to aggregate for freight spend.", -- implied decimals: 2 (verify in F9210)
f.FHCRDC AS "Billing (to) currency code.",
f.FHCRCD AS "Transaction (from) currency code.",
f.FHDOCO AS "Order number of the related order line - joins F4211.SDDOCO (or F4311 for inbound).",
f.FHDCTO AS "Order type of the related order line.",
f.FHKCOO AS "Order key company of the related order line.",
f.FHLNID / POWER(10, 3) AS "Order line number; 3 implied decimals - matches F4211.SDLNID as stored.", -- implied decimals: 3 (verify in F9210)
f.FHDOC AS "Document number of the voucher or invoice freight update created; joins F0411/F0911.",
f.FHDCT AS "Document type of the created voucher/invoice.",
f.FHKCO AS "Document company of the created voucher/invoice.",
CASE WHEN f.FHDGJ IS NULL OR f.FHDGJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(f.FHDGJ AS INT) DIV 1000, 1, 1), CAST(f.FHDGJ AS INT) % 1000 - 1) END AS "G/L date of the freight document.", -- CYYDDD Julian → DATE
f.FHVINV AS "Supplier's invoice number used for freight match.",
f.FHSHAN AS "Ship-to address book number; join to F0101.",
f.FHFRTH AS "Freight handling code - the freight terms (who arranges and pays).",
CASE WHEN f.FHADDJ IS NULL OR f.FHADDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(f.FHADDJ AS INT) DIV 1000, 1, 1), CAST(f.FHADDJ AS INT) % 1000 - 1) END AS "Actual ship date - the anchor for on-time-shipment analysis.", -- CYYDDD Julian → DATE
f.FHFRSN AS "Reason code for a manual freight adjustment."
FROM <catalog>.<schema_data>.f4981 f
WHERE
f.FHDGJ >= <DGJ_FROM> -- Julian CYYDDD, e.g. 126001
-- AND f.FHDGJ <= <DGJ_TO> -- Julian CYYDDD, e.g. 126365
ORDER BY f.FHUK01;Verified September 2026
Relationships
Diagram of 1-hop neighbors — join details below. UDC decode edges point coded fields at their F0005 lookup.
Join details
ON f4981.FHDOC = f0411.RPDOC
Programs That Use This Table
More Transportation Management tables
- F4215One row per shipment - the anchor record Transportation Management creates when order lines are grouped for delivery; despite the F42xx name it belongs to system 49. Carries status, mode, geography, weight, value, and promised dates.
- F4906One row per carrier - the transportation attributes (SCAC code, auto-pay, performance rating) hung off an address book number that acts as a carrier.
- F4941One row per routing step of a shipment - where the carrier, mode, load assignment, scheduled vs. actual ship/delivery timestamps, and billable vs. payable freight totals live. The workhorse table for carrier performance and freight cost analysis.
- F4942One row per order line per shipment routing step - the bridge between order detail and the shipment, carrying the line's shipped quantity, weight, volume, and value.
- F4945One row per calculated freight charge on a shipment routing step or load - billable (customer) and payable (carrier) charges by rate name and charge code, as they stand before freight update moves them to history.
- F4960One row per load (trip) - a planned vehicle departure that groups shipments, keyed by trip depot plus load number, with carrier, vehicle, load status, and distance.