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)
797 lines
27 KiB
Markdown
797 lines
27 KiB
Markdown
---
|
||
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
|
||
- `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 `<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
|