Files
mcp-wms-wiki/wiki/concepts/defragmentation.md
T
arthur 9ce6ae37be lint(standard): corrections completes mode standard
- 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)
2026-07-20 13:01:21 +02:00

202 lines
9.2 KiB
Markdown

---
title: "Defragmentation"
type: concept
sources:
- areas/defragmentation/index.md
- areas/defragmentation/defrag_admin/index.md
- areas/defragmentation/defrag_admin/defrag_rotation.md
- areas/defragmentation/defrag_admin/defrag_shipping.md
related:
- concepts/location.md
- concepts/container.md
- concepts/stock.md
- concepts/task.md
- concepts/order-outbound.md
- concepts/putaway.md
last_compiled: "2026-04-10"
---
# Defragmentation
## Overview
**Defragmentation** in EasyWMS reorganizes containers in automatic warehouses to optimize the placement of stock, either based on ABC rotation classification or based on upcoming shipping. It is an **automatic warehouse-only** feature that generates movement tasks to be executed during **periods of inactivity**, minimizing interference with active operations.
Two types of defragmentation exist:
| Type | Purpose | Criteria |
|---|---|---|
| **Rotation defragmentation** | Move containers to their optimal ABC storage zone | Item's ABC classification vs. current storage zone |
| **Shipping defragmentation** | Move containers close to exit in preparation for dispatch | Assignment to a shipping order or route |
Both types are configured via **strategies** and can be run manually or automatically via **planners**.
---
## Rotation Optimization Strategies
Rotation strategies reposition containers to storage zones that match their ABC classification. For example, moving all A-class containers currently stored in zone B to zone A.
### Strategy Criteria (Source Selection)
A rotation strategy defines which containers are candidates to be moved:
| Criterion | Description |
|---|---|
| ABC classification | Required. Containers with this ABC class are candidates |
| Storage zone | Required. The source zone from which to extract candidates |
| Number of containers | Cap on total containers processed by the strategy |
| Number of references in container | Mono-reference only, multi-reference only, or both; for mono-reference: complete/peak/both |
| Container type | Optional filter; if not set, all container types are valid |
| Location date | Only containers placed after a specific date |
| Assigned containers | Whether containers assigned to picking or shipping are candidates |
| Source aisle | Specific automatic aisle to draw from (optional) |
| Location range | X/Y coordinate range within the source aisle |
| Location sorting | Order in which source locations are evaluated (free positions ASC/DESC, X/Y ASC/DESC) |
### Strategy Rules (Destination Selection)
For each rotation strategy, destination rules specify where to move candidate containers:
| Rule | Description |
|---|---|
| Same aisle | Move within the same aisle; skip if no valid location in aisle |
| Specific aisle | Move to a designated automatic aisle; skip if no valid location |
| Storage zones | One or more target zones (mandatory - at least one required) |
| Priority | Task priority for defragmentation tasks of this ABC+zone combination |
**Location search uses putaway strategies** in configured sequence order.
### Execution
- **Manual:** Select strategy in `Defragmentation > Rotation optimization strategies` → "Apply strategy now"
- **Automatic:** Via a defragmentation planner that fires on schedule
---
## Shipping Optimization Strategies
Shipping strategies pre-position containers assigned to upcoming orders near the warehouse exit, speeding up the shipping preparation process.
### Strategy Criteria - Shipping (Order / Container Selection)
| Criterion | Description |
|---|---|
| Number of orders | Cap on orders processed |
| Assignment type | Picking Only / Shipping Only / Picking & Shipping |
| Order type | Routes or Shipping orders |
| Shipping order type | Customer (specific account), Return (specific supplier), Transfer |
| Order status | Creating / Waiting / Released (optionally include Paused) |
| Destination | Orders must have **no destination** assigned (no packing, stage, or dock) |
| Sequence number | Use container sequence to fill channels in reverse shipping order |
| Candidate sort | Priority: auto-release date ASC, priority ASC, creation date ASC, lines ASC/DESC |
> If orders don't have all stock assigned yet, the stock assignment process runs first.
### Strategy Rules - Shipping (Destination Selection)
| Rule | Description |
|---|---|
| Same aisle | Move within the same aisle (minimum distance configurable) |
| Specific aisle | Move to a designated automatic aisle |
| Storage zone | One optional target zone (strictly enforced if set) |
| Location range | X/Y coordinate range within the aisle |
| Location sorting | X/Y coordinates ASC/DESC with sequence priority |
**APS warehouses:** EasyWMS finds the optimal channel by capacity and height to guarantee maximum channel occupancy and correct shipping sequence.
### Execution (Shipping)
- **Manual:** Select strategy in `Defragmentation > Shipping optimization strategies` → "Apply now"
- **Automatic:** Via a defragmentation planner
---
## Defragmentation Planners
Planners enable **unattended, scheduled** defragmentation. Both rotation and shipping strategies can be scheduled.
### Planner Configuration
| Field | Description |
|---|---|
| Type | Shippings / Rotation / All |
| Number of executions | Run strategies once in the window, or loop until time ends |
| Active date range | Start date (mandatory) + optional end date |
| Execution time | Start time and end time of the defragmentation window |
| Execution duration | How long (hours + minutes) the planner runs |
| Execution frequency | Days of the week (for non-daily planners) |
### Planner Actions
- **Manual trigger:** "Defragment now" button in `Defragmentation > Defragmentation planners`
- **Automatic:** Job runs at scheduled time and applies enabled strategies in sequence
- **Stop:** "Stop defragmentation" cancels all pending defragmentation tasks
---
## Operative Details
### Rotation Defragmentation Process
1. EasyWMS identifies containers meeting strategy criteria (not already defragmentation candidates, in locations with automatic unloading aisles)
2. For APS locations: skips containers with deposit/extraction errors, location locks, or container locks in lower depths
3. For rack locations: skips on matching-mask errors and locks at any depth
4. Applies putaway strategies to find valid destination location
5. Creates movement tasks with configured defragmentation priority
6. Tasks execute during inactivity periods
### Shipping Defragmentation Process
1. EasyWMS identifies shipping orders/routes meeting criteria (status: Creating/Waiting/Released, no destination assigned)
2. Applies sort criteria; ties broken by ascending creation date and code
3. Runs stock assignment for orders without full assignments
4. Identifies all assigned containers and linked customer containers
5. Sorts containers in reverse shipping sequence (for sequenced orders) to fill channels optimally
6. Applies destination rules to find valid locations
7. Creates movement tasks
---
## Configuration Parameters
| Parameter | Description | Applies to |
|---|---|---|
| `MAX_DEFRAG_TASKS` | Max simultaneous defragmentation tasks per automatic aisle | Both |
| `MAX_OPTIMIZATION_DEFRAG_CHANNEL` | Max channels being defragmented simultaneously per aisle; 0 = no limit (only MAX_DEFRAG_TASKS applies) | Both |
| `MAX_DEFRAG_ATTEMPT` | Max attempts to find a valid location for shipping defragmentation; after this, container is no longer a candidate | Shipping |
---
## Interface
| Path | Equipment |
|---|---|
| `Defragmentation > Rotation optimization strategies` | PC |
| `Defragmentation > Shipping optimization strategies` | PC |
| `Defragmentation > Defragmentation planners` | PC |
| `Warehouse > Tasks` (monitoring defrag tasks) | PC |
---
## Common Errors
| Symptom | Cause | Solution |
|---|---|---|
| No defragmentation tasks generated | No valid destination location found | Check zone configuration in strategies; verify putaway strategies are defined |
| Container skipped by rotation strategy | Container has lock preventing movement, or is in an error state (APS deposit/extraction error) | Resolve location/container locks first |
| Shipping defragmentation container never moved | `MAX_DEFRAG_ATTEMPT` reached without finding valid location | Review shipping strategy destination rules; check zone availability |
| Defragmentation runs during active operations | Planner window overlaps with peak activity | Adjust planner execution time to off-peak hours |
| Tasks not generated for APS location | Lower-depth containers block movement | Resolve APS channel issues first |
---
## Related
- [[location]] - Defragmentation moves containers between locations; rotation strategies use storage zones; only automatic aisles are valid
- [[container]] - Containers are the unit of movement; ABC classification, type, and references-per-container govern candidate selection
- [[stock]] - Stock records follow container movements; STK.MOVE and CON.MOVE transactions generated
- [[task]] - Defragmentation generates movement tasks executed during inactivity; `MAX_DEFRAG_TASKS` limits concurrency
- [[order-outbound]] - Shipping defragmentation is triggered by outbound orders; status must be Creating/Waiting/Released
- [[putaway]] - Rotation defragmentation uses putaway strategies to find destination locations