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

327 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Stock Adjustment"
type: concept
sources:
- areas/inventory_management/stock_adjustment/stock_adjustment.md
- areas/inventory_management/stock_adjustment/quantity_adjust.md
- areas/inventory_management/stock_adjustment/udm_adjust.md
- areas/inventory_management/stock_adjustment/al_adjust.md
- areas/inventory_management/stock_adjustment/reasons.md
- areas/inventory_management/stock_adjustment/stock_adjustment_RF.md
- areas/inventory_management/stock_adjustment/stock_adjustment_SmartUI.md
- areas/inventory_management/stock_adjustment/stock_adjustment_Workstation.md
- areas/inventory_management/stock_adjustment/stock_adjustment_entity.md
- areas/inventory_management/stock_adjustment/stock_adjustment_in_RFCount.md
- areas/inventory_management/stock_adjustment/stock_adjustment_in_WorkStationCount.md
- areas/inventory_management/stock_adjustment.md
- areas/inventory_management/double_validation/activate.md
- areas/inventory_management/double_validation/adjust_register.md
- areas/inventory_management/double_validation/pending_adjust_actions.md
- areas/inventory_management/double_validation.md
- sources/archives/21_Validation_ajustements_stock.md
related:
- concepts/stock.md
- concepts/count.md
- concepts/location.md
- concepts/container.md
- concepts/product-item.md
- concepts/quality-control.md
last_compiled: "2026-04-17"
---
# Stock Adjustment
## Overview
A **stock adjustment** is any manual modification to a stock record's quantity, unit of measure (UoM), or logistic attributes that corrects a discrepancy between the physical reality and the WMS records. Every adjustment requires a **reason** for traceability.
Adjustments can be made from three interfaces:
- **RF terminal (RFT)** — field operators correcting detected errors
- **SmartUI (PC web)** — manager-level adjustments from the web interface
- **Workstation / picking conveyor** — adjustments at an automatic warehouse PK station
EasyWMS always notifies the ERP of stock changes via **STV** (stock variation) messages, unless the stock originates from a still-open reception (in which case the change is reflected in the interface but no STV is sent until reception closes).
A **Double Validation** option can hold adjustments in a **Pending** state, requiring a supervisor to approve or cancel them before any transaction or ERP message is generated.
---
## Types of Adjustment
### 1. Quantity Increase (`+`)
Increases the quantity of a stock line in a container or location.
**Restrictions:**
- Not allowed on ASN (pre-notified, not yet received) containers
- Not allowed on client stock containers
- Cannot exceed the "complete quantity" defined for the presentation
**Side effects on tasks:**
- Putaway tasks for the stock → canceled (location search re-runs with new weight)
- Picking/shipping tasks not in execution → canceled, stock unassigned, line re-released
- Shipping tasks in execution → quantities adjusted in-flight
- Replenishment assignments → checked and adjusted
### 2. Quantity Decrease (``)
Decreases the quantity of a stock line in a container or location.
**Restrictions:**
- Not allowed on ASN containers
- Not allowed on client containers
- When decreasing to 0: container removed or left empty depending on location config
**Side effects on tasks and assignments:**
- Picking assignments (not in execution): canceled newest-first, lines re-released
- Shipping assignments: canceled, line re-released
- Replenishment source assignments: adjusted, tasks decremented/canceled
- Stock reserves: priority given to highest-priority orders placed earliest
**Multi-reception stock:** When adjusted stock originates from multiple receptions, the operator must select which reception the adjustment applies to.
### 3. Location / Full Adjustment (Quantity + UoM + Logistic Attributes + Status)
The most comprehensive adjustment type. Allows changing any field on a stock line:
- Quantity (up or down)
- Unit of measure
- User status (assign, change, remove)
- Logistic attributes (lot, expiry, serial, etc.)
Can also:
- **Create** new stock lines
- **Delete** existing stock lines
When deleting all stock from a container, the container is removed or left empty depending on location configuration.
Available from: RFT (`Utilities > Location adjustment`), SmartUI, Workstation.
### 4. Unit of Measure Adjustment (UoM)
Changes the unit of measure of a stock line. EasyWMS treats this as a delete + recreate.
**Side effects:**
- Shipping assignments requiring the old UoM → EasyWMS searches for substitute stock
- Client stock with new UoM incompatible with order line → stock unassigned
- Replenishment assignments requiring the old UoM → substitute stock searched
**Communications:** STV sent to ERP.
### 5. Logistic Attributes Adjustment (AL)
Changes one or more logistic attributes of a stock line (lot, expiry date, serial number, etc.).
EasyWMS deletes the old stock record and recreates it with new attributes.
**Side effects:**
- Shipping assignments requiring old attributes → substitute stock searched
- Replenishment assignments requiring old attributes → substitute stock searched
- Client stock with new attributes incompatible with order line → stock unassigned
**Communications:** STV sent to ERP.
---
## Adjustment Reasons
Every adjustment requires a **reason code** selected from the master. Reasons are configured in `Masters > Adjustment reasons`.
| Field | Description |
|---|---|
| Description | Human-readable label |
| Sequence | Priority; some processes (PTL picking) auto-select the lowest-sequence reason |
| Requires comment | Whether a free-text comment is mandatory |
| ERP code | Code used by ERP-initiated adjustments |
| Capture process | Which processes may use this reason |
**Capture processes** (only one reason allowed per order for Count and Presentation Breakage):
| Process | Description |
|---|---|
| Adjustment | Manual adjustments from any interface |
| Count | Adjustments generated by counting processes |
| Picking | Adjustments made during picking |
| Scrap | Adjustments during scrap process |
| Presentation breakage | When opening a presentation to pick a smaller UoM |
---
## Interface-Specific Details
### RF Terminal Adjustments
Available options from `RFT > Utilities`:
- **Increase item** — quantity increase
- **Decrease item** — quantity decrease
- **Location adjustment** — full adjustment (qty + UoM + AL + status)
- **Manual Movement** — move stock/container (see [manual-movements](../concepts/manual-movements.md))
RFT also supports:
- **Adjust in picking location with partitions** — reading a partition label sets both location and item
- **Adjustment during count** (in-count adjustments reported separately)
### SmartUI (Web) Adjustments
From `Warehouse > Stock` view, managers can:
- Apply logistic attribute adjustments to multiple stock lines
- Apply status changes (also covered under quality control)
- View the adjustment history
### Workstation (Picking Conveyor) Adjustments
At the PK station (`Workstations > Picking > Others > Stock Adjustment`), operators can adjust containers currently at the conveyor. Supports full adjustment (qty + UoM + status + AL) and line create/delete.
Useful for correcting discrepancies discovered during picking or consolidation.
---
## Double Validation (Pending Adjustments)
When **double validation** is enabled for an item (via item's count profile), adjustments on that item's stock are placed in **Pending** status instead of being applied immediately.
In Pending status:
- The stock change **is applied** to the warehouse inventory
- The `STK.ADJ` transaction is **not** generated
- The STV message to ERP is **not** sent
A manager must then approve or cancel via `Warehouse > Stock adjustments`:
### Validating a Pending Adjustment
- Marks the change as confirmed
- Generates `STK.ADJ` transaction
- Sends STV to ERP
- Status → **Confirmed**
### Canceling a Pending Adjustment
- **Reverses** the stock change (re-generates deleted stock or removes created stock)
- No transaction generated, no STV sent
- Status → **Canceled**
- If reversal requires moving stock to a different location → `STK.MOVE` transaction generated
> **Important:** Canceling an adjustment reverses the delta, not the exact original state. If other processes moved the stock between adjustment and cancellation, a wizard prompts for compatible stock selection.
---
## Transactions
| Transaction | Trigger |
|---|---|
| `STK.ADJ` | Stock quantity, UoM, or AL adjustment confirmed |
| `STK.MOVE` | Generated when canceling a pending adjustment that restores stock to a different location |
---
## ERP Integration
**On adjustment (immediate):**
- EasyWMS sends **STV** (stock variation) to ERP for each affected stock line
**Exception — open reception:**
- If adjusted stock belongs to a still-open reception, changes are reflected in the WMS interface but **no STV is sent** until reception closes
**Double validation:**
- STV is only sent when the pending adjustment is **validated** by a manager
---
## Business Rules
- Every adjustment (except physical count auto-adjustments) **requires a reason**.
- Adjusting stock with active tasks triggers automatic task cancellation or decrement, then re-release of affected order lines.
- Adjustment at quantity = 0 in a container: the container is **removed** or **left empty** depending on the location's "remove empty container" configuration.
- ASN containers (pre-notified, not yet received) cannot be adjusted.
- Client stock (already prepared/loaded for a shipping order) has special handling — it can be adjusted but incompatibility with the order line triggers unassignment.
- For multi-reception stock, the operator selects which specific reception's stock is being adjusted.
- Cutting stock (non-consolidating UoM) can only be adjusted in whole stretch quantities; partial cutting requires the cutting process.
---
## Configuration
| Parameter | Description |
|---|---|
| `MAX_NUM_LABELS_TO_READ` | Enable multi-GS1-128 label reading in adjustment flow (also governs receipts, counts) |
| `UNLOAD_CREATE_PRODUCT_LOCATION` | Auto-create/update PDL when adjusting in partitioned picking location |
| `REPLENISH_LEVEL_PERCENT_PRODUCT_LOCATION` | Replenishment level % for auto-created PDL |
Double validation is activated per item via its **count profile** (field: double validation flag in `inventory_management/double_validation/items/count_profile.md`).
### Count Profile — validation modes (WMS ≥ 2023-02-22)
A **Count Profile** (`Configuration → Count Profiles`) decides whether stock adjustments for an item go straight through or wait for supervisor approval.
| Mode | Effect |
|---|---|
| **Never** | No validation required — STV is sent immediately |
| **Always** | Every adjustment is held as `Pending` |
| **According to tolerance** | Held as `Pending` **only if** the adjustment exceeds the configured tolerance |
**Tolerance parameters:**
| Parameter | Description |
|---|---|
| Maximum positive percentage variance | % increase allowed without validation |
| Maximum negative percentage variance | % decrease allowed without validation |
| Maximum positive adjust | Absolute increase allowed without validation (base UoM) |
| Maximum negative adjust | Absolute decrease allowed without validation (base UoM) |
> ️ Count Profiles cannot yet be created via ITM — master data only in SmartUI.
Attach the profile to an item by editing the item and selecting its Count Profile.
### Validation in the stock-adjustments view
`Warehouse → Stock adjustments` → select a `Pending` line → **Validate** or **Cancel**.
- **Rights:** group `SuperAdmin` or `Administrateur` (Manager/Operator not allowed by default).
- **Group rights do not disable validation.** Even a SuperAdmin creating the adjustment from RFT still triggers the SmartUI validation step if the item has a Count Profile requiring it.
- Default view shows only `Pending` — enable the history filter to see validated/rejected past adjustments.
- Row colours : **green** = validated / no profile / profile "Never" / below tolerance; **red** = rejected.
**Cancel behaviour:**
- Negative variance → WMS proposes to restore the removed stock to its origin (or a chosen location)
- Positive variance → WMS asks from which location to remove the surplus
### French UI labels reminder
- **Pending** — no transaction, no ERP communication (stock change *is already applied* in the WMS, only ERP sync is held)
- **Validé** — STV sent to ERP
- **Annulé** — stock delta reverted in WMS; no transaction, no ERP message
> ⚠️ Validation only gates the **ERP communication**. The physical stock delta is already reflected in the warehouse whatever the validation outcome.
---
## Interface
| Path | Equipment |
|---|---|
| `RFT > Utilities > Increase item` | RFT |
| `RFT > Utilities > Decrease item` | RFT |
| `RFT > Utilities > Location adjustment` | RFT |
| `Workstations > Picking > Others > Stock Adjustment` | PC |
| `Warehouse > Stock` (SmartUI — logistic attributes) | PC |
| `Warehouse > Stock adjustments` (double validation review) | PC |
| `Masters > Adjustment reasons` | PC |
---
## Common Errors
| Symptom | Cause | Solution |
|---|---|---|
| No adjustment reasons visible on RFT | No adjustment reasons configured for the "Adjustment" capture process | Add reasons in `Masters > Adjustment reasons` |
| STV not sent to ERP after adjustment | Stock belongs to an open reception | Close the reception; STV will be sent at that point |
| Adjustment applies but no `STK.ADJ` transaction | Double validation active for item; adjustment is Pending | Manager must validate in `Warehouse > Stock adjustments` |
| Cannot adjust ASN container | Container is pre-notified, not yet received | Complete or cancel the reception first |
| Cannot decrease below zero | System prevents negative stock | Verify if stock is in the expected location; run a count |
| Pending adjustment cancel wizard shows no compatible stock | Stock has already been shipped or moved elsewhere | Manually create a compensating stock entry in a suitable location |
---
## Related
- [[stock]] — Adjustment modifies stock records; STV and STK.ADJ are core stock transactions
- [[count]] — Counts generate adjustments; double validation applies to count-triggered adjustments too
- [[quality-control]] — Quality locks affect picking/replenishment eligibility; separate from adjustments but share CST.STK vs STK.ADJ transactions
- [[location]] — Adjustment behavior (empty container removed vs. kept) depends on location config
- [[product-item]] — Count profile on item controls double validation activation
- [[container]] — Adjustments to container stock trigger task/assignment re-evaluation
- [[cutting-stock]] — Cutting stock adjustments follow indivisibility rules; label printing from location adjustment (source label only)
- [[labels]] — Labels can be printed for cutting stock during location adjustment process