9ce6ae37be
- Em dashes: 1712 remplaces par tirets simples (86 fichiers + _index.md, en-tete section Limagrain conserve) - Checklists: 24 '- [ ]' -> '- ☐' (3 pages operations, plus de todos Obsidian) - Ancres: 33 reparees (slugs GitHub + ancres HTML <a id> reconnues), 1 reciblee (manuel de reten) - related: tenseflow -> tense-flow, pie -> mechanical-elements, group.md retire (doublon shipping) - Registre: compteur global 122 -> 131 pages - Rapport racine _lint_report.md mis a jour (scan v2 + re-scan final: 0 anomalie) - Aucun fichier limagrain/ modifie (cloisonnement)
273 lines
15 KiB
Markdown
273 lines
15 KiB
Markdown
---
|
|
title: "DOM (Distributed Order Management)"
|
|
type: module
|
|
sources:
|
|
- areas/DOM/outbounds/index.md
|
|
- areas/DOM/outbounds/sales_orders_orchestration_engine.md
|
|
- areas/DOM/outbounds/outbounds_admin/sales_order.md
|
|
- areas/DOM/outbounds/outbounds_admin/shipping_order.md
|
|
- areas/DOM/outbounds/outbounds_admin/sales_order_creation.md
|
|
- areas/DOM/outbounds/outbounds_admin/sales_order_release.md
|
|
- areas/DOM/inbounds/index.md
|
|
- areas/DOM/inbounds/inbounds_admin/purchase_order.md
|
|
- areas/DOM/inbounds/inbounds_admin/receipt_order.md
|
|
- areas/DOM/inbounds/expected_stock.md
|
|
- areas/DOM/replenishments/index.md
|
|
- areas/DOM/nodes/nodes.md
|
|
- areas/DOM/nodes/node_classes.md
|
|
- areas/DOM/nodes/geographic_region.md
|
|
- areas/DOM/nodes/workload.md
|
|
- areas/DOM/nodes/nodes_network.md
|
|
- areas/DOM/nodes/items_catalog.md
|
|
- areas/DOM/master_data/index.md
|
|
- areas/DOM/master_data/carriers.md
|
|
- areas/DOM/master_data/account_types.md
|
|
- areas/DOM/master_data/geographic_regions.md
|
|
- areas/DOM/docs_downloads/communications/Interface_Communications_ERP.md
|
|
- areas/DOM/notificationevents.md
|
|
related:
|
|
- modules/multi-carrier.md
|
|
- modules/yard-management.md
|
|
- modules/store-fulfillment.md
|
|
- concepts/order-inbound.md
|
|
- concepts/order-outbound.md
|
|
- concepts/stock.md
|
|
- concepts/replenishment.md
|
|
last_compiled: "2026-04-10"
|
|
---
|
|
|
|
# DOM (Distributed Order Management)
|
|
|
|
## Overview
|
|
|
|
Easy DOM is a Distributed Order Management platform that orchestrates the supply chain across multiple warehouse nodes of an organization. Unlike Easy WMS (which manages a single warehouse), DOM manages multi-node logistics: receiving stock from suppliers, routing outbound orders to the optimal fulfillment node, and replenishing inter-node stock.
|
|
|
|
DOM centralizes visibility of inventory across the entire organization network and applies configurable orchestration strategies to assign each sales order to the best possible supply point based on proximity, stock availability, carrier availability, and work capacity.
|
|
|
|
DOM integrates with the ERP (source of purchase/sales orders) and with each node's WMS (Easy WMS or compatible systems that communicate via standard messaging). It does not execute warehouse operations directly - it delegates to the nodes.
|
|
|
|
## Key capabilities
|
|
|
|
- Multi-node inventory visibility: stock levels aggregated across all organization nodes (org level, node level, line level)
|
|
- Outbound orchestration: 5-stage algorithm assigns each sales order to the optimal fulfillment node
|
|
- Inbound centralization: purchase orders from ERP distributed to nodes as receipt orders (no orchestration - node assignment is direct)
|
|
- Inter-node replenishment: replenishment orders move stock between nodes to maintain capacity levels
|
|
- Node network configuration: sourcing relationships, geographic regions, carrier assignments, workload limits
|
|
- Master data management: owners, items, suppliers, carriers, accounts, account types, geographic regions, kits
|
|
- ERP messaging integration: bidirectional standard messages (POR/ROC/SOF/etc.) for all order lifecycle events
|
|
- Manual orchestration wizard: step-by-step stock assignment for orders requiring human intervention
|
|
- Reorchestration engine: periodic retry for orders with assignment errors as stock conditions change
|
|
- Notifications: configurable alerts for orchestration errors and order lifecycle events
|
|
|
|
## Architecture
|
|
|
|
### Node types
|
|
|
|
| Role | Types | Description |
|
|
|------|-------|-------------|
|
|
| Point of Interaction (POI) | ERP, Office | Source of master data and orders in DOM workflow |
|
|
| Point of Fulfillment (POF) | Warehouse, 3PL provider | Where orders are prepared and stock is shipped |
|
|
| Both roles (POI + POF) | Store | Can both create orders and fulfill them |
|
|
|
|
**Node attributes**:
|
|
- Code: matches the WMS _site_ name at the node
|
|
- Class: groups nodes with similar characteristics (size, item catalog)
|
|
- Hierarchy level: numerical value limiting sourcing relationships (a node can only be supplied from nodes with ≤ its own level)
|
|
- Autorelease shipping orders: if enabled, DOM auto-releases shipping orders at the node on the configured date
|
|
- Node network: defines allowed sourcing relationships between nodes; sets priorities for supply from multiple sources
|
|
|
|
### Stock levels
|
|
|
|
DOM tracks stock at three levels:
|
|
| Level | Description |
|
|
|-------|-------------|
|
|
| Organization | Total stock across all nodes |
|
|
| Node | Stock at a specific fulfillment node |
|
|
| Line | Stock per item/logistic attribute combination at a node |
|
|
|
|
Stock pending receipt (pre-notified via purchase orders but not yet physically received) is visible as _receipt pending_ in stock views. Once received, it becomes available for orchestration.
|
|
|
|
### ERP messaging interface
|
|
|
|
DOM communicates with the ERP and with each node via a standard messaging bus. Key message types:
|
|
|
|
| Direction | Code | Description |
|
|
|-----------|------|-------------|
|
|
| ERP → DOM | POR | Purchase order request (create/modify) |
|
|
| DOM → Node | ROC | Receipt order creation (expected inbound) |
|
|
| ERP → DOM | SOR | Sales order request |
|
|
| DOM → Node | SOC | Shipping order creation |
|
|
| Node → DOM | SOF | Shipping order fulfilled (closed) |
|
|
| DOM → ERP | DOF | Delivery order fulfilled |
|
|
| DOM → ERP | POC/POF | Purchase order confirmation/fulfillment |
|
|
| DOM/ERP | ACK | Acknowledgement |
|
|
| DOM → Node | NCR | Node configuration update |
|
|
|
|
## Outbound: Sales Order Orchestration
|
|
|
|
### Order lifecycle
|
|
|
|
```
|
|
ERP creates SOR → DOM creates sales order (Pending)
|
|
→ Release (manual or auto)
|
|
→ Orchestration engine runs (5 stages)
|
|
→ Shipping orders created at assigned node(s) (Released)
|
|
→ Node prepares and ships
|
|
→ SOF messaging → DOM closes shipping order
|
|
→ DOM closes sales order → DOF to ERP
|
|
```
|
|
|
|
Sales orders can be stopped (stock freed), rejected (node canceled unilaterally), or canceled (ERP instruction). Archiving follows closing.
|
|
|
|
### 5-Stage Orchestration Engine
|
|
|
|
| Stage | Description |
|
|
|-------|-------------|
|
|
| 1. Geographic region | Delivery address geocoded (lat/long via geolocation service); matched to configured geographic regions (by coordinates, postal code range, or country ISO code) |
|
|
| 2. Candidate nodes & carriers | Nodes configured to serve the identified region are identified; carriers configured for each node-region combination are checked; carrier can be specified in the order (forces constraint) |
|
|
| 3. Stock availability | Nodes checked for sufficient available stock per order line; item catalog, quantity available for sale, logistic attributes (lot, serial, expiry, shelf life, version, color, etc.), shipping conditions (required/critical lines) |
|
|
| 4. Work capacity | Candidate nodes checked for ability to prepare and ship within the committed delivery date; considers working days/hours schedule, existing workload vs. max capacity; prorates available capacity for current-day orders |
|
|
| 5. Orchestration strategies | Final node selection applies configurable strategy preferences in sequence: total cost → estimated delivery date → region priority → maximum distance; strategies evaluated sequentially until valid candidate found or end-of-sequence reached |
|
|
|
|
**Orchestration results**:
|
|
- **Successful**: optimal node(s) assigned → shipping orders created with auto-release date, estimated ship date, estimated delivery date
|
|
- **Partial assignment**: stock available for some lines → shipping orders for available quantity; incomplete lines flagged
|
|
- **Assignment error**: no valid node found → order enters reorchestration queue
|
|
|
|
### Order release prioritization
|
|
|
|
When multiple orders release simultaneously (autorelease), priority order:
|
|
1. Autorelease date (orders without a date are last)
|
|
2. Order priority
|
|
3. Account type priority (lower sequence = higher priority)
|
|
4. Commitment date
|
|
5. Order creation date
|
|
|
|
### Manual orchestration wizard
|
|
|
|
Available for orders in _Pending_ status (no assigned stock). Step-by-step:
|
|
1. View order summary and lines
|
|
2. Select available nodes for each line
|
|
3. Assign stock quantities per line (partial assignment allowed)
|
|
4. Review shipping orders to be created (can change ship date or carrier)
|
|
5. Confirm - shipping orders created
|
|
|
|
If stock becomes unavailable during the wizard (concurrent assignment), the order is released with _Incomplete_ or _Assignment error_ status.
|
|
|
|
### Reorchestration
|
|
|
|
Automatic reorchestration triggers when stock enters the organization (covering orders in assignment error or incomplete state). Also runs periodically to catch non-stock errors (e.g., geolocation API failures).
|
|
|
|
Reorchestration priority criteria:
|
|
1. Order priority
|
|
2. Account type sequence (lower = higher priority)
|
|
3. Committed delivery date
|
|
4. Order release date
|
|
5. Order creation date
|
|
|
|
**Parameter**: `MAX_NUMBER_ORCHESTRATION_ATTEMPS_AFTER_REJECTIONS` - limits how many times an order is reorchestrated after node rejections; notifies when limit is reached.
|
|
|
|
Orders exceeding maximum deliveries or whose committed date cannot be met with any reorchestration cannot be automatically reorchestrated and must be manually closed (incomplete).
|
|
|
|
### Order splitting
|
|
|
|
If no single node can ship the complete order, DOM can assign parts to multiple nodes, creating multiple shipping orders. The maximum number of shipping orders per sales order is configurable. Delivery modes: carrier delivery to client address, or in-store pickup at a store node.
|
|
|
|
## Inbound: Purchase Order Management
|
|
|
|
DOM does not orchestrate inbound - it records and distributes purchase orders to nodes based on order line data.
|
|
|
|
```
|
|
ERP sends POR → DOM creates purchase order
|
|
→ Receipt orders created per node (grouped by node + estimated date + carrier)
|
|
→ Nodes notified (ROC) → nodes plan inbound
|
|
→ Stock received at node → ROF/SOF messaging → DOM updates received quantities
|
|
→ Purchase order closed (manual or auto) → POF to ERP
|
|
→ Archiving (automated by parameter)
|
|
```
|
|
|
|
**Purchase order statuses**: Open → In progress → Closed / Canceled / Rejected (node canceled unilaterally)
|
|
|
|
Receipt orders are read-only after creation; they update automatically based on purchase order edits. Receipt orders cannot be manually created.
|
|
|
|
**Expected stock**: pre-notified stock visible in stock views as _receipt pending_ - can be used for backordering decision-making but is not available for orchestration assignment (backordering not currently supported).
|
|
|
|
## Replenishment: Inter-node Stock Movement
|
|
|
|
DOM node replenishment creates replenishment orders to move stock from source nodes to destination nodes when stock levels drop.
|
|
|
|
```
|
|
ERP/manual creates replenishment order
|
|
→ Release → DOM generates shipping order at source node + receipt order at destination node
|
|
→ Source ships (SOF) → destination receives (ROF)
|
|
→ Replenishment order closes
|
|
```
|
|
|
|
Automatic replenishment by safety stock breakage is **not currently supported** - replenishment orders must be created manually or by ERP.
|
|
|
|
**Node sourcing relationships** (node network): defines which nodes can supply which other nodes, with priorities when multiple sources exist.
|
|
|
|
## Configuration
|
|
|
|
### Initial setup sequence
|
|
1. Define geographic regions (coordinates, postal codes, or country)
|
|
2. Create nodes (code matching WMS site name, role, type, hierarchy level)
|
|
3. Configure node workload (working days, hours, max daily order lines, cost per line)
|
|
4. Configure node-region relationships (which nodes serve which regions, with priority)
|
|
5. Configure node-carrier relationships per region (carrier, committed delivery time, cost)
|
|
6. Configure node network (sourcing relationships for replenishment)
|
|
7. Configure item catalog per node class
|
|
8. Create master data (owners, accounts, account types, suppliers, carriers)
|
|
9. Configure orchestration strategies (sequence, criteria, end-of-sequence flags)
|
|
10. Configure ERP messaging (communications bus, message types per node)
|
|
|
|
### Orchestration strategies
|
|
Multiple strategies can be defined and ordered by sequence number. Each strategy specifies:
|
|
- Criteria for applicability (order characteristics, delivery destination, transport)
|
|
- Preference ordering for node selection (cost, delivery date, region priority, distance)
|
|
- Whether it marks the end of the sequence (stops evaluation if no match found)
|
|
|
|
### Node workload configuration
|
|
Per node:
|
|
- Working days (days of week)
|
|
- Start time / end time of working day
|
|
- Maximum order lines per day (total capacity)
|
|
- Operational cost per shipping order line (for cost-based strategies)
|
|
|
|
## Operations
|
|
|
|
### Monitoring views
|
|
- **Sales orders view**: status, assignment state, traceability log (orchestration result, assigned nodes, strategy used, date)
|
|
- **Purchase orders view**: receipt progress per node, received vs. expected quantities
|
|
- **Replenishment orders view**: replenishment progress, source/destination status
|
|
- **Stock views**: org-level and node-level stock with pending/available breakdown
|
|
- **Nodes network view**: visual map of node sourcing relationships
|
|
- **Workload view**: current workload vs. capacity per node per day
|
|
|
|
### Delivery modes
|
|
| Mode | Description |
|
|
|------|-------------|
|
|
| Carrier delivery | Standard carrier ships from node to client address |
|
|
| In-store pickup | Client collects from a store node; no carrier required |
|
|
|
|
## Errors & troubleshooting
|
|
|
|
| Issue | Cause | Resolution |
|
|
|-------|-------|-----------|
|
|
| Assignment error on sales order | No node passes all 5 orchestration stages | Check geographic region config, carrier-node assignments, stock availability, node workload |
|
|
| Order not reorchestrated after stock receipt | MAX_NUMBER_ORCHESTRATION_ATTEMPS_AFTER_REJECTIONS reached | Manually orchestrate using wizard |
|
|
| Receipt order not created | Purchase order lines have no valid destination node | Check node configuration and item catalog |
|
|
| Node rejected shipping order | Node unilaterally canceled (physical constraint, WMS issue) | DOM marks order as rejected; reorchestrate to assign different node |
|
|
| Geolocation failure | Delivery address not geocodable | Verify address contains valid country ISO code and postal code |
|
|
| Workload exceeded | Node at capacity for target date | Check node workload configuration; use manual orchestration to force a different date |
|
|
|
|
## Related
|
|
|
|
- [[order-inbound]] - Receipt orders are the WMS counterpart of DOM purchase orders
|
|
- [[order-outbound]] - Shipping orders are the WMS counterpart of DOM sales orders
|
|
- [[stock]] - DOM inventory visibility aggregates WMS stock across all nodes
|
|
- [[replenishment]] - DOM node replenishment triggers inter-node stock movements
|
|
- [[multi-carrier]] - Carrier assignments at DOM node level align with Multi-Carrier configuration at WMS level
|
|
- [[store-fulfillment]] - Store nodes in DOM correspond to Store Fulfillment remote stores
|
|
- [[yard-management]] - Inbound appointment management at nodes aligns with DOM purchase order arrival notifications
|