8.0 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 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Mega Job — Assignation des tâches aux PK |
|
draft | concepts/picking.md |
|
|
2026-05-12 | 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, Stations & Routes 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
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 :
- Le WMS récupère le paramètre
MODES_PKxx(x = numéro du poste) - Les modes sont triés par priorité croissante
- Le sous-workflow du mode de priorité la plus haute est exécuté
- Si le sous-WF a assigné une tâche → passage au PK suivant
- Sinon → exécution du sous-WF du mode suivant dans l'ordre de priorité
- 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 | Réception fournisseur / intersite / retour client (depuis images de quai) | Job réception PK |
| Mini Job PS → PK | LIM-75 | (tâche à écrire) | — |
| Mini Job assignation commandes → PK | 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
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 | Ticket Jira (Mega Job) | 2026 |
| LIM-80 | Ticket Jira (assignation commandes) | 2026 |
| LIM-74 | Ticket Jira (Mini Job réception PK) | 2026 |