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_IDScomma-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_COMPANYrows 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.