Files
mcp-wms-wiki/wiki/concepts/transactions.md
T
2026-05-20 09:41:27 +02:00

358 lines
17 KiB
Markdown

---
title: "Transactions & Notification Events"
type: concept
sources:
- areas/TransactionTypes.md
- areas/notificationevents.md
- areas/ERP.md
- Cross-source knowledge from all batches
- sources/archives/10_Transactions.md
related:
- concepts/erp-interface.md
- concepts/stock.md
- concepts/container.md
- concepts/order-inbound.md
- concepts/order-outbound.md
- concepts/count.md
- architecture/application-dictionary.md
- architecture/security.md
last_compiled: "2026-04-17"
---
# Transactions & Notification Events
## Overview
Easy WMS records every significant state change as a **Transaction** — an immutable audit log entry. Transactions serve two purposes:
1. **Audit trail**: Who did what, when, and on which objects
2. **ERP integration trigger**: "Post-processed" transactions generate ERP messages (see [ERP Interface](erp-interface.md))
Separately, **Notification Events** are operational alerts that fire when conditions of interest occur (stock low, order failed, etc.). These drive the SCEM subscription system.
## Transaction Structure
Every transaction record contains:
| Field | Description |
|-------|-------------|
| TransactionCode | Type code (e.g., `CON.MOVE`, `STK.ADJ`) |
| Version | Transaction version (e.g., `001`) |
| Site | Warehouse where it occurred |
| User | User who triggered it |
| Timestamp | When it occurred |
| Equipment | RF terminal or workstation IP (if applicable) |
| ContainerCode | Container involved (if applicable) |
| LocationCode | Source location |
| LocationTo | Destination location (if applicable) |
| TaskNumber | Task that caused it (if applicable) |
| Document1/2 | Related document codes (order, container type, etc.) |
| DocumentLine1 | Related line number |
| Item, Quantity, UoM | Stock details (if applicable) |
| LogAtt | Logistic attributes (if applicable) |
The **Post-processed** flag indicates whether the transaction triggers an ERP message.
### Regeneration from SmartUI
The Transactions view gives an end-to-end snapshot of every action done by the WMS. When a transaction is in status **`Envoyé`** (sent) or **`Génération d'erreur`** (generation error), SmartUI allows **regenerating the ERP file** directly — any modification made to the associated BOO code since the original send will be applied to the regenerated message. This is the standard lever used to recover from a post-processing hiccup or a fixed BOO without having to provoke the functional trigger a second time.
## Transaction Catalog
### Container Transactions (CON.*)
| Code | Post-processed | Description | ERP Message |
|------|---------------|-------------|-------------|
| `CON.ASN.001` | Yes | Container received for ASN order | ASO |
| `CON.CNL.ASN` | Yes | Pre-notified container rejected/deleted | ASK |
| `CON.COC` | No | Client container closed in Preparation Zone (MP) | — |
| `CON.COS.001` | No | Container entered outbound conveyor (PS) | — |
| `CON.CREATE` | No | Container created (manual, picking, or count) | — |
| `CON.DELETE` | No | Container deleted (L&F or after count) | — |
| `CON.LOAD` | No | Container loaded during truck loading | — |
| `CON.LOCATE` | No | Container moved to storage via putaway task | — |
| `CON.MOVE` | No | Container moved without putaway task (or from L&F) | — |
| `CON.PIE` | Yes | Container entered via PIE station | ASO |
| `CON.PRINT` | No | Packing list + client container label print trigger | — |
| `CON.RECEP` | No | Container received in any reception process | — |
| `CON.SEND.L&F` | No | Container sent to Lost & Found | — |
| `CON.SHIPPED` | No | Container status changed to Shipped (order close) | — |
| `CON.SHIPPING` | No | Shipping task confirmed for container | — |
| `CON.VASDONE` | No | VAS template applied to container | — |
**Key data fields by transaction:**
- `CON.ASN.001`: ContainerCode, LocationCode, Document1=ReceiptCode, Document2=ContainerTypeCode
- `CON.MOVE`: ContainerCode, LocationCode (from), LocationTo, Equipment, TaskNumber, Document1=ShippingOrder
- `CON.LOAD`: ContainerCode, LocationCode, LocationTo, Equipment, TaskNumber, Document1=ShippingOrder
---
### Count Transactions (COU.*)
| Code | Post-processed | Description | ERP Message |
|------|---------------|-------------|-------------|
| `COU.CLS` | No | Count closed | — |
| `COU.CNL` | No | Count canceled | — |
| `COU.CST` | No | Count status changed | — |
| `COU.END` | Yes | Count closed/canceled (ERP-initiated count) | COF |
**Notes:**
- `COU.END` only fires for counts created by ERP via COR message
- `COU.CST` tracks all intermediate status changes (Disabled → Releasing → In Process)
---
### Stock Transactions (STK.*)
| Code | Post-processed | Description | ERP Message |
|------|---------------|-------------|-------------|
| `STK.ADJ` | Yes | Stock quantity adjusted (SmartUI/RF/workstation) | STV |
| `STK.ASN` | No | Stock created in ASN container (pre-notified) | — |
| `STK.CREATE` | No | Stock created manually or from ASN loose stock | — |
| `STK.DELETE` | No | Stock line deleted (fused stock split) | — |
| `STK.KIT.COMP` | No | Stock consumed for kit assembly | — |
| `STK.KIT.UCOMP` | No | Stock obtained from kit disassembly | — |
| `STK.KIT.MOUNT` | Yes | Kit assembled | KST |
| `STK.KIT.UMOUNT` | Yes | Kit disassembled | UNK |
| `STK.LOAD` | No | Stock moved during truck loading | — |
| `STK.LOCATE` | No | Stock moved to storage via putaway task | — |
| `STK.MOVE` | No | Stock moved manually (or inside container after CON.MOVE) | — |
| `STK.PICKING` | No | Picking confirmed (stock moved from source to picking container) | — |
| `STK.RECEP` | No | Stock created during reception (supplier/return/blind) | — |
| `STK.REP.001` | Yes | Pre-notified loose stock replenished (auto warehouse) | SRO |
| `STK.REP.CNL` | Yes | Pre-notified loose stock canceled (auto warehouse) | SRK |
| `STK.SCR` | No | Stock scrapped from RF terminal | — |
| `STK.SEND.L&F` | No | Stock sent to Lost & Found | — |
| `STK.SHIPPED` | No | Stock shipped (container status = Shipped) | — |
| `STK.SPLIT` | Yes | Stock UoM broken down (picking or workstation split) | STV (split) |
| `STK.UMERGE` | No | Fused stock line split/un-merged | — |
| `STK.VASDONE` | No | VAS template applied to stock | — |
**Key data fields by transaction:**
- `STK.ADJ`: LocationCode, ContainerCode, Quantity, TaskNumber
- `STK.PICKING`: ProductCode, UoMCode, Quantity, LogAtt, ContainerCode (source), ContainerTo (destination), LocationCode, LocationTo, TaskNumber, Document1=ShippingOrder
- `STK.MOVE`: ContainerCode, LocationCode, LocationTo, Equipment, TaskNumber, Item, Quantity, UoM, StockStatus, LogAtt
---
### Stock Status Change Transaction
| Code | Post-processed | Description | ERP Message |
|------|---------------|-------------|-------------|
| `CST.STK` | Yes | Stock status changed (quality lock/unlock) | STC |
**Key data fields:**
- LocationCode, ContainerCode, Quantity, StockLogisticAttributes
- PreviousUserDefinedStatusCode, PreviousReceptionDefaultStatusCode
---
### Receipt Order Transactions (INO.*)
| Code | Post-processed | Description | ERP Message |
|------|---------------|-------------|-------------|
| `INO.CLS` | Yes | Receipt order manually or auto-closed | ROF |
| `INO.CNL` | Yes | Receipt order canceled | ROF |
| `INO.CST` | Yes | Receipt order status changed | ROC |
---
### Receipt Transactions (REC.*)
| Code | Post-processed | Description | ERP Message |
|------|---------------|-------------|-------------|
| `REC.CLS` | Yes | Receipt manually or auto-closed (with stock) | REF |
| `REC.CNL` | No | Receipt manually canceled | — |
| `REC.CST` | No | Receipt status changed (Pending → Receiving) | — |
---
### Shipping Order Transactions (OUT.*)
| Code | Post-processed | Description | ERP Message |
|------|---------------|-------------|-------------|
| `OUT.CLS` | Yes | Shipping order closed/force-closed | SOF |
| `OUT.CNL` | Yes | Shipping order canceled | SOF |
| `OUT.CST` | Yes | Shipping order status changed | SOC |
| `OUT.GRP` | No | Shipping order added to group/fusion | — |
| `OUT.UNG` | No | Shipping order removed from group/fusion | — |
---
### Route, Load Transactions (ROU.*, LOAD.*)
| Code | Post-processed | Description | ERP Message |
|------|---------------|-------------|-------------|
| `ROU.CLS` | No | Route closed | — |
| `ROU.CNL` | No | Route canceled | — |
| `ROU.CST` | No | Route status changed | — |
| `LOAD.CLS` | Yes | Load closed (manual or auto on route close) | LOF |
| `LOAD.CST` | No | Load paused or reactivated | — |
---
### Task Transactions (TSK.*)
| Code | Post-processed | Description |
|------|---------------|-------------|
| `TSK.CANCEL` | No | Task canceled from Tasks view |
| `TSK.COU` | No | Count task finished |
| `TSK.ERR.EXTRACT` | No | Shipping task execution error (auto warehouse) |
| `TSK.ERR.PUTAWAY` | No | Putaway task execution error (auto warehouse) |
| `TSK.LOC.001` | No | Putaway task confirmed |
| `TSK.REP.001` | No | Replenishment task confirmed |
| `TSK.SHIP` | No | Shipping task confirmed |
**Key data fields (automatic warehouse tasks):**
- ContainerCode, LocationCode, Depth (channel depth), X, Y (position), TaskNumber
---
### Work Order Transactions (WOR.*)
| Code | Post-processed | Description | ERP Message |
|------|---------------|-------------|-------------|
| `WOR.CLS.001` | Yes | Work order (kits/manufacturing) closed | WOF |
| `WOR.CNL.001` | Yes | Work order canceled | WOF |
| `WOR.CST.001` | No | Work order status changed | — |
---
### Kit Order Transaction (KOU.*)
| Code | Post-processed | Description |
|------|---------------|-------------|
| `KOU.CLS.001` | No | Kit assembly shipping order closed |
---
### Container Lock Transactions (LCK.*, ULK.*)
| Code | Post-processed | Description |
|------|---------------|-------------|
| `LCK.CON.001` | No | Container lock applied |
| `ULK.CON.001` | No | Container lock removed |
**Key data fields:**
- ContainerCode, LocationCode, Document1=LockTypeCode, Document2=LockEndDate
---
### Packaging Transaction (DEL.*)
| Code | Post-processed | Description |
|------|---------------|-------------|
| `DEL.PACKAGE` | Yes | Shipping and deleting of Multi-Carrier package |
---
### Desk Order Transactions (DESK.*)
| Code | Post-processed | Description |
|------|---------------|-------------|
| `DESK.CLS` | No | Desk order closed |
| `DESK.CNL` | No | Desk order canceled |
| `DESK.CST` | No | Desk order status changed |
---
### Stock Contrast Transactions (SCR.*, STOCKSYNC.*)
| Code | Post-processed | Description | ERP Message |
|------|---------------|-------------|-------------|
| `SCR.DET` | No | Stock contrast detail (intermediate) | — |
| `SCR.REQ` | Yes | Stock contrast requested | WSC |
| `STOCKSYNC.ASKED` | Yes | Full warehouse stock sync to ERP requested | WSC |
---
### ABC Analysis Transaction (SAC.*)
| Code | Post-processed | Description |
|------|---------------|-------------|
| `SAC.SEND` | No | ABC analysis communicated to ERP |
---
## Notification Events
Notification Events are operational alerts that fire when specific conditions arise. They are distinct from transactions — they do not generate ERP messages, but they can trigger SCEM subscriptions (email, SMS, web alerts).
See [Supply Chain Event Management](../modules/supply-chain-event.md) for subscription management.
### Core WMS Notification Events
| Code | Severity | Notification Group | Description |
|------|----------|--------------------|-------------|
| `EasyWMS_AisleBlockInputs` | Information | Aisles control | An aisle has been disabled for inbounds |
| `EasyWMS_AisleBlockOutputs` | Information | Aisles control | An aisle has been disabled for shipping |
| `EasyWMS_AisleLock` | Information | Aisles control | An aisle has been locked |
| `EasyWMS_ExtractionError` | Information | Aisles control, Locations management | Control system reports container extraction error |
| `EasyWMS_ContainerRejected` | Information | Containers | Container has been rejected at a station |
| `EasyWMS_EmptyPickingLocation` | Information | Replenishments | Dynamic picking locations must be emptied for order demand |
| `EasyWMS_IncompleteAccountReserveInboundOrder` | Information | Receipt, Shipping orders | Inbound account reserve incomplete (stock failure at receipt) |
| `EasyWMS_IncompleteAssignmentOutboundOrder` | Information | Shipping orders | Shipping order has a stock failure (cannot fully assign) |
| `EasyWMS_IncompleteOutboundOrderReserveInboundOrder` | Information | Receipt, Shipping orders | Inbound reserve for shipping order incomplete |
| `EasyWMS_OutboundLineModifiedWithInvalidPreparedStock` | Warning | Shipping orders | Prepared stock exceeds modified line quantity; must remove excess |
| `EasyWMS_OutboundOrderClosedWithoutAllInboundReserves` | Information | Shipping orders | Order closed with unshipped inbound reserves |
| `EasyWMS_OutboundOrderIssue` | Warning | Shipping orders | Issue created on shipping order |
| `EasyWMS_OutboundOrderWithExcess` | Information | Shipping orders | Order shipped with excess stock on a line |
| `EasyWMS_PutawayError` | Information | Locations management, Aisles control | Control system error on container deposit |
| `EasyWMS_RelocateError` | Information | Relocation error | Cannot relocate container to extract deeper one |
| `EasyWMS_StockExpired` | Warning | Stock | New expired stock detected in warehouse |
| `EasyWMS_StockForwardTraceabilityLockCompleted` | Information | Stock | Traceability lock process completed for item |
| `EasyWMS_StockForwardTraceabilityLockStarted` | Information | Stock | Traceability lock process started for item |
| `EasyWMS_StockNextToExpire` | Warning | Stock | Stock approaching expiry (below days-of-life threshold) |
| `EasyWMS_StockOfProductBelowMinimum` | Warning | Stock | Item stock quantity below configured minimum |
| `EasyWMS_StockOfProductConversionBelowMinimum` | Warning | Stock | Item presentation (UoM) stock below minimum |
| `EasyWMS_StockReserveNotAssignable` | Information | Locations management, Shipping orders | Reserved stock in non-assignable location |
| `EasyWMS_PieScalesToleranceExeededForContainer` | Information | Containers | Container weight exceeds PIE scale tolerance |
| `EasyWMS_InboundOrderReceived` | Information | Receipt | Receipt order fully received |
| `EasyWMS_OutboundOrderShipped` | Information | Shipping orders | Shipping order fully shipped |
| `EasyWMS_OutboundOrderPrepackagingCalculationFailed` | Warning | Shipping orders | Cannot calculate prepackaging for order |
| `EasyWMS_MixingOfItemsNotAllowed` | Warning | Locations management, Stock | Items with mix restrictions have been mixed |
### Module Notification Events
Additional notification events are defined by optional modules:
| Module | Event Code | Description |
|--------|-----------|-------------|
| AGV | (module-specific) | AGV communication errors, task failures |
| Pallet Shuttle | (module-specific) | Battery warnings, PS faults |
| SCEM | `Notification_GNAImportError` | SCEM notification import failure |
| Slotting | (module-specific) | New slotting recommendations available |
| Billing | (module-specific) | Billing validation events |
| DOM | (module-specific) | Orchestration failures, stock shortfalls |
### Subscription Scope
| Who Can Subscribe | Events Available |
|------------------|-----------------|
| SuperAdmin | All events in all warehouses |
| Administrator | All events in assigned warehouses |
| Manager | All events in assigned warehouses |
| 3PL Client | Events scoped to their owner only |
## Common Errors
| Symptom | Cause | Solution |
|---------|-------|---------|
| ERP not receiving SOF after order close | Post-processor not running or stuck | Restart integration pool; check post-processing queue |
| Duplicate STV messages | STK.ADJ fired multiple times | Check for duplicate adjustment operations; review concurrent requests |
| Notification event not firing | SCEM subscription not configured | Set up subscription via Supply Chain Event Management admin |
| Transaction not found in audit log | Query limited to wrong site/date | Expand search filters; transactions are per-site |
| `EasyWMS_StockNextToExpire` not triggering | Days-of-life threshold not configured on item logistic profile | Set `DaysToAlert` on item's logistic profile |
## Related
- [ERP Interface](erp-interface.md) — ERP messages triggered by post-processed transactions
- [Stock](stock.md) — STK.ADJ, STK.MOVE, STK.PICKING
- [Container](container.md) — CON.* transactions
- [Inbound Order](order-inbound.md) — INO.CST, INO.CLS → ROC, ROF
- [Outbound Order](order-outbound.md) — OUT.CST, OUT.CLS → SOC, SOF
- [Count](count.md) — COU.END → COF
- [Quality Control](quality-control.md) — CST.STK → STC
- [Application Dictionary](../architecture/application-dictionary.md) — Commands and Events that generate transactions
- [Security](../architecture/security.md) — Transactions as audit trail
- [Supply Chain Event Management](../modules/supply-chain-event.md) — Notification event subscriptions