màj wiki avec retour MES lot-5 AD

This commit is contained in:
Arthur Ria
2026-05-20 09:41:27 +02:00
commit 23eb3f3c84
4106 changed files with 469381 additions and 0 deletions
@@ -0,0 +1,466 @@
---
title: "Entities Relationship Map"
type: architecture
sources:
- Synthesized from all Batch 1-5 compiled wiki pages
- areas/TransactionTypes.md
- areas/ERP.md
- All ERP message files
- All concept and module pages
related:
- architecture/application-dictionary.md
- architecture/overview.md
- concepts/container.md
- concepts/location.md
- concepts/stock.md
- concepts/product-item.md
- concepts/task.md
- concepts/order-inbound.md
- concepts/order-outbound.md
- concepts/erp-interface.md
last_compiled: "2026-04-10"
---
# Entities Relationship Map
## Overview
This page provides the complete entity relationship model of Easy WMS, synthesized from all documented behavior across Batches 15. It shows the core entities, their key attributes, and how they relate to one another — forming the mental model needed to interpret WMS data.
## Core Entity Hierarchy
```
Organization
└── Site (Warehouse)
├── Zones (Storage / Working)
│ └── Aisles
│ └── Racks / Shelves
│ └── Locations ──────────────── contains ──→ Containers
│ └── Stock lines
├── SubWarehouses
│ └── Locations (scoped)
├── Stations (Dock / PIE / PK / PS / MU / ME / etc.)
│ └── Routes (Simple / Composed)
│ └── Route Managers (Galileo / RF / Voice / PTL / External)
├── Equipment (Forklifts / AGVs / Conveyors)
└── Users
└── Roles → Station Roles
```
## Primary Entity Relationships
### Location → Container → Stock
The fundamental storage chain:
```
Location (1) ←── stored_at ──── (N) Container
Container (1) ←── held_in ──── (N) Stock
Stock (N) ──── is_of_type ────→ (1) Item
Stock (N) ──── owned_by ───────→ (1) Owner
```
| Relationship | Cardinality | Notes |
|-------------|-------------|-------|
| Location → Container | 1:N | One location can hold multiple containers (stacking) |
| Container → Stock | 1:N | One container can hold multiple stock lines |
| Container → Container | 1:N | Stacked containers; outer container holds inner |
| Stock → Item | N:1 | Multiple stock lines for same item (different lot/location) |
| Stock → UoM | N:1 | Each stock line has one UoM |
| Stock → Owner | N:1 | Stock belongs to one owner |
### Orders → Stock → Task
The fulfillment chain:
```
ReceiptOrder (1) ←── fulfilled_via ──── (N) Receipt
Receipt (1) ─────── creates ──────────→ (N) Container (received containers)
Receipt (1) ─────── creates ──────────→ (N) Stock (loose stock)
ReceiptOrder (1) ←── associated ──── (N) Container (ASN pre-notified)
ShippingOrder (1) ←── assigned_from ── (N) Stock (reservations)
ShippingOrder (1) ─── generates ──────→ (N) Task (picking tasks)
Task (1) ────────────── moves ─────────→ (N) Container
Task (1) ────────────── moves ─────────→ (N) Stock
Task (N) ─────────────── assigned_to ──→ (1) User / Equipment
```
### Container Lifecycle Relationships
```
Container ──── received_at ─────→ Location (Dock/PIE/PK/ASN)
Container ──── moved_to ─────────→ Location (via putaway Task)
Container ──── picked_from ──────→ Location (via picking Task)
Container ──── shipped_to ───────→ Location (Dock/Stage)
Container ──── loaded_on ────────→ Load (truck loading)
Container ──── consolidated_into → Container (client container)
Container ──── stacked_on ───────→ Container (stacking)
Container ──── locked_by ────────→ ContainerLock (N lock types)
```
## Detailed Entity Attribute Map
### Container
```
Container {
Code* → unique LPN identifier
TypeCode → ContainerType (dimension, weight capacity)
Weight → actual weight
Status → Received / In Transit / Located / Shipped / Deleted
LocationCode → current Location (nullable if in transit)
OwnerCode → Owner (nullable)
ReceiptCode → source Receipt (if received via reception)
ASNCode → advance shipping notice code (if pre-notified)
Locks[] → active ContainerLock list
StackedOn → parent Container (if stacked)
Divisions[] → cutting stock divisions (if applicable)
}
```
### Location
```
Location {
Code* → ASXY format (Aisle+Section+X+Y) or virtual code
Type → Conventional/Compact/APS/APSFIFO/Dynamic/Pushback/
Cantilever/Buffer/Dock/Equipment/Conveyor/Virtual
ZoneCode → storage Zone
SubWarehouseCode→ SubWarehouse (optional scoping)
StorageMode → Single container / Multi-container / Loose stock
StorageLogic → 12 flags (fifo/lifo/fefo/stack/mix items/mix lots/etc.)
Locks[] → active LocationLock list (8 operation types)
Capacity → weight/height/container count limits
Features[] → compatibility flags for putaway restrictions
IsPickingDedicated → boolean (PDL flag)
VirtualType → ASN / LostFound / Mov (if virtual)
}
```
### Stock
```
Stock {
ItemCode* → Item
UoMCode* → Unit of Measure
Quantity* → current quantity
ContainerCode → Container (nullable for loose stock)
LocationCode → Location
OwnerCode → Owner
ReceivingStatus → quality status set at reception (clear/locked)
UserStatus → quality status set by user/ERP (0..N statuses)
LogisticAttributes {
Lot, SerialNumber, ExpiryDate, BestBefore, ProductionDate,
DaysOfLife, Color, Size, Version, Weight, ... (item-specific)
}
ReservedQty → quantity reserved for ShippingOrder lines
AssignedQty → quantity assigned to Tasks
}
```
### Task
```
Task {
Number* → unique task ID
ProcessType → Putaway/Picking/Shipping/Replenishment/Count/
Movement/Consolidation/etc.
Status → Pending/Generated/InProcess/Finished/Canceled
ContainerCode → Container being moved (nullable)
LocationFrom → source Location
LocationTo → destination Location
ShippingOrderCode → linked ShippingOrder (if picking/shipping task)
CountCode → linked Count (if count task)
AssignedUser → User assigned to execute
AssignedEquipment → Equipment (AGV, forklift)
Priority → Urgent/High/Normal/Low/VeryLow
Route → Route/Station path for automatic warehouse
Movements[] → decomposed Movement steps (compound routes)
}
```
### Receipt Order (Inbound Order)
```
ReceiptOrder {
Code* → unique order code
Type → Supplier/Return/Transfer
Status → Created/Waiting/Pending/Receiving/PartiallyReceived/
Received/Closed/Canceled
SupplierCode → Supplier (if type=Supplier)
Lines[] {
Number, ItemCode, ExpectedQty, ReceivedQty, FreeQty, UoMCode
}
Receipts[] → linked Receipts (physical receiving events)
Containers[] → ASN pre-notified Containers
ERP_Source → ROR message code (if from ERP)
}
```
### Shipping Order (Outbound Order)
```
ShippingOrder {
Code* → unique order code
Type → Customer/Return/Transfer/DirectTransfer/
Replenishment/Kit/Desk/Work
Status → Created/Released/InPreparation/StockFailure/
Paused/Prepared/Closed/Canceled
Priority → Urgent/High/Normal/Low/VeryLow
AccountCode → Account (delivery destination)
DockCode → assigned dock (optional)
RouteCode → Route assignment (optional)
GroupCode → wave/group (optional)
Lines[] {
Number, ItemCode, ContainerCode, OrderedQty, PreparedQty,
ShippedQty, UoMCode, LogisticAttributes, MaxLots,
Flags: Critical/Required/Excess/Substitutes
}
Prepackaging → prepackaging config (SOR02 only)
VASCode → VAS template reference (optional)
ERP_Source → SOR message code
}
```
### Count
```
Count {
Code* → unique count code
Type → Location/Item/Container
Status → Disabled/Releasing/InProcess/Closed/Canceled
Priority → count priority
Lines[] {
Number, Scope: {ItemCode/ContainerCode/LocationFrom-To/Aisle},
IsInformed, IsBlind
}
Tasks[] → count Tasks generated
ERP_Source → COR message code (if ERP-initiated)
}
```
## Master Data Entities
```
Item {
Code*, OwnerCode, Description, ShortDescription
TypeCode → ItemType
FamilyCode → ItemFamily
ABCClass → A/B/C classification
Profiles: LogisticProfile, ReceptionProfile, PutawayProfile,
ShippingProfile, CuttingProfile
UoMBase, Conversions[], Aliases[]
LogisticAttributes: {lot, serial, expiry, bestBefore, days_of_life,
production, color, size, version, quality, weight}
MinQty, MaxQty (per SubWarehouse via ItemClassification)
IsKit, IsSubstitute, IsCuttingStock
}
Owner {
Code*, Description
(with Owner Extensions: isolated master data scope)
}
Supplier {
Code*, Description, OwnerCode
}
Account {
Code*, Description, OwnerCode, AccountType
MixingRules → item/lot mixing restrictions
}
Carrier {
Code*, Description
Services[] → carrier service levels
(with Multi-Carrier: extended delivery configuration)
}
```
## Operational Entities
### Routes and Loads
```
Route {
Code*, Description, CarrierCode
DockCode → departure dock
DepartureTime
Status → Open/Closed/Canceled
Loads[] → truck Loads
ShippingOrders[] → assigned orders
}
Load {
Code*, RouteCode
Status → Open/InLoading/Closed
Seal → seal number
Containers[] → loaded containers
Stocks[] → loaded loose stock
}
```
### Putaway and Replenishment
```
PutawayStrategy {
Criteria[] → filter rules (item type, family, ABC, weight, etc.)
LocationRules[] → destination preference rules
AisleBalancing → boolean
ChannelFilling → boolean (prefer filling partial channels)
}
PDL (PickingDedicatedLocation) {
LocationCode, ItemCode, UoMCode
MinQty, MaxQty, ReplenishQty
PartitionType → fixed/flexible
EfficiencyMode → efficient/complete/none
}
```
### Consolidation and Defragmentation
```
ConsolidationProcess {
Code*, Definition, Criteria
AllowMixing → boolean
DestinationStation
Status → Standby/Released/Paused/Canceled
Orders[] → consolidation orders
}
DefragmentationPlanner {
Type → Rotation/Shipping
Schedule, Duration, Frequency
Status → Active/Inactive
}
```
## Module-Specific Entity Extensions
### AGV
```
AGVOrder {
ContainerCode, LoadType (0=Container/1=PalletShuttle)
PhaseCode → communication phase (00/03/04/06/08/10/255)
OriginLocation, DestinationLocation
ErrorCode, ErrorDescription
}
```
### Multi-Carrier
```
Delivery {
CarrierCode, ConsigneeCode
Status → Pending/Confirmed/Shipped/Delivered
TrackingNumber
Packages[]
ShippingOrderCode
}
```
### 3PL Billing
```
BillingContract {
OwnerCode, Description
Rules[] → BillingRule
Planners[] → BillingPlanner
}
BillingRule {
Type → Standard/Custom
ValuationFields[], TieredPricing[]
}
```
### DOM
```
DOMNode {
Code*, Type → POI/POF/Store
RegionCode
StockLevels → Organization/Node/Line
}
DOMOrder {
Code*, Type → Purchase/Sales/Replenishment
SourceNode, DestinationNode
OrchestrationStage → Region/Carrier/Stock/Capacity/Strategy
}
```
## Key Referential Constraints
| Constraint | Description |
|-----------|-------------|
| Item cannot be deleted with active stock | Item delete requires zero stock across all locations |
| Location cannot be deleted if occupied | Must empty location first |
| ReceiptOrder cannot be deleted if has receipts | Must cancel or close first |
| ShippingOrder cannot be modified if closed/canceled | Immutable after close |
| Task cannot be canceled if InProcess | Must be released by operator first |
| Container lock blocks most operations | Check active locks before operations |
| Stock with active UserStatus blocks shipping | Unless order specifically requests that status |
## Transaction-Entity Mapping
Every entity state change generates a Transaction. Key mappings:
| Transaction | Entity Changed |
|------------|---------------|
| `CON.LOCATE` | Container → Location (putaway) |
| `CON.MOVE` | Container → Location (manual move) |
| `CON.SHIPPED` | Container → Status=Shipped |
| `CON.RECEP` | Container → Created at receipt |
| `STK.RECEP` | Stock → Created at receipt |
| `STK.LOCATE` | Stock → Location (via putaway) |
| `STK.MOVE` | Stock → Location (manual) |
| `STK.PICKING` | Stock → Quantity decreased (picking) |
| `STK.ADJ` | Stock → Quantity adjusted |
| `STK.SHIPPED` | Stock → Status=Shipped |
| `INO.CST` | ReceiptOrder → Status changed |
| `INO.CLS` | ReceiptOrder → Status=Closed |
| `OUT.CST` | ShippingOrder → Status changed |
| `OUT.CLS` | ShippingOrder → Status=Closed |
| `COU.CST` | Count → Status changed |
| `COU.END` | Count → Status=Closed/Canceled |
| `TSK.LOC.001` | Task → Status=Finished (putaway) |
| `TSK.SHIP` | Task → Status=Finished (shipping) |
## ERP Integration Touch Points
Each entity has ERP messages that create, update, or receive data:
| Entity | ERP In (ERP→WMS) | ERP Out (WMS→ERP) |
|--------|-----------------|------------------|
| Item | ITM | — |
| Owner | OWN | — |
| Supplier | SUP | — |
| Account | ACC | — |
| Carrier | CAR | — |
| Kit | KIT | KST (assemble), UNK (disassemble) |
| ItemClassification | ITC | — |
| ReceiptOrder | ROR | ROC (status), ROF (close) |
| Container (ASN) | ASN | ASO (received), ASK (rejected) |
| Receipt | — | REF (closed) |
| ShippingOrder | SOR, RUT, WOR | SOC (status), SOF (close), LOF (load close), WOF (work order close) |
| Count | COR | COF (finalized) |
| Stock | STR (lock), SCR (contrast) | STV (variation), STC (status change), WSC (contrast response) |
| AutoWarehouse replenishment | SRN | SRO (done), SRK (canceled) |
| Container on conveyor | CMC | COS (shipped to PS), COC (closed in MP) |
## Related
- [Application Dictionary](application-dictionary.md) — AD element types: Commands, Queries, Entities
- [Container](../concepts/container.md) — Container entity deep-dive
- [Location](../concepts/location.md) — Location entity deep-dive
- [Stock](../concepts/stock.md) — Stock entity deep-dive
- [Product / Item](../concepts/product-item.md) — Item entity deep-dive
- [Task](../concepts/task.md) — Task entity lifecycle
- [Inbound Order](../concepts/order-inbound.md) — Receipt order entity
- [Outbound Order](../concepts/order-outbound.md) — Shipping order entity
- [Transactions](../concepts/transactions.md) — Full transaction audit trail
- [ERP Interface](../concepts/erp-interface.md) — ERP message catalog