Files
mcp-wms-wiki/wiki/limagrain/05-agv/job-reception-production.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

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
agv
job
reception
production
asrs
pie
draft architecture/galileo-integration.md
LIM-71
LIM-64
LIM-66
LIM-71 LOT1.2 RECEPTION PRODUCTION AGV Job de création des tâches images de quai ASRS.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 condition CstAtt12 sur 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 marquer CstAtt06 permet 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 pas CstAtt06.

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. CstAtt12 ne 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
DESTINATION_PRODUCTION Code du buffer d'entrée production - obsolète : la destination est désormais déterminée par les stratégies de rangement, plus par ce paramètre ENTREE_PRODUCTION

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_PRODUCTION est 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