--- 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