F4941
transactionOne 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.
Freight amounts here carry 4 implied decimals (divide by 10,000), unlike the 2-decimal order amounts. Compare RSDJ vs DLDT for on-time delivery and PPDJ vs ADDJ for on-time shipping.
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 · 2 key
40 fields.
| Key | Field | Alias | Description | Type | Length | Flags |
|---|---|---|---|---|---|---|
| Primary key | RSSHPN | SHPN | Shipment number - the system-assigned key that groups order lines for transport; the same value lands on F4211.SDSHPN. | Numeric | 8 | |
| Primary key | RSRSSN | RSSN | Routing step number within the shipment. | Numeric | 3 | |
| RSMOT | MOT | Mode of transport - truckload, LTL, parcel, rail, and so on. | String | 3 | ||
| RSCARS | CARS | Carrier's address book number; join to F0101.ABAN8 for the name and F4906 for carrier attributes. | Numeric | 8 | ||
| RSROUT | ROUT | Route code assigned during routing. | String | 3 | ||
| RSRTN | RTN | Route number assigned by route selection. | Numeric | 8 | ||
| RSDLNO | DLNO | Delivery number, used when freight is charged at the delivery level. | Numeric | 8 | ||
| RSFRSC | FRSC | Freight rate schedule used to rate this record. | String | 8 | ||
| RSVMCU | VMCU | Trip depot business unit - first half of the load key; join to F4960.TMVMCU. | String | 12 | ||
| RSLDNM | LDNM | Load number - second half of the load key; join to F4960/F4961. | Numeric | 8 | ||
| RSTRPL | TRPL | Load leg number within the load. | Numeric | 3 | ||
| RSSTSQ | STSQ | Stop sequence position on the load. | Numeric | 3 | ||
| RSORGN | ORGN | Origin address book number the goods ship from. | Numeric | 8 | ||
| RSANCC | ANCC | Destination address book number. | Numeric | 8 | ||
| RSWGTS | WGTS | Shipment weight in the weight UoM; stored with 4 implied decimals - divide by 10,000. | Numeric | 15 | ||
| RSWTUM | WTUM | Weight unit of measure. | String | 2 | ||
| RSSCVL | SCVL | Scheduled volume in the volume UoM. | Numeric | 15 | ||
| RSVLUM | VLUM | Volume unit of measure. | String | 2 | ||
| RSNPCS | NPCS | Number of pieces. | Numeric | 5 | ||
| RSNCTR | NCTR | Number of shipping containers. | Numeric | 5 | ||
| RSDSTN | DSTN | Distance in the distance UoM. | Numeric | 5 | ||
| RSUMD1 | UMD1 | Distance unit of measure (miles/kilometers). | String | 2 | ||
| RSAEXP | AEXP | Extended sales value of the goods being shipped; 2 implied decimals. | Numeric | 15 | ||
| RSCRCD | CRCD | Transaction (from) currency code. | String | 3 | ||
| RSECST | ECST | Extended cost of the goods being shipped; 2 implied decimals. | Numeric | 15 | ||
| RSPPDJ | PPDJ | Promised ship date. | Numeric (DD type: Date) | 6 | ||
| RSRSDJ | RSDJ | Promised delivery date. | Numeric (DD type: Date) | 6 | ||
| RSLDDT | LDDT | Load confirm date - when the load was confirmed at the depot. | Numeric (DD type: Date) | 6 | ||
| RSADDJ | ADDJ | Actual ship date - the anchor for on-time-shipment analysis. | Numeric (DD type: Date) | 6 | ||
| RSADTM | ADTM | Actual ship time (HHMMSS). | Numeric | 6 | ||
| RSDLDT | DLDT | Actual delivery date. | Numeric (DD type: Date) | 6 | ||
| RSDLTM | DLTM | Actual delivery time (HHMMSS). | Numeric | 6 | ||
| RSRRTR | RRTR | Routing status - whether a carrier/route has been assigned yet. | Character | 1 | ||
| RSRATR | RATR | Rating status - whether freight has been rated yet. | Character | 1 | ||
| RSFRTD | FRTD | Y/N - billable (customer) freight has been calculated for this step. | Character | 1 | ||
| RSFRTV | FRTV | Y/N - payable (carrier) freight has been calculated for this step. | Character | 1 | ||
| RSFRVC | FRVC | Payable (carrier) freight amount in domestic currency; 4 implied decimals. | Numeric | 15 | ||
| RSCRCP | CRCP | Currency code of the payable (A/P) freight amounts. | String | 3 | ||
| RSFRCC | FRCC | Billable (customer) freight amount in domestic currency; 4 implied decimals. | Numeric | 15 | ||
| RSCRDC | CRDC | Billing (to) currency code. | String | 3 |
Field provenance: hand-curated.
Boilerplate SQL
Starting point for reading F4941 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.
3 parameters not filled: <catalog>, <schema_data>, <SHPN>
-- ============================================================
-- Table : F4941 One 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.
-- Purpose: Column-selected read of F4941 — auto-generated from field metadata
-- Grain : One row per RSSHPN + RSRSSN
-- 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.RSSHPN AS "Shipment number - the system-assigned key that groups order lines for transport; the same value lands on F4211.SDSHPN.",
f.RSRSSN / POWER(10, 1) AS "Routing step number within the shipment.", -- implied decimals: 1 (verify in F9210)
f.RSMOT AS "Mode of transport - truckload, LTL, parcel, rail, and so on.",
f.RSCARS AS "Carrier's address book number; join to F0101.ABAN8 for the name and F4906 for carrier attributes.",
f.RSROUT AS "Route code assigned during routing.",
f.RSRTN AS "Route number assigned by route selection.",
f.RSDLNO AS "Delivery number, used when freight is charged at the delivery level.",
f.RSFRSC AS "Freight rate schedule used to rate this record.",
TRIM(f.RSVMCU) AS "Trip depot business unit - first half of the load key; join to F4960.TMVMCU.",
f.RSLDNM AS "Load number - second half of the load key; join to F4960/F4961.",
f.RSTRPL AS "Load leg number within the load.",
f.RSSTSQ AS "Stop sequence position on the load.",
f.RSORGN AS "Origin address book number the goods ship from.",
f.RSANCC AS "Destination address book number.",
f.RSWGTS / 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.RSWTUM AS "Weight unit of measure.",
f.RSSCVL AS "Scheduled volume in the volume UoM.",
f.RSVLUM AS "Volume unit of measure.",
f.RSNPCS AS "Number of pieces.",
f.RSNCTR AS "Number of shipping containers.",
f.RSDSTN AS "Distance in the distance UoM.",
f.RSUMD1 AS "Distance unit of measure (miles/kilometers).",
f.RSAEXP / POWER(10, 2) AS "Extended sales value of the goods being shipped; 2 implied decimals.", -- implied decimals: 2 (verify in F9210)
f.RSCRCD AS "Transaction (from) currency code.",
f.RSECST / POWER(10, 2) AS "Extended cost of the goods being shipped; 2 implied decimals.", -- implied decimals: 2 (verify in F9210)
CASE WHEN f.RSPPDJ IS NULL OR f.RSPPDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(f.RSPPDJ AS INT) DIV 1000, 1, 1), CAST(f.RSPPDJ AS INT) % 1000 - 1) END AS "Promised ship date.", -- CYYDDD Julian → DATE
CASE WHEN f.RSRSDJ IS NULL OR f.RSRSDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(f.RSRSDJ AS INT) DIV 1000, 1, 1), CAST(f.RSRSDJ AS INT) % 1000 - 1) END AS "Promised delivery date.", -- CYYDDD Julian → DATE
CASE WHEN f.RSLDDT IS NULL OR f.RSLDDT = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(f.RSLDDT AS INT) DIV 1000, 1, 1), CAST(f.RSLDDT AS INT) % 1000 - 1) END AS "Load confirm date - when the load was confirmed at the depot.", -- CYYDDD Julian → DATE
CASE WHEN f.RSADDJ IS NULL OR f.RSADDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(f.RSADDJ AS INT) DIV 1000, 1, 1), CAST(f.RSADDJ AS INT) % 1000 - 1) END AS "Actual ship date - the anchor for on-time-shipment analysis.", -- CYYDDD Julian → DATE
f.RSADTM AS "Actual ship time (HHMMSS).",
CASE WHEN f.RSDLDT IS NULL OR f.RSDLDT = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(f.RSDLDT AS INT) DIV 1000, 1, 1), CAST(f.RSDLDT AS INT) % 1000 - 1) END AS "Actual delivery date.", -- CYYDDD Julian → DATE
f.RSDLTM AS "Actual delivery time (HHMMSS).",
f.RSRRTR AS "Routing status - whether a carrier/route has been assigned yet.",
f.RSRATR AS "Rating status - whether freight has been rated yet.",
f.RSFRTD AS "Y/N - billable (customer) freight has been calculated for this step.",
f.RSFRTV AS "Y/N - payable (carrier) freight has been calculated for this step.",
f.RSFRVC / POWER(10, 4) AS "Payable (carrier) freight amount in domestic currency; 4 implied decimals.", -- implied decimals: 4 (verify in F9210)
f.RSCRCP AS "Currency code of the payable (A/P) freight amounts.",
f.RSFRCC / POWER(10, 4) AS "Billable (customer) freight amount in domestic currency; 4 implied decimals.", -- implied decimals: 4 (verify in F9210)
f.RSCRDC AS "Billing (to) currency code."
FROM <catalog>.<schema_data>.f4941 f
WHERE
f.RSSHPN = <SHPN>
ORDER BY f.RSSHPN;Verified September 2026
Relationships
Diagram of 1-hop neighbors — join details below. UDC decode edges point coded fields at their F0005 lookup.
Programs That Use This Table
R read · W write · R/W read + write
Secondary programs
- P4915Work With Shipments — the interactive workbench for reviewing, revising, routing, rating, and approving shipments after order entry creates themRead/write accessInteractive
- P4960Work With Loads — the interactive workbench that builds and maintains loads by grouping shipments onto vehicles, assigning carriers, and sequencing stopsRead accessInteractive
More Transportation Management tables
- 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.
- F4961One row per leg of a load - a depot-to-stop slice of the trip with scheduled versus confirmed weight, volume, and cube, plus scheduled and actual ship dates.
- F4981One 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.
- 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.