- 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
9.4 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 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Assignation automatique de l'image de quai (OS/Tournée) |
|
review | concepts/shipping.md |
|
|
|
2026-07-17 | Arthur |
Assignation automatique de l'image de quai (OS/Tournée)
Résumé : job périodique qui assigne automatiquement une image de quai (poumon d'expédition) aux ordres de sortie (OS) et tournées (RUT) éligibles, via un « faux » stage
X_EXP. Automatise ce qui était une assignation manuelle et fournit le stage dont dépend le séquençage shipping (LIM-88).
Standard EasyWMS : → voir Shipping Ce qui suit documente les spécificités Limagrain par rapport au standard.
Contexte projet
Par défaut, l'assignation quai + image de quai pour l'expédition est manuelle (voir Quais, poumons et chargement). LIM-94 automatise l'assignation de l'image de quai aux OS et tournées.
Ce job est en amont du
séquençage shipping par STOP (LIM-88) :
le garde-fou Outbound_CreateShippingOrLoadTasksToDockOrStage_PR de
LIM-88 refuse de créer une tâche de chargement tant qu'aucun stage
(image de quai) n'est associé à l'OS. LIM-94 fournit cette association.
Stages virtuels X_EXP
Un OS ou une Route ne peut être assigné qu'à un « faux » stage nommé
X_EXP, où X = code de l'image de quai (A_EXP pour l'image de quai
A). Ce sont les seuls stages assignables à un OS/Route.
- Layout : ajout des stages
A_EXP,B_EXP, ... avec une capacité de 26 mais un seul emplacement - Pourquoi un stage virtuel à 1 emplacement ? L'assignation doit porter sur un emplacement et non une station. Sans ce stage virtuel, il faudrait choisir une position précise (1 parmi 26) de l'image de quai
- Identification de l'image de quai associée à un stage : c'est la
seule image de quai ayant une route vers ce stage (ex : la seule
route vers
A_EXPpart de l'image de quai A)
Job CST_AssignDockStage
Job CST_AssignDockStage → WF CST_Job_AssignStage, exécuté toutes
les 30 secondes.
Le job récupère les Routes et les OS (OS hors route, en excluant les OS de classe Recertification) et tente d'assigner une image de quai :
- Vérifie via
CST_GetOutboundOrderAndRoutes_ToAssignStages'il existe des ordres à assigner - Si oui, cherche les stages disponibles via
CST_DockStage_GetAvailableStageToAssign - Boucle simple : assigne les ordres un par un jusqu'à épuisement des ordres ou des stages disponibles
- La commande d'assignation diffère selon le type (Route ou OS)
Priorisation : par priorité, puis par date de libération.
Conditions d'éligibilité de l'OS / Route
- Libéré
- Toutes les palettes de picking sont revenues dans le TK (même principe que la tâche d'ordonnancement TK)
- Date actuelle à H-3 de la date d'expédition prévue
La query contrôle en pratique : OS Released, non déjà assigné à un stage, date d'expédition prévue < 3 h, picking terminé (aucun conteneur picking + tous les conteneurs client en APS). Correction revue de code (05/06) : utiliser la date d'expédition prévue (et non la date de chargement prévue) pour les OS.
Conditions d'assignabilité du stage
Un stage n'est assignable pour expédition que si le stage virtuel
X_EXP et l'image de quai physique associée sont libres.
Stage virtuel X_EXP :
- Non verrouillé
- Aucune tâche vers lui
- Aucun conteneur dessus
- Aucun autre OS, Route ou réception assigné
Image de quai physique (identifiée par la route qui va vers le stage virtuel) :
- Non verrouillée
- Aucun conteneur dessus
- Aucune tâche vers elle
Ces contrôles sont portés par la query
CST_DockStage_GetAvailableStageToAssign.
Génération des mouvements (PS → image de quai)
Le placement final vers l'image de quai est calculé au poste de sortie
(PS), pas à l'assignation du stage. Quand un conteneur arrive au PS, le
WF Container_MovedEventHandler_PS_PR :
- Récupère l'image de quai correspondant au stage assigné (la seule image de quai ayant une route vers ce stage)
- Change la destination de la tâche vers le premier emplacement libre calculé de l'image de quai : l'emplacement avec le X le plus grand n'ayant ni conteneur ni conteneur en mouvement
Ce calcul « X le plus grand d'abord » rejoint le sens de dépose décrit dans Quais, poumons et chargement (décharger en commençant par l'emplacement le plus éloigné du quai) et limite le problème de dépose AGV sur emplacements serrés.
Désassignation à l'arrêt de l'OS / Route
Quand un OS (ou une Route) ayant une image de quai associée est stoppé (repasse au statut « En attente »), l'association est supprimée.
Pourquoi ? Sans cela, l'association peut devenir caduque : ex. image B choisie, puis 2 jours plus tard, après re-libération, l'image B est entre-temps réservée par une réception, ce qui pose problème.
- WF
CST_OutboundOrderUnassignStage_PR: désassigne le stage de l'OS s'il y en a un et que l'OS n'est pas inclus dans une route - WF
CST_RouteUnassignStage_PR: désassigne le stage de la route - Souscription async
CST_OutboundOrderStopped_UnassignStagesur l'événementOutboundOrderSetStoppingOperationEvent - Souscription async
CST_RouteStopped_UnassignStagesur l'événementRouteStoppedEvent
Correction revue de code (05/06) : ces WF vérifient l'image de quai et non le quai de chargement.
Assignation manuelle (VAssist)
L'assignation manuelle reste possible : les vues
VAssistOutboundOrderAssignDock et VAssistRouteAssignDock sont
restreintes pour n'afficher que les DockStage disponibles, selon les
mêmes critères que CST_DockStage_GetAvailableStageToAssign.
[CUSTOM] Éléments techniques (revue de code)
Statut : LIM-94 « En cours de test client (préprod) ». Revue de code réalisée (Maxime Halgand, Vincent Charvet).
| Élément | Type | Rôle |
|---|---|---|
Stages A_EXP, B_EXP, ... |
Layout | Stage virtuel par image de quai (capacité 26, 1 emplacement) |
CST_DockStage_GetAvailableStageToAssign |
Query | Liste des stages virtuels assignables (contrôle virtuel + image de quai physique) |
CST_GetOutboundOrderAndRoutes_ToAssignStage |
Query | Liste unifiée (Id + Description) des OS et Routes éligibles, pour un tri indépendant du type ; exclut la classe Recertification |
CST_Job_AssignStage |
WF | Boucle d'assignation, appelée toutes les 30 s |
CST_AssignDockStage |
Job | Appelle CST_Job_AssignStage toutes les 30 s |
Container_MovedEventHandler_PS_PR |
WF | Fin d'ordre au PS : redirige la tâche vers le 1er emplacement libre (X max) de l'image de quai du stage |
CST_OutboundOrderUnassignStage_PR |
WF | Désassigne le stage d'un OS stoppé (hors route) |
CST_RouteUnassignStage_PR |
WF | Désassigne le stage d'une route stoppée |
CST_OutboundOrderStopped_UnassignStage |
Souscription | Async sur OutboundOrderSetStoppingOperationEvent |
CST_RouteStopped_UnassignStage |
Souscription | Async sur RouteStoppedEvent |
VAssistOutboundOrderAssignDock / VAssistRouteAssignDock |
Vue | Assignation manuelle restreinte aux stages disponibles |
Commits : f0536cce0c (stages virtuels + redirection PS + vues),
e3889b8003 (fix quai désassigné au passage du job + optim query),
5de1618104 (désassignation à l'arrêt OS/Route).
Points d'attention
⚠️ Le garde-fou LIM-88
(Outbound_CreateShippingOrLoadTasksToDockOrStage_PR) dépend de
l'association de stage posée ici : sans stage assigné, pas de tâche de
chargement, les palettes bloquent aux PS.
⚠️ La désassignation à l'arrêt évite les réservations caduques d'image de quai (conflit possible avec une réception qui réserverait entre-temps la même image).
Questions ouvertes
- Condition « l'image de quai n'a aucune réception assignée » : marquée TBD dans la description initiale. La query intègre bien un contrôle « aucune réception assignée » sur le stage virtuel ; confirmer le périmètre exact (@Justine) → voir Questions ouvertes
Historique des modifications
| Date | Auteur | Modification |
|---|---|---|
| 2026-07-17 | Arthur | Création depuis LIM-94 (lecture directe + revue de code) : stages virtuels X_EXP, job CST_AssignDockStage/CST_Job_AssignStage (30 s), conditions d'éligibilité OS/Route et d'assignabilité stage, redirection PS Container_MovedEventHandler_PS_PR (X max), désassignation à l'arrêt (WF + souscriptions), VAssist restreintes, éléments techniques + commits |
Références
| Source | Type | Date |
|---|---|---|
| LIM-94 | Ticket Jira (statut préprod / test client) | 2026-07-17 |
| LIM-88 | Ticket Jira (séquençage shipping, dépend du stage) | 2026 |
| Revue de code LIM-94 (M. Halgand, V. Charvet) | Commits f0536cce0c / e3889b8003 / 5de1618104 |
2026-05/06 |
| Expédition - LIMAGRAIN - DEV | Page Confluence | 2026 |