- 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
10 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 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Job AGV - Réception production vers ASRS |
|
draft | architecture/galileo-integration.md |
|
|
2026-07-17 | Arthur |
Job AGV - Réception production vers ASRS
Résumé : job périodique (30 s) qui crée les tâches de déplacement AGV depuis les images de quai vers le PIE de l'ASRS, via les stratégies de rangement. Concerne les réceptions production (CstAtt04 = "ASN") et les piles de palettes vides (code
PAL).
Standard EasyWMS : → voir Galileo Integration, Galileo Integration Ce qui suit documente les spécificités Limagrain par rapport au standard.
Contexte projet
Statut (LIM-71) : en préprod (test client). Revues de code validées le 27/03/2026, le 28/04/2026 (ajout piles de palettes) et le 01/07/2026 (ajout job de régénération). Deux tentatives ont été annulées en cours de dev : le marquage
CstAtt06(abandonné, cf. plus bas) et la conditionCstAtt12sur les conteneurs production (non requise : pas d'étiquette).
Dans le flux de réception production, les palettes arrivent de la production (ou de l'ancien magasin) et vont directement dans l'ASRS sans passer par un poste de travail. Elles sont déchargées par un cariste sur une image de quai puis déclarées via le TRF en type "Production" (LIM-64).
Ce job crée les tâches de déplacement AGV depuis les images de quai vers le buffer d'entrée production, qui a une route virtuelle vers une table d'entrée du convoyeur.
Périmètre : uniquement les réceptions de type Production (supports avec CstAtt04 = "ASN"). Les réceptions fournisseur / intersite / retour client sont gérées par le Mega Job d'assignation PK (LIM-70).
Process complet de réception production
sequenceDiagram
participant Cariste
participant TRF as TRF (LIM-64)
participant Job as Job AGV (LIM-71)
participant AGV
participant PIE as PIE (LIM-66)
participant ASRS
Cariste->>TRF: Décharge palette sur image de quai
TRF->>TRF: Déclaration type "Production"
Note over TRF: Support fictif séq. 8000*<br/>CstAtt04 = "ASN"
Job->>Job: Détecte support éligible
Job->>Job: Crée tâche "En attente"
Note over Job: Origine = image de quai<br/>Dest = stratégie rangement
Job-->>AGV: Tâche passe "Créé" → GNA → iGo
AGV->>PIE: Transport vers entrée production
PIE->>PIE: Suppression support virtuel<br/>Création palette ASN
PIE->>ASRS: Stockage ou rejet
Configuration du job
- Type : job périodique
- Fréquence : toutes les 30 secondes
Logique d'éligibilité
Le job parcourt tous les conteneurs positionnés sur des stages d'image de
quai (LocationType.DockStage). Un conteneur est éligible si toutes
les conditions suivantes sont réunies :
| Condition | Détail |
|---|---|
| Emplacement = DockStage | Conteneur posé sur un stage d'image de quai |
Code 8000* ou PAL* |
Support fictif production (séq. 8000, LIM-64) ou pile de palettes vides (PAL) |
| CstAtt04 = "ASN" | Support de type production |
| Aucune tâche active | !c.Tasks.Any() - aucun ordre de mouvement rattaché au conteneur |
Reversal marquage CstAtt06 : la logique initiale prévoyait de marquer
CstAtt06= destination pour éviter les doublons. Décidé en interne (19/03/2026) de ne pas l'implémenter : l'absence de tâche active suffit comme anti-doublon, et ne pas marquerCstAtt06permet de regénérer une tâche de rangement au prochain cycle si la précédente a été annulée. Ce job n'utilise donc pasCstAtt06.Reversal condition CstAtt12 : une condition
CstAtt12 = true(étiquette posée) a été ajoutée puis retirée pour la production et les piles de palettes - ces conteneurs n'ont pas d'étiquette.CstAtt12ne conditionne que les réceptions fournisseur vers les PK.
Traitement d'un conteneur éligible
Pour chaque conteneur récupéré, le job effectue une recherche d'emplacement basée sur les stratégies de rangement configurées, puis génère la tâche de rangement si un emplacement est trouvé.
| Champ | Valeur |
|---|---|
| Origine | Stage de l'image de quai |
| Destination | Déterminée par la stratégie de rangement (PIE_01 / PIE_02, entrée Est ou Ouest, Est par défaut) |
| Statut initial | "En attente" |
Les stratégies sont importées et configurées via la vue standard
LocationPutawayStrategyVList, modifiée pour autoriser les stages comme
station d'origine (type Stage, ou un stage précis). Les stratégies vont des
stages vers PIE_01 / PIE_02 en « fin de séquence ».
Le passage "en attente" → "créé" est géré par le WMS standard
(Task_GenerateMovementJob_PR). Le module AGV / GNA écoute ce
changement et envoie les tâches à la flotte iGo.
Éléments AD (LIM-71)
| Élément AD | Type | Rôle |
|---|---|---|
CST_StoreProductionContainer_Job |
Workflow + Job (30 s) | Récupère les conteneurs via la query, cherche un emplacement pour chacun et génère la tâche de rangement si trouvé |
CST_AvailableProductionContainers |
Query | Récupère les conteneurs candidats : sur DockStage, CstAtt04 = "ASN", code 8000* ou PAL*, sans tâche active |
LocationPutawayStrategyVList |
Vue | Ajout des stages dans la liste des stations d'origine (sélection type Stage ou stage précis) |
Galileo_PIEEventHandler_PR |
Workflow | Ignore l'erreur de lecture d'étiquette au PIE quand il s'agit d'une pile de palettes |
Piles de palettes vides
Le job gère aussi le rangement des piles de palettes vides (conteneurs
dont le code commence par PAL). Elles suivent le même mécanisme
(query + stratégie de rangement + tâche AGV). Au PIE, l'erreur de lecture
d'étiquette est ignorée pour ces piles (Galileo_PIEEventHandler_PR).
Job de régénération des tâches réception → PK
En complément (ajouté sous LIM-71, revue de code OK 01/07/2026), un job distinct régénère les tâches manquantes pour les conteneurs de réception fournisseur qui ont un PK assigné mais aucune tâche.
| Élément AD | Type | Rôle |
|---|---|---|
CST_Reception_RegenerateTask_Job |
Workflow + Job (15 s) | Crée une tâche pour les conteneurs de réception (CstAtt08) avec un PK assigné (CstAtt06) posés sur une image de quai sans tâche. Vérifie que la station de picking est trouvée |
CST_ReceptionContainers_WithoutTasksToPK |
Query | Récupère ces conteneurs de réception sans tâche vers leur PK |
Ce job de régénération relève du flux réception fournisseur → PK (cf. Réception fournisseur, LIM-67 / LIM-74) et non de la réception production. Il confirme l'usage de
CstAtt06= code du PK assigné côté réception fournisseur.
Redirection si PIE saturé
Gérée en standard par le système de routes et distances configuré dans EasyS :
- Route principale : distance 1
- Routes secondaires : distance 2
On ferme le PIE de production → le WMS redirige automatiquement vers les autres entrées disponibles. Ce job envoie toujours vers la même destination ; c'est le WMS qui reroute si nécessaire.
⚠️ À vérifier si faisable avec plusieurs poumons, plusieurs PIE et si la config EasyS actuelle est prête pour ce mode dégradé.
Paramètres
| Paramètre | Description | Valeur par défaut |
|---|---|---|
Points d'attention
- Un support non ASN (fournisseur, intersite, retour) sur une image de quai est ignoré - il est géré par le Mega Job (LIM-70)
- Ce job n'utilise pas
CstAtt06(marquage abandonné) : l'anti-doublon repose uniquement sur l'absence de tâche active, ce qui permet la régénération après annulation - La stratégie de rangement détermine l'entrée Est/Ouest (Est par défaut) ;
le paramètre
DESTINATION_PRODUCTIONest obsolète - Les piles de palettes vides (
PAL*) sont traitées par le même job ; l'erreur de lecture d'étiquette au PIE est ignorée pour ces piles
Questions ouvertes
- ❓ Redirection multi-poumons / multi-PIE : config EasyS prête ? (@Nicolas)
CstAtt06 encore nécessaire comme marqueur ?→ Résolu (LIM-71) : marquage CstAtt06 abandonné, l'absence de tâche active suffit.
Historique des modifications
| Date | Auteur | Modification |
|---|---|---|
| 2026-05-12 | Arthur | Création initiale depuis LIM-71 |
| 2026-07-17 | Arthur | Relecture 18 commentaires : abandon marquage CstAtt06 (anti-doublon = tâche active), destination via stratégies de rangement (DESTINATION_PRODUCTION obsolète), gestion piles de palettes (PAL), reversal CstAtt12 (non requis production), éléments AD (CST_StoreProductionContainer_Job, CST_AvailableProductionContainers, LocationPutawayStrategyVList, Galileo_PIEEventHandler_PR), job régénération CST_Reception_RegenerateTask_Job, statut préprod + 3 revues de code |
Références
| Source | Type | Date |
|---|---|---|
| LIM-71 | Ticket Jira (18 commentaires) | 2026-03 → 2026-07 |
| LIM-64 | Ticket Jira (déclaration image quai) | 2026 |
| LIM-66 | Ticket Jira (passage PIE) | 2026 |