--- title: "Mega Job — Assignation des tâches aux PK" tags: [picking, job, assignation, agv, workflow] status: draft standard_ref: concepts/picking.md jira_refs: [LIM-70, LIM-74, LIM-75, LIM-80] confluence_refs: [] sources: ["LIM-70 LOT1.3 [AGV][JOB] MEGA JOB - assignation d'ordre par priorité de process par PK.md", "LIM-80 LOT2.1 2 Mini Job Assignation des postes PK aux commandes.md"] last_updated: 2026-05-12 author: Arthur --- # Mega Job — Assignation des tâches aux PK > **Résumé** : job unique « chef d'orchestre » qui analyse les postes de > travail éligibles et leur assigne des tâches de mouvement selon les > modes autorisés et leur priorité. Évite la concurrence entre > mini-jobs indépendants. > **Standard EasyWMS** : → voir [Picking](../../concepts/picking.md), > [Stations & Routes](../../concepts/stations.md) > Ce qui suit documente les **spécificités Limagrain** par rapport au > standard. ## Contexte projet Chez Limagrain, les postes de travail (PK) sont polyvalents : réception, picking, regroupement, échantillonnage, re certification. Plusieurs flux différents génèrent des tâches de mouvement vers les PK. Sans orchestration centralisée, ces flux se feraient concurrence. Le Mega Job est un **job unique** avec une entête qui analyse l'ensemble des supports concernés et, selon leur emplacement d'origine et leurs caractéristiques, délègue à des **sous-workflows** dédiés. ## Éligibilité d'un PK Pour qu'un poste soit éligible à une nouvelle assignation, **toutes** les conditions suivantes doivent être remplies : - **Aucun ordre de sortie** assigné au PK (écran Menu > Contrôle > Affectation des postes de prélèvements) - **Aucune tâche de mouvement** ayant pour destination ce PK - **Aucune palette** présente sur un des sous-emplacements du PK - **Le poste est ouvert** (mode actif) - **Le paramètre MODES_PKxx existe et n'est pas vide** — sinon le PK est ignoré Si un PK ne remplit pas ces conditions, le job le saute et passe au suivant. ## Logique principale ```mermaid flowchart TD A[Début du job] --> B[Lister les PK ouverts] B --> C{PK éligible ?} C -- Non --> D[PK suivant] C -- Oui --> E[Lire MODES_PKxx] E --> F{Paramètre existe et non vide ?} F -- Non --> D F -- Oui --> G[Trier les modes par priorité] G --> H[Exécuter sous-WF du mode priorité 1] H --> I{Tâche assignée ?} I -- Oui --> D I -- Non --> J[Exécuter sous-WF du mode priorité 2] J --> K{Tâche assignée ?} K -- Oui --> D K -- Non --> L[... mode suivant ...] L --> D D --> M{Autres PK ?} M -- Oui --> C M -- Non --> N[Fin du job] ``` Pour chaque PK éligible : 1. Le WMS récupère le paramètre `MODES_PKxx` (x = numéro du poste) 2. Les modes sont triés par priorité croissante 3. Le sous-workflow du mode de priorité la plus haute est exécuté 4. Si le sous-WF a assigné une tâche → passage au PK suivant 5. Sinon → exécution du sous-WF du mode suivant dans l'ordre de priorité 6. Si aucun sous-WF n'a rien assigné → le PK reste en attente ## Gestion des Big-Bags Le paramètre `PK_BIGBAG` définit quels PK autorisent la présence de big-bags (physiquement : P5 et P6 avec palan). - Les ordres contenant des supports big-bag sont **interdits** sur les PK qui ne les autorisent pas - Ces ordres sont **prioritaires** (en respectant le séquençage des process en première priorité) sur les PK qui les autorisent ## Sous-workflows Le Mega Job délègue la création effective des tâches à des sous-workflows spécialisés : | Sous-WF | Ticket | Process | Page wiki | |---------|--------|---------|-----------| | Mini Job images de quai → PK | [LIM-74](https://easywmsfrance.atlassian.net/browse/LIM-74) | Réception fournisseur / intersite / retour client (depuis images de quai) | [Job réception PK](../05-agv/job-reception-pk.md) | | Mini Job PS → PK | [LIM-75](https://easywmsfrance.atlassian.net/browse/LIM-75) | _(tâche à écrire)_ | — | | Mini Job assignation commandes → PK | [LIM-80](https://easywmsfrance.atlassian.net/browse/LIM-80) | Assignation des ordres de sortie (commandes) aux PK pour picking | Voir section ci-dessous | Chaque sous-workflow retourne une information au WF principal indiquant s'il a assigné quelque chose ou non. ## Mini Job — Assignation commandes aux PK (LIM-80) Ce sous-workflow est appelé par le Mega Job quand le mode **Picking** est actif sur un PK. Il assigne un ordre de sortie (commande) au poste. ### Éligibilité du PK pour une commande Le PK peut recevoir une commande si **toutes** les conditions sont remplies : - Le PK **autorise la préparation de commande** (mode Picking actif) - Le PK **n'a pas de commande déjà assignée** - Le PK **est vide** (aucune palette présente) - Le PK **n'a aucune tâche en direction de celui-ci** ### Choix de la commande ```mermaid flowchart TD A[PK éligible en mode Picking] --> B{Commande Messagerie\ndisponible ?} B -- Oui --> C{PK_TRANSPORTEUR_MESSAGERIE\ncontient une valeur ?} C -- Non --> D[Assigner 1ère Messagerie\net enregistrer PK dans param] C -- Oui --> E{Valeur = ce PK ?} E -- Oui --> F[Assigner prochaine Messagerie\ndu même transporteur] F --> G{Commande trouvée ?} G -- Non --> H[Vider le paramètre] E -- Non --> I[Ignorer les Messagerie\nde ce transporteur] I --> J[Chercher autre commande] B -- Non --> J H --> J J --> K[Assignation standard\npar tournée / numéro d'arrêt] ``` #### Commandes Messagerie (prioritaires) Les commandes de **classe Messagerie** sont expédiées le jour même et sont donc **prioritaires** sur les commandes standard. Une fois un PK choisi pour une commande Messagerie, **toutes les commandes Messagerie du même transporteur** doivent être assignées au même PK. Pour cela, un paramètre par transporteur est créé : `PK_TRANSPORTEUR_MESSAGERIE`. Règles : - À l'assignation d'une commande Messagerie au PK, le nom du PK est enregistré dans le paramètre - Si le paramètre contient le nom de ce PK → assigner **uniquement** des commandes Messagerie du même transporteur. Si aucune n'est trouvée → vider le paramètre - Si le paramètre contient un autre PK → ignorer toutes les commandes Messagerie de ce transporteur pour ce PK #### Commandes standard Le processus standard est utilisé pour assigner une commande à une table de préparation et un PK. Les commandes d'une même tournée sont préparées en respectant le **numéro d'arrêt** (plus petit numéro d'arrêt en premier). ## Points d'attention ⚠️ Le Mega Job est le chef d'orchestre du picking : il distribue le travail aux PK en fonction des modes configurés par PK. ⚠️ Les commandes Messagerie sont prioritaires et ont une affinité transporteur/PK via `PK_TRANSPORTEUR_MESSAGERIE`. ⚠️ L'éligibilité PK vérifie 4 conditions (mode autorisé, pas de commande, vide, pas de tâche en cours). ## Questions ouvertes - [ ] Fréquence du Mega Job — toutes les N secondes ou événementiel ? (@Nicolas) - [ ] Sous-WF regroupement et échantillonnage — quand les documenter ? (@Arthur) - [ ] Interaction PK_BIGBAG et modes de travail — un PK en mode Big-Bag peut-il aussi traiter du picking normal ? (@Nicolas) ## Historique des modifications | Date | Auteur | Modification | |------|--------|--------------| | 2026-05-12 | Arthur | Création initiale depuis LIM-70 (Mega Job) | | 2026-05-12 | Arthur | Ajout sous-WF assignation commandes (LIM-80) : Messagerie prioritaire, affinité transporteur/PK | | 2026-05-13 | Arthur | Restauration sections tronquées (Messagerie détail, commandes standard, points d'attention, questions, historique, références) | ## Références | Source | Type | Date | |--------|------|------| | [LIM-70](https://easywmsfrance.atlassian.net/browse/LIM-70) | Ticket Jira (Mega Job) | 2026 | | [LIM-80](https://easywmsfrance.atlassian.net/browse/LIM-80) | Ticket Jira (assignation commandes) | 2026 | | [LIM-74](https://easywmsfrance.atlassian.net/browse/LIM-74) | Ticket Jira (Mini Job réception PK) | 2026 |