11 KiB
title, tags, status, standard_ref, jira_refs, confluence_refs, sources, last_updated, author
| title | tags | status | standard_ref | jira_refs | confluence_refs | sources | last_updated | author | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Défragmentation — Zone client et ordonnancement par tournée |
|
draft | concepts/defragmentation.md |
|
|
2026-05-12 | 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 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 |
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 :
- Menu « Configuration » → « Défragmentation » → « Planning de défragmentation »
- Bouton « Ajouter » → paramétrer les horaires/planning souhaités
- 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) :
- OS reçu et libéré → stock assigné
- Palettes complètes → défragmentation vers zone client
- Palettes picking → poste de travail d'abord, puis zone client
- 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)
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 | Ticket Jira (stratégies défrag) | 2026 |
| LIM-87 | Ticket Jira (défrag client quai non assigné) | 2026 |