Files
mcp-wms-wiki/wiki/limagrain/02-stockage/defragmentation.md
T
arthur 7496aafe64 lint(limagrain): corrections completes Phase 1+2
- Bloquants: mermaid 03-picking/_index reconstitue (archive 11-05), 13 liens vers pages squelette retires, 2 liens recibles (anoxie, application-dictionary)
- Conventions: 910 em dashes -> tirets simples, 145 checklists -> puces question, 13 questions resolues barrees
- Liens: 9 ancres reparees (slugs GitHub)
- Delta: 12 standard_ref remappes, blocs Standard EasyWMS + sections References ajoutes, front matter complete
- Glossaire: 15 termes standard deplaces en section rappel avec renvoi
- Rapport: limagrain/_lint_report.md (Phase 1 + Phase 2 + re-scan final)
- Inclut les pages des sessions precedentes non commitees + CLAUDE.md et consume.log en l'etat
2026-07-20 12:56:42 +02:00

14 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
stockage
défragmentation
expédition
zone-client
planning
tournée
STOP
custom
draft concepts/defragmentation.md
LIM-85
LIM-87
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
2026-07-17 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 :

  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) :

  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

[CONFIG] Stratégies de défragmentation client par tournée (LIM-85)

Statut (LIM-85) : en cours de test client (pré-production). Stratégies importées sur Git le 23/04/2026 (suite à l'atelier du 2 avril). Ticket de suivi - peu de contenu technique, il sert à tracer la configuration.

Ce ticket couvre la configuration des stratégies de défragmentation du stock client par tournée : définition des stratégies (mode Shipping, type d'ordre Tournée) et de la zone cible ASRS (zone client TK02-04, rangées 60-69). Ces stratégies sont le socle sur lequel s'appuie le custom d'éligibilité par tournée ci-dessous (LIM-87).

La logique custom (filtre « toutes les palettes du RUT prêtes », ordonnancement inverse des STOP, quai non assigné) relève de LIM-87.

[CUSTOM] Défrag client par tournée - Quai non assigné (LIM-87)

Statut (LIM-87) : en cours de test client (pré-production). Revue de code validée le 28/04/2026 (après un NOK le 24/04 : bug de nommage de paramètre c réutilisé entre le Any et le Where de la query, corrigé le 27/04).

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

La sélection des candidats passe par la query standard OutboundDefragContainers_PendingByWarehouseExcludedIds, modifiée en custom : elle ne retient un conteneur que si sa tournée (ou son OS) n'a plus de picking en cours. Elle exclut donc les conteneurs de picking restants et les conteneurs pas encore rangés dans l'ASRS (encore en mouvement, LocationType != Aps). S'il en existe au moins un, aucun conteneur de cet ordre n'est retenu pour la défrag.

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.

Résolu (LIM-87, 23/04/2026) : MAX_DEFRAG_ATTEMPT ne concerne que la défrag par rotation, pas la défrag d'expédition/client. Le custom de défrag client par tournée n'est donc pas plafonné par ce compteur.

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 Implémentation : commande incomplète → pas de défrag (proche option A). Arbitrage client à confirmer (option A vs B)
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) Implémentation actuelle : commande incomplète → pas de défrag (proche option A), à confirmer client
  • MAX_DEFRAG_ATTEMPT : scope défrag client seul ou aussi défrag par rotation ? → Résolu (LIM-87) : uniquement la défrag par rotation, pas la défrag d'expédition

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)
2026-07-17 Arthur Relecture LIM-85 (lecture directe, 1 commentaire) : ajout section « [CONFIG] Stratégies de défragmentation (LIM-85) » distinguant la config des stratégies (LIM-85, préprod, import Git 23/04) du custom d'éligibilité par tournée (LIM-87) ; statut + Références
2026-07-17 Arthur Relecture revue de code LIM-87 (préprod, validée 28/04) : ajout statut + query OutboundDefragContainers_PendingByWarehouseExcludedIds (filtre custom picking restant + conteneurs pas en Aps ; bug nommage paramètre corrigé 27/04) ; résolution MAX_DEFRAG_ATTEMPT (uniquement défrag rotation, pas expédition) ; CT-13 précisé (commande incomplète → pas de défrag, proche option A)

Références

Source Type Date
FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5 Analyse fonctionnelle 28/11/2025
LIM-85 Ticket Jira (config stratégies défrag, préprod, import Git 23/04) 2026
LIM-87 Ticket Jira (défrag client quai non assigné, 5 commentaires, préprod) 2026-04