màj wiki avec retour MES lot-5 AD
This commit is contained in:
@@ -0,0 +1,203 @@
|
||||
---
|
||||
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 |
|
||||
Reference in New Issue
Block a user