Files
2026-05-20 09:41:27 +02:00

231 lines
11 KiB
Markdown

---
title: "Défragmentation — Zone client et ordonnancement par tournée"
tags: [stockage, défragmentation, expédition, zone-client, planning, tournée, STOP, custom]
status: draft
standard_ref: concepts/defragmentation.md
jira_refs: [LIM-85, LIM-87]
confluence_refs: []
sources: [FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5.docx, "LIM-85 LOT2.1 Configuration stratégies defragmentation du stock client par tournée.md", "LIM-87 LOT2.1 [TOURNÉES] Défragmentation client - quai non assigné ATTENTE_CLIENT CT-13.md"]
last_updated: 2026-05-12
author: Arthur
---
# Défragmentation — Zone client et ordonnancement par tournée
> **Résumé** : processus de défragmentation pour préparer les palettes
> d'expédition vers la zone de défragmentation client dans l'ASRS.
> Inclut un **custom majeur** de défragmentation par tournée (RUT) avec
> ordonnancement par numéro de STOP, déclenché uniquement quand toutes
> les palettes sont prêtes et qu'aucun quai n'est assigné.
> **Standard EasyWMS** : → voir [Defragmentation](../../concepts/defragmentation.md)
> Ce qui suit documente les **spécificités Limagrain** par rapport au
> standard.
## Contexte projet
La défragmentation est un processus standard des entrepôts automatisés.
Chez Limagrain, elle sert à préparer les routes (expéditions) en
déplaçant les conteneurs vers la zone de défragmentation client
(TK02-04, rangées 60-69).
La défragmentation shipping standard propose trois modes d'assignation
(Picking Only, Shipping Only, Picking & Shipping) mais **aucun ne
répond au besoin Limagrain** :
| Mode standard | Comportement | Problème |
|---------------|-------------|----------|
| Shipping Only | Défrag uniquement les palettes complètes | Les palettes de picking ne sont pas repositionnées → ordonnancement STOP faux dans le canal |
| Picking & Shipping | Défrag toutes les palettes (y compris celles à picker) | Les palettes sortent pour être défragmentées alors qu'elles doivent d'abord passer au PK → casse l'ordonnancement |
| Picking Only | Non applicable au besoin | — |
**Contrainte métier** : le stock doit être rangé dans le canal
d'expédition ASRS dans l'**ordre inverse des STOP** de la tournée, de
sorte que les palettes sortent du canal dans le bon ordre lors du
chargement camion (STOP max chargé en premier → déchargé en dernier).
Deux cas se présentent selon l'assignation du quai :
| Situation | Custom | Page |
|-----------|--------|------|
| Quai **non assigné** au RUT | Défrag custom décrite ci-dessous | Cette page |
| Quai **déjà assigné** au RUT | Override du WF stacker crane | → voir [Séquençage shipping par STOP](../04-outbound/sequencage-shipping-stop.md) |
## Principe général
Les conteneurs assignés à une expédition sont relocalisés dans la zone
de défragmentation client **en avance**, généralement la nuit ou pendant
les périodes de moindre charge. Cela permet une sortie rapide le jour
de l'expédition.
## Caractéristiques
- **Priorité** : basse (s'exécute en arrière-plan)
- **Planification** : horaires configurables par Limagrain
- **Zone cible** : zone défragmentation client (TK02, 03, 04 —
rangées 60-69, profondeurs 2-10)
- **Déclencheur** : stratégie de défragmentation par rotation (standard)
+ custom défrag client par tournée (ci-dessous)
## Configuration du planning (standard)
Limagrain peut modifier les horaires de façon autonome :
1. Menu « Configuration » → « Défragmentation » → « Planning de
défragmentation »
2. Bouton « Ajouter » → paramétrer les horaires/planning souhaités
3. Activer la défragmentation via le bouton « Activer »
Prérequis : au moins une **stratégie de défragmentation par rotation**.
## Lien avec l'expédition
La défragmentation est l'étape 4 du flux d'expédition (voir
[Flux expédition](../04-outbound/flux-expedition.md)) :
1. OS reçu et libéré → stock assigné
2. Palettes complètes → défragmentation vers zone client
3. Palettes picking → poste de travail d'abord, puis zone client
4. Depuis zone client → sortie vers poumon le jour J
## [CUSTOM] Défrag client par tournée — Quai non assigné (LIM-87)
### Objectif
Déclencher la défragmentation client d'une tournée **uniquement
lorsque toutes ses palettes de tous ses OS sont prêtes à partir vers
l'image de quai** :
- Les palettes complètes sont dans l'ASRS
- Les palettes ayant nécessité un picking sont revenues dans l'ASRS
après prélèvement
- **Aucun quai n'est encore associé à la tournée** (sinon le flux
shipping standard prend le relais →
[Séquençage shipping par STOP](../04-outbound/sequencage-shipping-stop.md))
La condition « toutes les palettes terminées » s'évalue **au niveau
de la tournée** (RUT), pas de l'OS individuel.
### Mécanisme
- Utiliser le **job de défragmentation client standard** avec une
stratégie en mode Shipping et type d'ordre Tournée
- Ajouter un **filtre custom au niveau de la sélection des candidats**
qui exclut de l'éligibilité toute tournée dont au moins une palette
(d'au moins un OS) n'est pas encore prête dans l'ASRS
### Règle d'éligibilité (pseudocode)
```
POUR CHAQUE RUT candidat à la défrag shipping
(en standard, exclut les RUT avec quai assigné) :
POUR CHAQUE OS du RUT :
SI l'OS a des lignes picking non terminées
→ EXCLURE le RUT
SI au moins une palette complète assignée
n'est pas dans l'ASRS
→ EXCLURE le RUT
SI aucune exclusion → ÉLIGIBLE
SINON → reste candidat pour le prochain passage du job
```
> **Point clé** : l'éligibilité est « tout-ou-rien » au niveau
> tournée. Tant qu'un seul OS du RUT n'a pas toutes ses palettes
> prêtes, aucune défrag n'est lancée pour le RUT.
### Ordonnancement dans le canal
Les palettes du **STOP max** entrent dans le canal en premier, celles
du **STOP 1** en dernier. Ainsi les palettes sortent dans le bon ordre
lors du chargement camion (STOP 1 chargé en premier).
Le rangement se fait dans un canal (ou plusieurs canaux) par tournée
— pas un canal par STOP.
### Paramètre MAX_DEFRAG_ATTEMPT
À chaque passage du job, le WMS essaie de trouver un emplacement
valide. Si aucun n'est trouvé, le compteur de tentatives est
incrémenté. Une fois MAX_DEFRAG_ATTEMPT atteint (défaut : 5), le
support est retiré des candidats défrag.
**Important** : le compteur ne s'incrémente que si le WMS a cherché
un emplacement de destination et n'en a pas trouvé. Si le filtre
custom exclut la tournée avant même de chercher une destination,
aucune tentative n'est décomptée.
## Cas de tests (LIM-87)
Légende : PC = palette complète, PP = palette de picking (mère),
PF = palette fille (sortie du picking, retour ASRS).
### Cas nominaux
| CT | Description | Préconditions | Résultat attendu |
|----|-------------|---------------|------------------|
| 01 | RUT mono-OS, uniquement PC | 1 SOR, 3 PC dans ASRS, pas de quai | Éligible. 3 tâches défrag, séquence STOP respectée |
| 02 | RUT mono-OS, uniquement picking terminé | 1 SOR, 2 PP → 2 PF revenues ASRS, pas de quai | Éligible. 2 tâches défrag pour les PF |
| 03 | RUT mono-OS mixte (PC + picking terminé) | 1 SOR : 2 PC + 1 PF revenue ASRS, pas de quai | Éligible. 3 tâches défrag |
| 04 | RUT multi-OS, ordonnancement STOP | 3 SOR (STOP 1,2,3), 2 PC chacun, toutes ASRS | Éligible. 6 tâches, STOP 3 en premier dans le canal |
| 05 | RUT multi-OS, tous prêts simultanément | 3 SOR mixtes, toutes palettes ASRS | Éligible en un seul passage. 5 tâches, séquence STOP |
### Cas limites
| CT | Description | Préconditions | Résultat attendu |
|----|-------------|---------------|------------------|
| 06 | PP partie, PF pas encore revenue | 2 SOR, SOR1 prêt, SOR2 avec PF pas revenue | **NON éligible** (un OS bloque tout le RUT) |
| 07 | PF encore sur AGV (en mouvement) | Multi-OS, 1 PF en transit AGV | **NON éligible** tant que PF pas dans ASRS |
| 08 | Quai déjà assigné à la tournée | Toutes palettes prêtes, quai assigné | **NON éligible** pour custom défrag — flux standard prend le relais |
| 09 | Picking partiel sur un OS | 1 SOR, 3 lignes picking, 2 PF revenues, 1 PP au PK | **NON éligible** (on attend la totalité) |
### Cas dégradés
| CT | Description | Préconditions | Résultat attendu |
|----|-------------|---------------|------------------|
| 11 | AGV HS pendant retour PF | PF bloquée sur PK/buffer | **NON éligible** jusqu'à rangement ASRS |
| 12 | Support sous révision | PP → buffer litige, stock réassigné sur PP' | Éligible quand toutes les palettes (réassignations incluses) dans ASRS |
| 13 | Rupture de stock (ATTENTE CLIENT) | SOR1 prêt, SOR2 avec 1 ligne en rupture | **À trancher** : option A (RUT bloqué) ou option B (défrag partielle) |
| 14 | Modification quantité (bouton Problème) | OnStockAdjust recalcule | Si stock suffisant → PF revient, RUT éligible. Si réassignation → attendre PP'/PF' |
| 15 | RUT libéré, aucune PP partie (figé) | Pas de PK disponible | **NON éligible** (picking pas déclenché ≠ prêt). Pas de MAX_DEFRAG_ATTEMPT |
| 16 | Ajout SOR à un RUT déjà éligible | Nouveau SOR avec lignes picking non traitées | **Redevient NON éligible** jusqu'à fin du nouveau SOR |
## Pause et reprise
Le processus peut être mis en pause et repris ultérieurement (par
exemple si l'activité reprend la nuit).
## Points d'attention
⚠️ Les tâches de défragmentation ont une priorité **basse** — elles ne
perturbent pas l'activité normale mais peuvent être longues.
⚠️ MECALUX conseille une présence sur site lors de la défragmentation
en cas de défaut sur les transstockeurs (non obligatoire).
⚠️ L'avancée des tâches est consultable sur la vue des tâches.
⚠️ L'éligibilité est « tout-ou-rien » au niveau tournée. Un seul OS
non prêt bloque toute la défrag du RUT.
## Questions ouvertes
- [ ] Rupture de stock CT-13 : option A (RUT bloqué tant que rupture
non résolue) ou option B (défrag sur les palettes dispo) ? (@Justine)
- [ ] MAX_DEFRAG_ATTEMPT : scope défrag client seul ou aussi défrag par
rotation ? Impact sur la valeur à configurer (@Nicolas)
## Historique des modifications
| Date | Auteur | Modification |
|------|--------|--------------|
| 2026-05-05 | Arthur | Création initiale depuis AF V1.5 |
| 2026-05-12 | Arthur | Refonte : ajout custom défrag client par tournée (LIM-87), mécanisme filtre éligibilité, ordonnancement STOP, 16 cas de tests |
| 2026-05-13 | Arthur | Restauration contenu tronqué (caractéristiques, config, custom, cas de tests, points d'attention) |
## Références
| Source | Type | Date |
|--------|------|------|
| FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5 | Analyse fonctionnelle | 28/11/2025 |
| [LIM-85](https://easywmsfrance.atlassian.net/browse/LIM-85) | Ticket Jira (stratégies défrag) | 2026 |
| [LIM-87](https://easywmsfrance.atlassian.net/browse/LIM-87) | Ticket Jira (défrag client quai non assigné) | 2026 |