--- 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** | `nom-fichier.jpg` | File resolved against the folder pointed to by `UserImagesURI` in the WMS `appsettings.json`. Typical value : `C:/MLX/Data/Pictures/`. | | **URL** | `https://…/photo.jpg` | 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 - `ASN02–ASN08`: 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 `` 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). --- #### 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