màj wiki avec retour MES lot-5 AD
This commit is contained in:
@@ -0,0 +1,262 @@
|
||||
---
|
||||
title: "Quality Control"
|
||||
type: concept
|
||||
sources:
|
||||
- areas/inventory_management/quality_control/index.md
|
||||
- areas/inventory_management/quality_control/quality_lock_web.md
|
||||
- areas/inventory_management/quality_control/quality_lock_trf.md
|
||||
- areas/inventory_management/quality_control/quality_lock_erp.md
|
||||
- areas/inventory_management/quality_control/quality_unlock.md
|
||||
- areas/inventory_management/quality_control/quality_automatic_unlock.md
|
||||
- areas/inventory_management/quality_control/cut_stock_lock.md
|
||||
related:
|
||||
- concepts/stock.md
|
||||
- concepts/container.md
|
||||
- concepts/reception.md
|
||||
- concepts/order-outbound.md
|
||||
- concepts/product-item.md
|
||||
- concepts/stock-adjustment.md
|
||||
last_compiled: "2026-04-10"
|
||||
---
|
||||
|
||||
# Quality Control
|
||||
|
||||
## Overview
|
||||
|
||||
**Quality Control** in EasyWMS manages the usability of stock throughout its lifecycle in the warehouse. It operates via a **stock status** (also called a **stock lock**) system: each status can block specific warehouse operations on the affected stock, preventing it from being picked, moved, replenished, or shipped until the quality issue is resolved.
|
||||
|
||||
EasyWMS controls stock quality from reception through shipping. Statuses can be applied:
|
||||
- At **reception** (via reception profile, inbound order line, or operator action)
|
||||
- **In the warehouse** (web interface, RFT, or ERP message)
|
||||
- At **shipping** (to require or prefer stock in a specific status for a shipping order line)
|
||||
|
||||
> **Important:** The _Expired_ state is **not** a stock status — stock expires automatically when logistic attribute dates (expiry date, best before date, end of life) are reached.
|
||||
|
||||
---
|
||||
|
||||
## Stock Status (Quality Lock) Concept
|
||||
|
||||
Each stock status is configured to block or allow specific operations:
|
||||
|
||||
| Operation | Can be blocked |
|
||||
|---|---|
|
||||
| Putaway | Yes |
|
||||
| Move | Yes |
|
||||
| Picking | Yes |
|
||||
| Replenishment | Yes |
|
||||
| Shipping | Yes |
|
||||
| Internal use (manufacturing) | Yes |
|
||||
|
||||
A single stock record can have two simultaneous statuses:
|
||||
- **Receiving status** — set at reception time (from profile, order line, or operator)
|
||||
- **User status** — applied manually by an operator, manager, or via ERP message
|
||||
|
||||
---
|
||||
|
||||
## Types of Stock Status Application
|
||||
|
||||
### Reception Status (Inbound Lock)
|
||||
|
||||
Three mechanisms can apply a status at reception time:
|
||||
|
||||
| Mechanism | Who | Priority |
|
||||
|---|---|---|
|
||||
| Item receiving profile | System (automatic) | Base |
|
||||
| Inbound order line / receiving order line | ERP/planner | Overrides profile if different |
|
||||
| Operator at reception (RFT) | Operator | Applied as user status (in addition to receiving status) |
|
||||
|
||||
Both a receiving status and a user status can coexist on the same stock. The operator-set status is the user status.
|
||||
|
||||
At reception close, the ERP is notified of stock status via the STC message (stock status change).
|
||||
|
||||
---
|
||||
|
||||
## Locking Stock in the Warehouse
|
||||
|
||||
### Lock from Web Interface (SmartUI)
|
||||
|
||||
From `Warehouse > Stock` or `Warehouse > Received stock`:
|
||||
- Lock can apply to stock from open receptions or stock without reception origin
|
||||
- Optional: end date/time for the lock
|
||||
- Optional: comment
|
||||
|
||||
If no end date is set, the lock remains until manually removed by a user or ERP.
|
||||
|
||||
**Effects of lock on active operations:**
|
||||
- If lock **blocks replenishment**: replenishment source assignments canceled → picking tasks decremented or canceled → affected lines re-released
|
||||
- If lock **blocks picking**: replenishment source assignments canceled → picking tasks decremented or canceled → lines re-released
|
||||
|
||||
### Lock from RF Terminal (RFT)
|
||||
|
||||
Via `RFT > Quality > Lock by location / Lock by container / Lock by item`:
|
||||
|
||||
| Lock scope | Granularity |
|
||||
|---|---|
|
||||
| By location | All stock in location, or stock of specific item/logistic attribute/quantity |
|
||||
| By container | All stock in container, or specific item/attribute/quantity |
|
||||
| By item | All stock of the item in warehouse, or filtered to specific locations/attributes |
|
||||
|
||||
Optional: end date/time and comment (same as web).
|
||||
|
||||
Same side effects on tasks and assignments as web interface lock.
|
||||
|
||||
### Lock from ERP (STR Message)
|
||||
|
||||
The ERP sends an **STR** (stock status request) message to request a lock. The lock can:
|
||||
- Specify any combination of location, item, logistic attribute, container
|
||||
- Include an optional end date/time and comment
|
||||
|
||||
EasyWMS responds with **STC** messages for each locked stock line (provided reception is closed).
|
||||
|
||||
In the SmartUI, ERP-applied locks appear as a user status.
|
||||
|
||||
---
|
||||
|
||||
## Unlocking Stock
|
||||
|
||||
### Manual Unlock (Web)
|
||||
|
||||
From `Warehouse > Stock` view: select stock lines and remove status. STV-style notification via STC to ERP.
|
||||
|
||||
### Manual Unlock (RFT)
|
||||
|
||||
Via `RFT > Quality > Unlock by location / Unlock by container / Unlock by item`:
|
||||
|
||||
- Unlock all stock at a scope, or partial (specific item, attribute, quantity)
|
||||
- **Receiving status** can be unlocked (not just user status)
|
||||
- Communications: STC sent to ERP when reception is closed
|
||||
|
||||
### Unlock from ERP (STR Message)
|
||||
|
||||
The ERP sends an **STR** message to unlock specific stock. EasyWMS:
|
||||
1. Removes the user status (or receiving status) from the matching stock
|
||||
2. Sends **STC** confirmation messages to ERP (provided reception is closed)
|
||||
|
||||
The ERP can unlock both user-set locks and receiving-status locks.
|
||||
|
||||
### Automatic Unlock (Time-Based)
|
||||
|
||||
When a lock has an **end date/time**, EasyWMS automatically removes the status when the date expires.
|
||||
|
||||
The job `Delete_StockStatusJob_PR` runs every **15 minutes** and checks for expired locks.
|
||||
|
||||
> **Warning:** Locks with durations shorter than 15 minutes cannot be reliably enforced. If sub-15-minute locking is needed, the job periodicity must be changed.
|
||||
|
||||
After automatic removal, EasyWMS sends STC to ERP (provided reception is closed).
|
||||
|
||||
---
|
||||
|
||||
## Quality at Shipping
|
||||
|
||||
Shipping order lines can specify a **required** or **preferred** stock status for the assigned stock:
|
||||
|
||||
| Mode | Behavior |
|
||||
|---|---|
|
||||
| Required status | EasyWMS assigns only stock in the specified status (even if that status blocks picking/shipping) |
|
||||
| Preferred status | EasyWMS preferably assigns stock with that status; uses other status stock if insufficient |
|
||||
|
||||
---
|
||||
|
||||
## Cutting Stock Locks
|
||||
|
||||
Cutting stock (items with non-consolidating UoM conversions) has special lock behavior due to the **indivisible** nature of coil/roll stretches.
|
||||
|
||||
### Partial Lock (Problem at Beginning of Coil)
|
||||
|
||||
When only part of a coil has a quality problem:
|
||||
1. Operator identifies the problematic length and locks it
|
||||
2. System **splits the stock line into two** (locked portion + clean portion)
|
||||
3. Operator physically cuts the locked length
|
||||
4. Optionally, operator relocates the locked/cut stock to another location
|
||||
5. Picking continues from the unaffected stretch
|
||||
|
||||
### Total Lock (Entire Coil)
|
||||
|
||||
When the entire coil is defective:
|
||||
1. Operator selects the entire length and locks it
|
||||
2. Stock line remains unified (no split)
|
||||
3. When lock is removed, stock line remains unified
|
||||
|
||||
Both partial and total locks can be performed from **RFT** or **ERP** (STR message).
|
||||
|
||||
---
|
||||
|
||||
## Transactions
|
||||
|
||||
| Transaction | Trigger |
|
||||
|---|---|
|
||||
| `CST.STK` | Stock status applied or removed (when reception is closed) |
|
||||
|
||||
Note: `CST.STK` is **not** generated if the reception is still open — changes are visible in the interface but not audited until reception closes.
|
||||
|
||||
---
|
||||
|
||||
## ERP Integration
|
||||
|
||||
| Message | Direction | Purpose |
|
||||
|---|---|---|
|
||||
| STR | ERP → WMS | Request stock lock or unlock |
|
||||
| STC | WMS → ERP | Notify stock status change (per locked/unlocked stock line) |
|
||||
|
||||
STC is only sent when the **reception is closed**. For stock from open receptions, changes are visible in the WMS but no ERP notification is generated until close.
|
||||
|
||||
---
|
||||
|
||||
## Business Rules
|
||||
|
||||
- A stock can have both a **receiving status** (set at reception) and a **user status** (set manually) simultaneously.
|
||||
- When a lock is applied, EasyWMS immediately checks all active tasks and assignments using that stock and adapts them (cancels or decrements) based on the operations the lock blocks.
|
||||
- Expired stock (`_Expired_` state) is handled by the logistic attributes expiry system — not the quality lock system.
|
||||
- Only locations that allow inventory can have their stock counted. Quality locks do not change this — but locks that prevent counting block task generation.
|
||||
- The 15-minute job for automatic unlock means that very short-duration locks (< 15 min) are not reliably supported.
|
||||
|
||||
---
|
||||
|
||||
## Configuration
|
||||
|
||||
| Setting | Location | Description |
|
||||
|---|---|---|
|
||||
| Stock statuses master | System master data | Define each status name and which operations it blocks |
|
||||
| Item receiving profile | Item master → Receiving profile | Auto-set receiving status + duration at reception |
|
||||
| `Delete_StockStatusJob_PR` | `Configuration > Jobs` | Controls automatic unlock job (default: 15 min) |
|
||||
|
||||
---
|
||||
|
||||
## Interface
|
||||
|
||||
| Path | Equipment |
|
||||
|---|---|
|
||||
| `Warehouse > Stock` → lock/unlock actions | PC |
|
||||
| `Warehouse > Received stock` → lock actions | PC |
|
||||
| `RFT > Quality > Lock by location` | RFT |
|
||||
| `RFT > Quality > Lock by container` | RFT |
|
||||
| `RFT > Quality > Lock by item` | RFT |
|
||||
| `RFT > Quality > Unlock by location` | RFT |
|
||||
| `RFT > Quality > Unlock by container` | RFT |
|
||||
| `RFT > Quality > Unlock by item` | RFT |
|
||||
| `Configuration > Jobs` | PC |
|
||||
|
||||
---
|
||||
|
||||
## Common Errors
|
||||
|
||||
| Symptom | Cause | Solution |
|
||||
|---|---|---|
|
||||
| STC message not sent to ERP after lock | Reception still open | Close the reception; STC will be sent at that point |
|
||||
| Automatic unlock not happening | Job `Delete_StockStatusJob_PR` disabled or slow | Check job status in `Configuration > Jobs`; verify it runs every 15 min |
|
||||
| Picking tasks not canceled after lock | Lock does not have "blocks picking" configured | Check stock status master configuration for the applied status |
|
||||
| Cannot unlock stock from RFT | Operator lacks "Quality" menu access | Check role permissions |
|
||||
| Cutting stock split not happening after partial lock | Non-consolidating UoM not configured for the item | Verify cutting item configuration; check UoM consolidation flag |
|
||||
| STC generated without lock set | Reception was already closed at the time of the lock request | Expected behavior; open receptions suppress STC |
|
||||
|
||||
---
|
||||
|
||||
## Related
|
||||
|
||||
- [[stock]] — Quality locks are stored as stock status fields; stock must have no movement-blocking lock to be picked, replenished, or shipped
|
||||
- [[container]] — Locks can be applied at container granularity; all stock in a container can be locked in one operation
|
||||
- [[reception]] — Receiving status is applied at reception time via profile, order line, or operator; STC sent at close
|
||||
- [[order-outbound]] — Shipping order lines can specify required/preferred stock status for assignment
|
||||
- [[product-item]] — Item receiving profile defines automatic lock status and duration at inbound
|
||||
- [[stock-adjustment]] — Both quality control and stock adjustment use STC/STK.ADJ transactions; quality locks affect task/assignment eligibility
|
||||
- [[cutting-stock]] — Cutting stock has partial/total lock behavior; lock can propagate to cut portions
|
||||
Reference in New Issue
Block a user