Files
arthur 9ce6ae37be lint(standard): corrections completes mode standard
- 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)
2026-07-20 13:01:21 +02:00

797 lines
27 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "ERP Interface"
type: concept
sources:
- areas/ERP.md
- areas/ERP/masters/itm.md
- areas/ERP/masters/itc.md
- areas/ERP/masters/kit.md
- areas/ERP/masters/sup.md
- areas/ERP/masters/acc.md
- areas/ERP/masters/own.md
- areas/ERP/masters/car.md
- areas/ERP/masters/lck.md
- areas/ERP/receipts/ror.md
- areas/ERP/receipts/asn.md
- areas/ERP/receipts/aso.md
- areas/ERP/receipts/ask.md
- areas/ERP/receipts/roc.md
- areas/ERP/receipts/rof.md
- areas/ERP/receipts/ref.md
- areas/ERP/requests/str.md
- areas/ERP/requests/scr.md
- areas/ERP/requests/cmc.md
- areas/ERP/shipping/sor.md
- areas/ERP/shipping/soc.md
- areas/ERP/shipping/sof.md
- areas/ERP/shipping/lof.md
- areas/ERP/shipping/wor.md
- areas/ERP/shipping/wof.md
- areas/ERP/shipping/rut.md
- areas/ERP/counts/cor.md
- areas/ERP/counts/cof.md
- areas/ERP/replenishment/srn.md
- areas/ERP/replenishment/sro.md
- areas/ERP/replenishment/srk.md
- areas/ERP/notifications/stv.md
- areas/ERP/notifications/stc.md
- areas/ERP/notifications/wsc.md
- areas/ERP/notifications/kst.md
- areas/ERP/notifications/unk.md
- areas/ERP/notifications/cos.md
- areas/ERP/notifications/coc.md
- sources/archives/08_Ajouter_image_fiche_article_ITM01.md
- sources/archives/18_ASN_DirectTransfer.md
- sources/archives/19_ASN_Transfer.md
- sources/archives/32_Fusion_commandes_Merge.md
related:
- concepts/order-inbound.md
- concepts/order-outbound.md
- concepts/stock.md
- concepts/product-item.md
- concepts/count.md
- concepts/quality-control.md
- concepts/transactions.md
- architecture/entities-map.md
last_compiled: "2026-04-17"
---
# ERP Interface
## Overview
The ERP Interface is the integration layer between Easy WMS and the customer's ERP system (SAP, Oracle, Microsoft Dynamics, or any custom ERP). Communication is asynchronous, message-based, using a structured 3-letter code naming convention. Messages flow in both directions:
- **ERP → WMS**: Master data synchronization, order creation, requests
- **WMS → ERP**: Status notifications, order finalizations, stock events
All messages have a **version** suffix when multiple variants exist (e.g., ROR01, SOR01, SOR02). The **Operation** field in each message specifies the action: `C` (Create), `U` (Update), `S` (Upsert), `D` (Delete).
## Complete Message Catalog
### Master Data Messages (ERP → WMS)
| Code | Name | Direction | Description |
|------|------|-----------|-------------|
| ITM | Item | ERP → WMS | Create/update/delete items (SKU master) |
| ITC | Item Classification | ERP → WMS | Min/max stock levels per sub-warehouse |
| OWN | Owner | ERP → WMS | Create/update owners (3PL tenants) |
| CAR | Carrier | ERP → WMS | Create/update carriers |
| ACC | Account | ERP → WMS | Create/update customer accounts |
| SUP | Supplier | ERP → WMS | Create/update suppliers |
| KIT | Kit | ERP → WMS | Create/update kit definitions |
| LCK | Lock Type | ERP → WMS | Lock type master data |
#### ITM - Image fields
The `ITM01` message can optionally convey the article's picture. Two modes:
| Mode | Field | Behaviour |
|---|---|---|
| **Local file** | `<ItmPicture>nom-fichier.jpg</ItmPicture>` | File resolved against the folder pointed to by `UserImagesURI` in the WMS `appsettings.json`. Typical value : `C:/MLX/Data/Pictures/`. |
| **URL** | `<ItmPictureUrl>https://…/photo.jpg</ItmPictureUrl>` | Fetched by the WMS when the client uses the display; `ItmPicture` takes precedence if both are present. |
> Requires read access on the `UserImagesURI` share from the WMS service account. The image is not uploaded via the ITM file - only the filename / URL is stamped on the item record.
---
### Inbound / Receipt Messages
#### ROR - Receipt Order (ERP → WMS)
The primary message for creating inbound orders.
**Versions:**
- `ROR01` (default): Supplier receipt orders, return orders, transfer orders
**Key fields:**
| Field | Description |
|-------|-------------|
| Operation | C/S/U/D |
| Site | Warehouse code |
| RorCode | Receipt order code (unique) |
| RorType | Supplier / Return / Transfer |
| SupplierCode | Supplier (Supplier type only) |
| Document | Delivery note number (optional) |
| Lines[].LneNumber | Line number |
| Lines[].LneItemCode | Item to receive |
| Lines[].LneQtyExpected | Expected quantity |
| Lines[].LneQtyFree | Free-of-charge quantity |
| Lines[].LneQtyUoMCode | Unit of measure |
| Lines[].transactional | If true: fail entire order if one line fails |
**Notes:**
- Order code must be unique for new orders
- Lines support optional `transactional` group to control failure behavior
- Can create/modify/cancel lines individually after creation
- Triggers [ROC](#roc---receipt-order-status-change-wms--erp) status change notifications
---
#### ASN - Advanced Shipping Notice (ERP → WMS)
Pre-notifies WMS of containers en route to the warehouse.
**Versions:**
- `ASN01`: Basic container pre-notification
- `ASN02ASN08`: Extended variants for cutting stock, quality status, loose stock, etc.
**Key fields:**
| Field | Description |
|-------|-------------|
| Operation | C/D |
| Site | Warehouse code |
| ContainerCode | Container LPN |
| ContainerTypeCode | Container type |
| ReceiptOrderCode | Associated receipt order (optional) |
| Lines[].ItemCode | Item in container |
| Lines[].Quantity | Quantity |
| Lines[].UoMCode | Unit of measure |
| Lines[].LogisticAttributes | Lot, expiry, serial, etc. |
**Notes:**
- Creates pending stock at ASN virtual location
- If container is received: triggers [ASO](#aso---advanced-shipping-notice-ok-wms--erp) response
- If container is rejected or deleted: triggers [ASK](#ask---advanced-shipping-notice-ko-wms--erp) response
---
#### SRN - Stock Replenish Notice (ERP → WMS)
Pre-notifies WMS of loose stock for automatic warehouse replenishment.
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| Operation | Operation code |
| ItemCode | Item to replenish |
| OwnerCode | Owner |
| Quantity | Quantity |
| UoMCode | Unit of measure |
| Status | Stock status group |
| Attributes | Logistic attributes |
| RepQuePickingStationCode | Target picking conveyor (optional, triggers auto replenishment order) |
| RepQuePriority | Priority (Urgent/High/Normal/Low/VeryLow) |
| RepQueReplenishMode | Replenishment mode |
| RepQueEfficiencyMode | Efficiency mode |
---
#### ROC - Receipt Order Status Change (WMS → ERP)
Notifies ERP of receipt order status transitions.
**Statuses reported:** Waiting, Pending, Receiving, PartiallyReceived, Received, Closed, Canceled
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| RorCode | Receipt order code |
| Status | New status |
**Triggered by:** `INO.CST` transaction
---
#### ROF - Receipt Order Finalization (WMS → ERP)
Notifies ERP that a receipt order has been closed or canceled, with received quantities.
**Versions:**
- `ROF01`: Standard finalization
- `ROF02`: Extended with detailed line-level quantities - **the version generated when closing an inbound order sourced from a `Transfer` shipping order** (two-warehouse flow). For standard supplier receipts, ROF01 is emitted.
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| RorCode | Receipt order code |
| Status | Closed / Canceled |
| Lines[].LneNumber | Line number |
| Lines[].LneItemCode | Item |
| Lines[].LneQtyExpected | Expected quantity |
| Lines[].LneQtyReceived | Received quantity |
| Lines[].LneQtyUoMCode | Unit of measure |
**Triggered by:** `INO.CLS` / `INO.CNL` transactions
---
#### REF - Receipt Finalization (WMS → ERP)
Notifies ERP that a **receipt** (physical receiving event) has been closed.
**Notes:**
- Sent only when a receipt with actual received stock is closed
- Sent for blind receipts (no associated receipt order)
- Includes detailed line-level stock received data
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| ReceiptCode | Receipt code |
| Status | Closed |
| RecDatContainers | Number of containers received |
| RecDatDate | Arrival/closure date |
| Lines[].LneItemCode | Item received |
| Lines[].LneQtyReceived | Received quantity |
| Lines[].LneStockItemCode | Actual received item (may differ from ordered) |
| Lines[].LneStockQty | Stock quantity |
| Lines[].LneStockWeight | Weight |
| Lines[].LneStockRecDate | Receipt timestamp |
**Triggered by:** `REC.CLS` transaction
---
#### ASO - Advanced Shipping Notice OK (WMS → ERP)
Confirms that a pre-notified container has been successfully received.
**Triggered by:** `CON.ASN.001` transaction (ASN container received) or `CON.PIE` (container entered via PIE)
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| ContainerCode | Received container |
| ReceiptOrderCode | Associated receipt order |
| ReceiptCode | Receipt document |
| ReceivedDate | Reception timestamp |
> **DirectTransfer trigger** - when the expedition of a `<DirectTransfer>` shipping order is closed at the origin warehouse, EasyWMS automatically generates an `ASO01` message targeting the destination warehouse, creating the incoming ASN container(s). The ASO carries the container and its stock but **no reference to the originating `SorCode` / DirectTransfer header**. See [concepts/order-outbound.md](order-outbound.md#asn---directtransfer-flow).
---
#### ASK - Advanced Shipping Notice KO (WMS → ERP)
Notifies ERP that a pre-notified container has been rejected or deleted.
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| ContainerCode | Rejected container |
| ReceiptOrderCode | Receipt order (optional) |
| CancelDate | Rejection timestamp |
**Triggered by:** `CON.CNL.ASN` transaction
> **DirectTransfer trigger** - deleting an ASN container of a DirectTransfer flow from SmartUI (`Entrepôt → Conteneurs ASN → Supprimer`) generates an `ASK01` to the ERP. As with the ASO, the message contains no reference to the upstream shipping order.
---
#### SRO - Stock Replenish OK (WMS → ERP)
Confirms that pre-notified loose stock has been used for automatic warehouse replenishment.
**Triggered by:** `STK.REP.001` transaction
---
#### SRK - Stock Replenish KO (WMS → ERP)
Notifies that pre-notified loose stock has been canceled (not used for replenishment).
**Triggered by:** `STK.REP.CNL` transaction
---
### Outbound / Shipping Messages
#### SOR - Shipping Order (ERP → WMS)
The primary message for creating outbound orders.
**Versions:**
- `SOR01`: Standard shipping order (items/containers)
- `SOR02`: Prepackaging (specifies package count/type per line; VAS integration)
**Key fields:**
| Field | Description |
|-------|-------------|
| Operation | S (new/upsert) / U (update) / D (cancel) |
| Site | Warehouse code |
| SorCode | Shipping order code (unique) |
| SorType | Customer / Return / Transfer / DirectTransfer |
| Priority | Urgent/High/Normal/Low/VeryLow |
| EnableReplenishment | Enable auto replenishment for this order |
| PrpPackingLocation | Consolidation location code |
| PlnAssignedDock | Pre-assigned dock |
| Lines[].LneNumber | Line number |
| Lines[].LneItemCode | Item (or alias) |
| Lines[].LneContCode | Container (optional) |
| Lines[].LneQtyOrder | Ordered quantity |
| Lines[].LneQtyUoMCode | Presentation |
| Lines[].LneAttributes | Logistic attribute filters (lot, expiry, etc.) |
| Lines[].LneTrmCritical | Critical line flag (all or nothing) |
| Lines[].LneTrmRequired | Required line flag (conditional preparation) |
| Lines[].LneMaxLots | Maximum number of lots |
| Lines[].LneQtyAllowExcess | Allow over-allocation |
| Lines[].LneTrmAlternative | Use configured substitutes |
| Lines[].LneAltItmCode | Explicit substitute item |
| Lines[].LneTrmStaReq | Required stock status |
| Lines[].LneTrmStaRejC | Rejected stock status |
| Lines[].LneTrmStaPref | Preferred stock status |
| Lines[].LneQtyReserve | Stock reserve quantity |
| Lines[].ShipExpiredStock | Ship only expired stock |
| SOR02: PrpContTypeRequired | Required client container type |
| SOR02: VASCode | VAS template |
**`SorType = DirectTransfer`** - inter-warehouse transfer; closing the expedition at origin emits an automatic `ASO01` on destination, pre-creating the ASN container (see [ASO](#aso---advanced-shipping-notice-ok-wms--erp) and [concepts/order-outbound.md](order-outbound.md#asn---directtransfer-flow)).
**`SorType = Transfer`** - inter-warehouse transfer variant where destination generates **a full inbound order** on expedition close (as opposed to DirectTransfer which only pre-notifies via ASN). The destination ROR carries the source SOR reference ; on close, destination emits a `ROF02` carrying the line-level quantities, which the origin warehouse uses to reconcile. See [concepts/order-outbound.md](order-outbound.md#transfer---two-warehouse-flow-inbound-order-created).
---
#### SOC - Shipping Order Status Change (WMS → ERP)
Notifies ERP of shipping order status transitions.
**Statuses reported:** Release, StockFailure, InPreparation, Paused, Stopped, Prepared, Completed, Canceled
**Triggered by:** `OUT.CST` transaction
---
#### SOF - Shipping Order Finalization (WMS → ERP)
Notifies ERP that a shipping order has been closed or canceled with shipped quantities.
**Versions:**
- `SOF01`: Full close
- `SOF02`: Partial close (with remaining quantities)
**Key fields:**
| Field | Description |
|-------|-------------|
| SorCode | Shipping order code |
| Status | Closed / Canceled |
| ClosingNumber | Closing sequence number |
| Lines[].LneNumber | Line number |
| Lines[].LneQtyShipped | Shipped quantity |
| Lines[].LneQtyUoMCode | Unit of measure |
**Triggered by:** `OUT.CLS` / `OUT.CNL` transactions
---
#### DlvShareDeliveries - Merge outbound orders (ERP → WMS)
XML message used by the **Multi-Carrier / Deliveries module** to request that two or more outbound orders be prepared together (merged). A merged group shares client containers, carrier call, and closure.
**Eligibility** - all orders in the request must match on:
- Same account
- Same site (warehouse)
- Same route or delivery address
- Same carrier
When `ALLOW_MERGE_DIFFERENT_ACCOUNT = true` is set, the "same account" rule is relaxed (cross-account merges become possible).
**Effect on orders:**
- Stock assignment is executed across the merged scope (not per-order)
- Client containers can carry lines from any order in the group
- Order closure is triggered when the last line of the last order in the group is picked / when the carrier call returns
- SOF is still emitted per source SOR - only preparation is shared
See [concepts/order-outbound.md](order-outbound.md#merge-order-fusion) for operator flows and limitations.
---
#### LOF - Load Finalization (WMS → ERP)
Notifies ERP that a truck load has been closed (truck loaded and sealed).
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| LoadCode | Load code |
| RouteCode | Route code |
| Seal | Seal number |
| ClosureDate | Closure timestamp |
| ShippingOrders[] | Orders included in load |
**Triggered by:** `LOAD.CLS` transaction
---
#### WOR - Work Order (ERP → WMS)
Creates kit assembly or other work orders.
**Used for:** Kit assembly, quartering (cutting), or other manufactured outputs
---
#### WOF - Work Order Finalization (WMS → ERP)
Notifies ERP that a work order (kit assembly, etc.) has been closed or canceled.
**Triggered by:** `WOR.CLS.001` / `WOR.CNL.001` transactions
---
#### RUT - Route (ERP → WMS)
Creates or updates carrier routes.
**Key fields:**
| Field | Description |
|-------|-------------|
| RouteCode | Route code |
| CarrierCode | Carrier |
| DockCode | Departure dock |
| DepartureTime | Scheduled departure |
---
### Count Messages
#### COR - Count Order Request (ERP → WMS)
Requests WMS to create a physical count.
**Supported scope types:**
- Item count (by item + owner)
- Location count (by location range or aisle)
- Container count (by LPN)
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| CountCode | Count code |
| Priority | Count priority |
| Lines[].ItemCode | Item (item count) |
| Lines[].Aisle | Aisle (aisle count) |
| Lines[].CntCode | Container LPN (container count) |
| Lines[].LocationFrom/To | Location range (location count) |
| Lines[].IsInformed | Blind (false) or informed (true) count |
---
#### COF - Count Order Finalization (WMS → ERP)
Reports count results when a WMS-received count (from COR) is closed or canceled.
**Note:** Only sent for ERP-initiated counts, not WMS-initiated counts.
**Key fields:**
| Field | Description |
|-------|-------------|
| Status | Closed / Canceled |
| Site | Warehouse code |
| CountCode | Count code |
| Lines[].ItemCode | Counted item |
| Lines[].Quantity | Counted quantity |
| Lines[].UomCode | Unit of measure |
| Lines[].LogisticAttributes | Lot, serial, etc. |
| Lines[].StockStatus | Receiving and user statuses |
| (empty location) LocationEmpty=1 | Indicates empty location |
**Triggered by:** `COU.END` transaction
---
### Request Messages
#### STR - Stock Status Change Request (ERP → WMS)
Requests WMS to apply or remove a quality lock on stock.
**Operations:**
- `S` (Add): Lock stock with a user status
- `D` (Remove): Remove user or receiving status
**Filter options:** Item, Owner, Container, Lot (logistic attributes)
**Lock types:**
- Time-limited lock: `StaUsrEnd` field with UTC expiry datetime
- Permanent lock: No end date, must be manually released
**Key fields:**
| Field | Description |
|-------|-------------|
| Operation | S (lock) / D (unlock) |
| ItemCode | Item to lock |
| OwnerCode | Owner |
| FltAttLot | Lot filter |
| StaCode | Status code to apply |
| StaUsrEnd | Lock expiry (UTC) - optional |
| StaUsrEmpty | Status to remove (for unlock) |
| StaRecEmpty | Reception status to remove |
**Response:** [STC](#stc---stock-status-change-wms--erp) message per affected stock line
---
#### SCR - Stock Count Request (ERP → WMS)
Requests WMS to report current stock for an item or lot.
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| MassiveCount | true=grouped by item / false=per container |
| ItemCode | Item |
| OwnerCode | Owner |
| LotCode | Lot (optional) |
**Response:** [WSC](#wsc---warehouse-stock-count-wms--erp) message
---
#### CMC - Container Movement Confirmation (ERP → WMS)
Notifies WMS of a container's destination after removal from outbound conveyor, when movements are managed by an external system.
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| ContainerCode | Container |
| Destination | Destination location code |
---
### Notification Messages (WMS → ERP)
#### STV - Stock Variation (WMS → ERP)
Reports any stock quantity change (increase, decrease, creation, deletion, UoM change, logistic attribute change).
**Operations:** C (creation/increase), D (deletion/decrease)
**Key fields:**
| Field | Description |
|-------|-------------|
| Operation | C or D |
| Site | Warehouse code |
| ItemCode | Item |
| OwnerCode | Owner |
| QuantityVar | Changed quantity (in base UoM) |
| UoMCode | Unit of measure (if UoM change) |
| FilterAttributes | Old logistic attributes (for attribute changes) |
| Attributes | New logistic attributes (for attribute changes) |
| ReasonCode | Adjustment reason (if configured) |
**Also sent for:** Presentation breakage (UoM split during picking), replenishment splits
**Triggered by:** `STK.ADJ` transaction
---
#### STC - Stock Status Change (WMS → ERP)
Reports every stock quality status change (lock or unlock).
**Can be triggered by:** STR request from ERP, manual user action (RF or SmartUI), automatic time-based unlock
**Key fields:**
| Field | Description |
|-------|-------------|
| ItemCode | Item |
| OwnerCode | Owner |
| Quantity | Stock quantity |
| UomCode | Unit of measure |
| FltAttLot | Lot |
| ContainerCode | Container (if applicable) |
| StaUsrCode | New user status (lock case) |
| StaUsrEnd | Expiry date (for time-limited locks) |
| StaUsrEmpty | true (unlock case) |
**Triggered by:** `CST.STK` transaction
---
#### WSC - Warehouse Stock Count (WMS → ERP)
Response to SCR stock contrast request. Reports current stock quantities.
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| WSCDate | Date of stock check |
| ItemCode | Item |
| OwnerCode | Owner |
| Quantity | Current stock quantity |
| UomCode | Unit of measure |
| LotCode | Lot (if lot-level contrast requested) |
**Triggered by:** `SCR.REQ` transaction
---
#### KST - Kit Assembled (WMS → ERP)
Notifies ERP that kit stock has been assembled.
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| WorkOrderCode | Work order code (if applicable) |
| KitItemCode | Assembled kit item |
| KitQuantity | Kit quantity |
| KitVersion | Kit version |
| CompItemCode | Component item |
| CompQty | Component quantity used |
**Triggered by:** `STK.KIT.MOUNT` transaction
---
#### UNK - Kit Disassembled (WMS → ERP)
Notifies ERP that kit stock has been disassembled.
**Triggered by:** `STK.KIT.UMOUNT` transaction
---
#### COS - Container Shipped to PS (WMS → ERP)
Notifies ERP that a client container has been sent to the outbound conveyor (PS/Sortation).
**Key fields:**
| Field | Description |
|-------|-------------|
| Site | Warehouse code |
| StationCode | Station where container ended |
| LocationCode | Location |
| ContainerCode | Container |
| StationToCode | Destination station (if task-based move) |
| ClosedDate | Closing timestamp (UTC) |
**Triggered by:** `CON.COS.001` transaction
---
#### COC - Container Closed in MP (WMS → ERP)
Notifies ERP that a client container has been closed in a Preparation Zone (MP).
**Key fields:** Same structure as COS
**Triggered by:** `CON.COC` transaction
---
#### ERR - Error (WMS → ERP)
Sent when WMS cannot process an incoming ERP message. Contains the original message reference and error description.
---
## Message Operation Codes
| Code | Meaning |
|------|---------|
| `C` | Create (new record) |
| `S` | Upsert (create or update) |
| `U` | Update (existing record only) |
| `D` | Delete or cancel |
## Integration Architecture
### Message Flow
```
ERP ──[async message]──→ WMS Integration Queue
WMS Integration Queue ──→ WMS Core (processes message)
WMS Core ──[transaction]──→ Post-processor
Post-processor ──[async message]──→ ERP Response Queue
ERP Response Queue ──→ ERP
```
### Transaction Post-processing
Many WMS transactions are marked **"Post-processed: yes"** - meaning after the internal transaction is written, a background post-processor generates the corresponding ERP message:
| Transaction | Generated Message |
|------------|-----------------|
| `CON.ASN.001` | ASO |
| `CON.CNL.ASN` | ASK |
| `CON.PIE` | ASO |
| `INO.CST` | ROC |
| `INO.CLS` | ROF |
| `INO.CNL` | ROF |
| `REC.CLS` | REF |
| `OUT.CST` | SOC |
| `OUT.CLS` | SOF |
| `OUT.CNL` | SOF |
| `LOAD.CLS` | LOF |
| `WOR.CLS.001` | WOF |
| `WOR.CNL.001` | WOF |
| `COU.END` | COF |
| `STK.ADJ` | STV |
| `CST.STK` | STC |
| `STK.REP.001` | SRO |
| `STK.REP.CNL` | SRK |
| `SCR.REQ` | WSC |
| `STK.KIT.MOUNT` | KST |
| `STK.KIT.UMOUNT` | UNK |
### Module-Specific ERP Messages
Beyond the core catalog, optional modules add their own ERP messages:
| Module | Message | Direction | Description |
|--------|---------|-----------|-------------|
| Manufacturing | RCP01/RCP02 | ERP → WMS | Recipe (BOM) create/update/delete |
| Manufacturing | MOR01 | ERP → WMS | Manufacturing production order create/update/delete |
| Manufacturing | MOF | WMS → ERP | Manufacturing order finalization (closed or cancelled) |
| Manufacturing | FGP | WMS → MES | Finished goods produced notification (MES integration) |
| Kits | WOR | ERP → WMS | Work order for kit assembly or disassembly |
| Kits | WOF | WMS → ERP | Work order finalized (ERP-originated orders only) |
| Kits | KST | WMS → ERP | Kit manually assembled (manual work orders) |
| Kits | UNK | WMS → ERP | Kit manually disassembled (manual work orders) |
| Store Fulfillment | TOR01 | ERP → WMS | Transfer order between stores/sub-warehouses |
| Store Fulfillment | TOF01 | WMS → ERP | Transfer order finalized |
| Store Fulfillment | TPV01 | ERP → WMS | POS sale notification - decrements store stock |
| VAS | VAS01 | ERP → WMS | Create/update VAS templates, activities, and instructions |
| VAS | SOR02 VASCode | ERP → WMS | VAS template reference per line in shipping order |
| VAS | SOF (VAS field) | WMS → ERP | VAS model used + quantity returned per shipped line |
| Slotting | SAC01 | WMS → ERP | ABC rotation classification suggestion (sent after manual recalculation) |
| DOM | POR/ROC/SOR/SOC/SOF/DOF/ACK/NCR | Both | Multi-node orchestration |
| Yard Management | Appointment sync | Both | ERP/TMS appointment exchange |
| Counting | SCR/WSC | Both | Stock contrast |
**SAC01 detail**: sent manually from SmartUI after running the ABC rotation analysis in the WMS. Contains item code + suggested ABC class. The ERP uses this to update item classification. Only sent when the WMS operator explicitly triggers it (not automatic).
**TPV01 detail**: sent by POS (point of sale) system when a store sale occurs. EasyWMS decrements the corresponding store sub-warehouse stock in real time, providing a live stock view per store. Requires Store Fulfillment module.
**TOR01/TOF01**: used by the Store Fulfillment module to manage inter-store replenishment. TOR01 creates the transfer order from ERP; TOF01 is returned when the transfer is complete.
## Common Errors
| Symptom | Cause | Solution |
|---------|-------|---------|
| ROR creates order but lines fail | `transactional` group not set, line validation error | Check item/UoM existence; review partial creation log |
| ASN container arrives but no ASO sent | Post-processor not running | Check integration pool and post-processor service |
| SOR rejected: item not found | Item not yet synced via ITM | Send ITM first, then SOR |
| STR applies lock but no STC received | Stock matching filters returned zero results | Verify item/owner/lot combination exists |
| SOF never received | Shipping order not yet closed in WMS | Check order status; may be in Prepared status awaiting manual close |
| COR count created but COF never sent | Count was created from UI (not ERP-initiated) | COF only sent for ERP-initiated counts |
## Related
- [Inbound Order](order-inbound.md) - Receipt order lifecycle and ROR/ROC/ROF details
- [Outbound Order](order-outbound.md) - Shipping order lifecycle and SOR/SOC/SOF details
- [Quality Control](quality-control.md) - Stock lock/unlock and STR/STC messages
- [Count](count.md) - Physical counts and COR/COF messages
- [Stock](stock.md) - Stock adjustments and STV messages
- [Transactions](transactions.md) - Internal transactions that trigger ERP messages
- [Entities Map](../architecture/entities-map.md) - ERP integration touch points per entity
- [Replenishment](replenishment.md) - Automatic warehouse replenishment and SRN/SRO/SRK
- [Manufacturing](../modules/manufacturing.md) - MOF/FGP production messages
- [DOM](../modules/dom.md) - Distributed order management messages