Skip to content

Master Data — Source-Reconciled Current Contract

  • Status: SOURCE_RECONCILED / TARGET AGGREGATE APPROVAL OPEN
  • Task: NS0-003
  • Current-source revision: 98b3a59d76ce66c3e69788c93aac7e3e08e6edff
  • Profiles: ctc-execution, mk-order
  • Evidence level: repository source/schema review
  • Live data/operator verification: NOT_RUN

1. Authority Decision

Current “master data” is not one aggregate or one generic table.

Party / Company
Material / Commodity
UOM
Location / Terminal / Port
Equipment / Chassis / Vehicle
User / Role
generic coded values

These concepts have different owners and historical behavior. The target must not preserve the current platform.master menu grouping as a single business authority.

2. Current Data Families

2.1 Party / Company

Current principal records:

T_COMPANY
T_COMPANY_EMAIL

T_COMPANY currently carries:

  • display/legal names and contact channels;
  • shipping/billing addresses;
  • SCAC and multiple boolean type flags;
  • M_COMPANY_TYPE_IDS comma-separated type identifiers;
  • terminal, warehouse, trucking, chassis, customer and vendor interpretation;
  • tenant ownership and soft-delete lifecycle.

T_COMPANY_EMAIL carries typed email lists by company.

Current APIs provide:

  • tenant-scoped company options/search;
  • optional company-type filtering;
  • current terminal interpretation;
  • company create/form mutation;
  • nested company email rows.

2.2 Material / Commodity

Current principal record:

T_COMMODITY

It carries tenant, name, type and sort order. Company/Booking/Order/Inventory records frequently persist both a commodity ID and a commodity-name snapshot or only a name.

Implication:

current Material reference
!= every historical transaction resolves only through current T_COMMODITY

The target must preserve persisted transaction facts even when master names change.

2.3 Generic coded values

Current principal record:

T_MASTER

It stores tenant-scoped CATEGORY, KEY1, VALUE1 and SORT_ORDER. Many selector lists use category strings rather than typed domain registries.

Current generic mutation supports T_MASTER, T_CHASSIS and T_COMMODITY through a table-mutation adapter.

Target code should not carry this generic table-mutation authority into domain modules.

2.4 UOM

Current UOM values are repeated in table enums and validation lists, including:

MT
LT
LB
ST
EACH

No source reviewed in this packet proves one accepted first-class UOM master and conversion authority.

2.5 Location / Terminal / Port

Current location concepts are distributed:

  • terminals can be T_COMPANY rows interpreted by terminal flags/type IDs;
  • Booking stores pickup and return terminal IDs;
  • Booking and Commercial Order can store port text directly;
  • warehouse locations are owned by WMS-specific tables and APIs;
  • yard locations are separately owned by YMS.

There is no evidence that all of these should become one mutable Location row.

2.6 Equipment / Chassis / Driver / Carrier

Current platform.master surfaces include chassis, carrier and driver-related lists, but target ownership differs:

Party/Carrier
-> Master Data or Transportation reference

Driver/User workforce identity
-> Platform/Workforce/Transportation, not Material master

Chassis/Container/Vehicle
-> Equipment Lifecycle and Transportation

User/Role
-> Platform Core

The new module boundary must follow authority, not current menu placement.

3. Current Master Data Pages

Current route families include:

company-list
commodity-list
carrier-master-list
driver-list
master-list
user-master-list
chassis-list
equipment-information-list

Several are mapped to platform.master for current page availability. This is a compatibility menu/module mapping, not target aggregate ownership.

4. Current Mutation And Readback

4.1 Company

Current create can write:

T_COMPANY
+ zero or more T_COMPANY_EMAIL rows

inside one Platform write transaction. Generic company form mutation can independently mutate those allowed tables.

4.2 Commodity and generic master

Current generic form mutation can insert/update/delete allowed table rows through a generic table adapter. Search/options read active tenant rows.

4.3 Validation

Current sources prove selected tenant/reference validation in some commands:

  • user company reference must belong to the tenant;
  • commercial order commodity/counterparty references are checked;
  • Booking terminal/company options are tenant scoped;
  • sales/order references validate selected company/commodity records.

They do not prove a repository-wide foreign-key or snapshot policy.

5. Booking Dependencies

Ocean Booking currently consumes:

T_COMPANY
-> pickup terminal
-> return terminal
-> billing company
-> shipper(s)
-> consignee through linked sales execution
-> inspector options

T_COMMODITY / commodity text
-> commodity selection/snapshot

T_MASTER or option lists
-> booking type
-> seal type
-> destination
-> label

Current Booking can also preserve free-text values. A target Page Contract must distinguish:

required reference
optional reference
accepted snapshot
free-text fact
derived display

The UI cannot infer this from the fact that the current control is an autocomplete or select.

6. Commercial Dependencies

Commercial Order currently consumes:

T_COMPANY
-> counterparty

T_COMMODITY
-> optional commodity ID + persisted commodity name

UOM list
-> typed line pricing basis

tenant config
-> company-specific form templates

Line item price, quantity and UOM are transaction facts. A later master-data change must not rewrite accepted commercial lines.

7. Current Gaps

ID Gap Consequence
MD-GAP-010 T_COMPANY combines party identity, roles and location/equipment semantics target Party/Location/Carrier boundaries require explicit mapping
MD-GAP-020 company type IDs are comma-separated typed capability/role semantics are not relationally explicit
MD-GAP-030 T_MASTER is a category bag domain validation and ownership are implicit
MD-GAP-040 commodity ID/name usage varies historical snapshot versus live reference must be defined per record
MD-GAP-050 no single accepted UOM/conversion authority was found quantity/weight conversion cannot be inferred
MD-GAP-060 terminal/port/warehouse/yard location models are separate merging them blindly would destroy process meaning
MD-GAP-070 current master pages include user/driver/equipment concerns target module ownership differs from current menu grouping
MD-GAP-080 generic table mutation remains available target domain commands must replace broad mutation ownership
MD-GAP-090 requiredness and create-new policy vary by caller shared autocomplete behavior does not decide business authority

8. Target Authority Direction

8.1 Party

Candidate target authority:

Party
Party Role/Type
Party Contact
Party Address
Tenant-specific external identifiers

Whether one Party can hold multiple roles is expected, but the exact schema remains an implementation decision after process approval.

8.2 Material

Candidate target authority:

Material
Grade
Material Alias
UOM compatibility

Historical commercial/execution records continue to carry accepted snapshots.

8.3 UOM

Candidate target authority:

UOM code
dimension
conversion rule
rounding/precision
effective range

No conversion should be added without explicit business evidence.

8.4 Location

Candidate target authority distinguishes:

Port
Terminal
Warehouse
Yard Location
Dock
External address

They can share reusable address/reference primitives without sharing one lifecycle owner.

8.5 Equipment

Candidate target authority distinguishes equipment master from assignment and lifecycle state.

9. Lifecycle Result

Party/Company current source
= SOURCE_RECONCILED

Commodity current source
= SOURCE_RECONCILED

generic coded values
= SOURCE_RECONCILED

UOM target authority
= SOURCE_MAPPED / OPEN_DECISION

Location family
= SOURCE_MAPPED / REQUIRES PROCESS-SPECIFIC RECONCILIATION

Equipment/Driver/Carrier ownership
= SOURCE_MAPPED / TARGET OWNER OPEN

live tenant-1/tenant-2 data quality
= NOT_RUN

10. Evidence Sources

app/platform/master-data/api_helper.php
app/platform/api_routes.php
config/page_routes.php
config/modules.php
.agents/reference/schema.sql
app/systems/OMS/commercial-order/commercial_order_query_helper.php
app/systems/OMS/commercial-order/commercial_order_post_helper.php
app/systems/TMS/booking/query_helper.php
app/systems/TMS/booking/post_helper.php
app/systems/TMS/booking/profile_extension.php
app/systems/OMS/inbound-order/order_reference_helper.php

---

Source: new-system/docs/reconstruction/MASTER_DATA_SOURCE_RECONCILED.md — ctc repository · This page is an English translation of the source document. Identifiers, file paths and code symbols are unchanged.