9ce6ae37be
- 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)
202 lines
9.2 KiB
Markdown
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
|