--- 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 shipping (mode Shipping, type d'ordre Tournée) avec filtre custom ## Configuration du planning 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 Pour que EasyWMS puisse défragmenter les conteneurs vers la zone client, il doit exister au moins une **stratégie de défragmentation shipping** configurée en mode Shipping et type d'ordre Tournée. ## 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**, c'est-à-dire : - Les palettes complètes (PC) sont dans l'ASRS - Les palettes ayant nécessité un picking sont revenues dans l'ASRS après prélèvement (palettes filles PF retournées) - **Aucun quai n'est encore associé à la tournée** (sinon le flux shipping standard avec ordonnancement par STOP prend le relais — voir [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) : c'est du « tout-ou-rien ». ### Mécanisme Le custom utilise le **job de défragmentation client standard** avec une stratégie en mode Shipping et type d'ordre Tournée. Un **filtre custom au niveau de la sélection des candidats** 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é ``` POUR CHAQUE RUT candidat à la défrag shipping (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 tâches de défrag sont générées avec un tri par **numéro de STOP** inversé : les palettes du STOP max entrent dans le canal en premier, celles du STOP 1 en dernier. Ainsi, à la sortie du canal, l'ordre est respecté (STOP 1 sort en premier). La décision prise est de ranger **une tournée par canal** (ou plusieurs canaux si nécessaire) et non un STOP par canal. ### Paramétrage - **MAX_DEFRAG_ATTEMPT** : nombre max de tentatives par support pour trouver un emplacement de destination. Le compteur ne s'incrémente que si le WMS a cherché un emplacement et n'en a pas trouvé. Si le filtre custom exclut la tournée avant la recherche de destination, le compteur reste à 0. > ⚠️ Point ouvert : vérifier si MAX_DEFRAG_ATTEMPT impacte uniquement > la défrag par rotation ou aussi la défrag client. ### Cas de test #### Cas nominaux | CT | Préconditions | Résultat attendu | |----|--------------|------------------| | CT-01 | RUT mono-OS, 3 PC dans l'ASRS, aucun quai | Éligible. 3 tâches défrag, tri par séquence STOP | | CT-02 | RUT mono-OS, 2 PP pickées → 2 PF revenues ASRS, aucun quai | Éligible. 2 tâches défrag pour les PF | | CT-03 | RUT mono-OS mixte : 2 PC + 1 PF revenue, aucun quai | Éligible. 3 tâches défrag | | CT-04 | RUT multi-OS (STOP 1, 2, 3), 2 PC chacun, aucun quai | Éligible. 6 tâches, STOP 3 entre en premier dans le canal | | CT-05 | RUT multi-OS mixte, tous prêts, aucun quai | Éligible en un seul passage | #### Cas limites | CT | Préconditions | Résultat attendu | |----|--------------|------------------| | CT-06 | RUT 2 OS : SOR1 prêt, SOR2 a 1 PF non revenue | **NON éligible** — un OS bloque tout le RUT | | CT-07 | RUT multi-OS, 1 PF en transit AGV vers ASRS | **NON éligible** tant que PF pas physiquement stockée dans un emplacement ASRS | | CT-08 | RUT prêt mais quai déjà assigné | **NON éligible** pour le custom défrag. Flux shipping standard prend le relais | | CT-09 | RUT 1 SOR, 3 lignes picking : 2 PF revenues, 1 PP au PK | **NON éligible** — on attend la totalité | #### Cas dégradés | CT | Préconditions | Résultat attendu | |----|--------------|------------------| | CT-11 | AGV HS pendant retour PF → ASRS | **NON éligible** tant que PF pas dans l'ASRS. Redevient éligible après remise en route | | CT-12 | PP en litige, stock réassigné sur PP' | Éligible quand toutes les palettes (y compris réassignations) sont dans l'ASRS | | CT-13 | Rupture de stock sur un OS de la tournée | **À trancher** — voir point ouvert ci-dessous | | CT-14 | Bouton « Problème » au picking, OnStockAdjust recalcule | Si stock suffisant : PF revient, RUT éligible. Si réassignation : attente nouvelle PF' | | CT-15 | RUT libéré, aucune tâche picking jamais générée | **À trancher** — non éligible par défaut | | CT-16 | Nouveau SOR ajouté à un RUT déjà éligible | **Redevient NON éligible** jusqu'à ce que le nouveau SOR soit terminé | ## Pause et reprise Le processus peut être mis en pause et repris ultérieurement en cas de reprise d'activité (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. ⚠️ Le filtre custom n'incrémente pas MAX_DEFRAG_ATTEMPT quand il exclut un RUT — le compteur ne démarre que lors d'une recherche effective de destination. ## Questions ouvertes - [ ] Comportement en cas de **rupture de stock** sur un OS de la tournée (CT-13) : option A (RUT reste non éligible, attend un nouveau SOR sans les lignes concernées) ou option B (défrag lancée sur les palettes disponibles) ? (@Justine — à vérifier avec client) → voir [Questions ouvertes](../08-transverse/questions-ouvertes.md) - [ ] **MAX_DEFRAG_ATTEMPT** : impacte-t-il uniquement la défrag par rotation ou aussi la défrag client ? (@Nicolas) → voir [Questions ouvertes](../08-transverse/questions-ouvertes.md) ## Historique des modifications | Date | Auteur | Modification | |------|--------|--------------| | 2026-05-05 | Arthur | Création initiale depuis AF V1.5 | | 2026-05-12 | Arthur | Ajout custom défrag client par tournée (LIM-85/LIM-87) : mécanisme, éligibilité, cas de test, points ouverts | ## 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 | 2026 | | [LIM-87](https://easywmsfrance.atlassian.net/browse/LIM-87) | Ticket Jira | 2026 |