Files
2026-05-20 09:41:27 +02:00

5.6 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
picking
job
assignation
agv
workflow
draft concepts/picking.md
LIM-70
LIM-74
LIM-75
LIM-80
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
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 :

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