Files
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

17 KiB
Raw Permalink Blame History

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
Process de picking au poste de travail (PK)
picking
PK
opérateur
étiquetage
filmage
picking-négatif
MII
custom
draft concepts/picking.md
LIM-91
LIM-80
LIM-84
LIM-82
LIM-75
LIM-66
LIM-76
LIM-68
LIM-67
LIM-116
Jira LIM-91 (lecture directe, en revue de code)
Jira LIM-116 (lecture directe, revue de code)
2026-07-20 Arthur

Process de picking au poste de travail (PK)

Résumé : workflow opérateur de picking au poste de travail (PK). L'opérateur prélève les sacs d'une palette source vers une palette fille (client), gère l'étiquetage (RFID + intercalaires MII), le filmage et l'évacuation. Dernière étape de la chaîne picking.

Standard EasyWMS : → voir Picking Le WF standard WorkStation_Picking_Default sert de socle ; toute la logique Limagrain est construite en custom par-dessus.

Statut (LIM-91) : En revue de code (assignée Maxime Halgand). Implémentation livrée le 16/07, revue de code du 17/07 avec plusieurs corrections en attente (voir Points d'attention). Le contenu ci-dessous reflète l'implémentation en cours, à reconfirmer à la validation.

Positionnement dans la chaîne picking

Ce ticket est l'étape finale de la chaîne :

  • LIM-80 assignation OS → PK (génère les tâches)
  • LIM-84 séquençage TK → PS (écrit Line.CstAtt)
  • LIM-82 placement PS → PK (choix de table, buffers)
  • LIM-91 (cette page) : picking effectif au PK → étiquetage → filmage → évacuation

Le périmètre commence à la détection de la palette source sur une table du PK et se termine à l'évacuation de la palette fille.

Hors périmètre (couvert ailleurs) : tri/séquençage (LIM-84), placement et ping-pong (LIM-82), assignation PK (LIM-80), conditions de déclenchement du picking négatif (LIM-75).

Architecture du poste

Le picking se fait toujours sur un seul poste = 3 tables (TP) ; jamais sur les 6 TP d'un îlot en même temps. Contrainte d'adjacence : TABLE_GAUCHE ←→ TABLE_CENTRE ←→ TABLE_DROITE (gauche et droite non adjacentes). Détail dans Placement PS → PK.

  • Une palette ne se déplace jamais d'une table à une autre (ni opérateur, ni AGV) : elle arrive sur une table et n'en repart que pour évacuation.
  • Les big-bags ne transitent jamais par les PK : expédiés en palettes complètes via le flux shipping direct. Seuls les sacs sont prélevés.
  • Équipement par poste : 1 poste léger EasyWMS sur 2 écrans, 1 imprimante Zebra (HU RFID), 1 imprimante A4, 1 douchette multi-format.

Le process démarre en mode Tâches automatiques sur PC (même mode que la réception).

Spécifications fonctionnelles

Picking direct

Cas standard : l'opérateur prélève les sacs de la palette source (déjà sur une table adjacente à la palette fille) et les dépose sur la palette fille, confirme, puis la source est évacuée (retour ASRS si stock restant) ou mise en attente si d'autres tâches l'utilisent. Le ping-pong gauche/droite est géré par LIM-82.

Palette multi-commandes : si la source a encore des tâches pour d'autres OS, elle est marquée MULTI_COMMANDE et envoyée vers un buffer ES (LIM-82).

Picking négatif

Optimisation physique : au lieu de déplacer les N sacs à expédier, l'opérateur déplace les sacs qui restent (moins nombreux) vers une autre palette. Toujours sur la table du centre, une seule palette en picking négatif à la fois. Un nouveau SSCC est généré pour la palette d'excédent (retour ASRS) et une étiquette RFID lui est imprimée.

Les conditions de déclenchement sont évaluées en amont (LIM-75 / LIM-84), pas dans ce workflow : QttyNegPick.PickingPercent (défaut 50), QttyNegPick.MinCompletePercent (défaut 55) et poids unitaire du sac ≥ 7 kg. Le dispatcher standard route selon le TaskType déjà déterminé (pas de custom ici). La fusion standard neg+ord sur la même ligne de commande est déjà gérée par EasyWMS.

Verrou HORS TOLERANCE et recomptage

Si une palette source porte le verrou « HORS TOLERANCE » (posé au PIE, LIM-66), un recomptage obligatoire est déclenché avant le picking :

  • Stock suffisant après inventaire → assignation maintenue, picking continue, verrou retiré sur la palette comptée.
  • Stock insuffisant → réassignation sur une autre palette + retrait du verrou.

Palette MULTI_COMMANDE revenant pour un autre OS : pas besoin de recompter (le premier recomptage fait foi).

Étiquetage au picking

Dépend de la classe de commande, détectée via le RUT (OutboundType = 0, AccountCode = MII, OutboundClassCode = MII).

  • MII / multi-lots : 1 étiquette HU RFID (palette mère physique, à chaque nouvelle palette) + 1 étiquette HU sans RFID (intercalaire / palette fille, à chaque nouvelle ligne de stock flaggée). Pas de HU imbriquée : le SSCC virtuel de la palette fille est porté par le CstAtt2 de la ligne de stock (ressource SSCC MII [CST 2]).
  • Non-MII (ou MII mono-lot) : une seule étiquette HU RFID, pas d'intercalaire.

Les rapports d'étiquette réutilisent ceux de LIM-68 (mono/multiref RFID, monoref sans RFID pour l'intercalaire).

Flag CstAtt14 Container (true après étiquetage au PK) consommé en aval par l'étiqueteuse automatique au poste de sortie TK : true → n'imprime pas ; false → imprime puis passe à true ; error → échec impression. Voir AD Customs.

Messagerie carton (phase 1) : aucun traitement spécifique. Les supports suivent le flux client déjà en place et retournent à l'ASRS (pas d'emplacement au sol, pas de SSCC colis, pas de poumon transporteur).

Filmage avant évacuation

Avant chaque évacuation de palette fille, l'opérateur choisit le programme de filmage via un prompt. Valeur stockée dans le CstAtt05 Container et transmise en custom data à Galileo (TMS), qui arrête les rouleaux et lance le programme. Choix obligatoire (« 0 - pas de filmage » possible), toujours proposé à l'opérateur (pas de pré-sélection par espèce/contenant).

Programmes : 0 (pas de filmage), A-H selon espèce (Tournesol / Maïs & Blé) × contenant (Sacs / Big Bag) × mode (Complet / Réduit). Détail dans Stations picking.

Évacuation et retour ASRS

  • Palette fille : tâche AGV PK → Entrée TK, replacement direct en zone client / défragmentation de l'ASRS (pas de stockage temporaire). Le passage en « conteneur client » est remonté à SAP via le LOC (ACTION=P, delta 5 min, LIM-76).
  • Palette source : retour ASRS si stock restant ; si vidée, remise manuelle sur la pile de palettes vides (pas de tâche AGV).
  • Les transferts inter-HU au picking génèrent des lignes ACTION=T dans le LOC.

L'opérateur ne déplace jamais de sacs d'une TP à une autre (sacs de 25 à 50 kg). Garanti par le placement LIM-82.

Mouvements manuels du poste (appeler / renvoyer) - LIM-116

Les actions standard « Appeler » (faire venir un conteneur au poste) et « Renvoyer conteneur » sont customisées au PK pour tenir compte des AGV et du besoin de filmage des palettes (LIM-116, LOT 3).

  • Renvoi manuel - bouton « Stocker support » : avant le calcul de la destination, l'opérateur choisit le programme de filmage (même sélection que LIM-67, WF CST_Workstation_Wrapping_UI). WF modifié : Return_ContainerFromPKStation_UI.
  • Renvoi automatique (plus de tâches) : dans le process tâche automatique du poste, quand le conteneur est renvoyé parce qu'il n'a plus de tâches, la sélection du programme de filmage est demandée de la même manière. WF modifié : Task_AutomaticPicking_UI.
  • Destination du retour (PIE de filmage) : le retour d'une palette depuis le PK passe par le custom de sélection du PIE (PIE de ré-insertion PIE_ENTRY_PK, défaut PIE02, pour que la palette soit filmée). Une valeur a été ajoutée au ProcessContext de Container_MoveToStationTypeCodeListOrReject (et de Container_CloseClientContainerOnMP_PR) pour piloter ce choix - même WF de destination que le rejet PIE.
  • Capacité des buffers PK → PK : la génération de mouvement depuis le picking (Task_GenerateMovement_PR_V2) gère la capacité des buffers quand une palette va d'un poste de picking à un autre (cf. buffers ES, Placement PS → PK).

Cas 100 % : tâche de shipping, pas de picking

Quand la quantité assignée sur une palette source correspond à 100 % de son stock, on génère une tâche de shipping (pas de picking) : inutile de déplacer tous les sacs pour rebaptiser la palette (décision Vincent Charvet, 02/07). Solution testée : activer « Expédier uniquement conteneur complet » ; en dessous de la valeur « palette pleine » de la conversion de support, le WMS tente le picking négatif si les critères sont réunis, sinon la palette est reprise par le calcul global d'optimisation du volume.

Modes opératoires

Fonctionne en Full AGV, Mixte (AGV + caristes) et Full TRF (4 caristes, mode dégradé, finalisation manuelle du module AGV). Le workflow opérateur au PK est identique quel que soit le mode ; seul le transport physique change.

Implémentation (revue de code en cours)

Custom construit au-dessus du framework standard WorkStation_Picking_DefaultTask_Automatic_PickingProcessType_UIExpedition_Picking_UI_V1.

Workflows

Workflow Modification
Task_AutomaticPicking_SelectTask_PR Si verrou « HORS TOLERANCE » → appelle CST_Count_Picking_UI (inventaire), puis relit les données du conteneur pour décider si la tâche de picking reste possible
CST_Count_Picking_UI Compte chaque ligne de stock, affiche les infos utiles au client, message de confirmation avant ajustement ; corrige le process de retour
Task_AutomaticPicking_UI Appelle CST_Container_Picking_Options (bouton « Retour » si stock, « Retirer » si vide)
Expedition_Picking_GetInitialParameters_PR Ajout de OutboundClassCode à la query
Expedition_Picking_ExecutePicking_UI Commandes MII : pose un code conteneur virtuel sur chaque ligne de stock, sauvé dans CstAtt2 de stock, imprime l'étiquette correspondante
Expedition_Picking_Finish_UI Appelle le WF de filmage (wrapping) à la fermeture du conteneur client
Expedition_Picking_RequestProduct_UI_V1 Dialog CST_Picking_AutoReadQuantity_Prompt_V1 + paramètre poids produit
Expedition_Picking_AutoreadQuantity_UI_V2 Dialog CST_Picking_ManualReadQuantity_Prompt_V2 + paramètre poids produit
Container_MoveContainerListToLostAndFound Si conteneur vide → suppression au lieu d'envoi en Lost & Found
PickingStation_RemoveOrReturnContainer_UI Appelle CST_Container_Picking_Options (option « Retirer » seule, conteneurs vides)
PrintLabels_PrintSSCCList_PR Appelle le WF custom CST_PrintRFIDLabel
PrintLabels_AutoPrintOnCloseClientContainer_PR Récupère l'imprimante et appelle CST_PrintRFIDLabel

Dialogs

Dialog Rôle
CST_Count_Picking_GetQuantity Demande à l'opérateur de compter le stock de la palette
CST_Container_Picking_Options Clone de Container_Picking_Options + paramètre bouton retour
CST_Picking_ManualReadQuantity_Prompt_V2 Clone + poids produit mesuré
CST_Picking_AutoReadQuantity_Prompt_V1 Clone + poids produit mesuré

Vues et ressources

  • Vue StockVList : ajout de CstAtt2 (SSCC MII).
  • Ressources : CST_Stock_CustomAttribute2 (« SSCC MII [CST 2] »), CST_MeasuredProductWeight_Prompt, CST_Alias_Prompt (« Code lot officiel »), Product_Prompt (« Code lot SAP »), Shared_Alias, Source_Prompt (« Description courte SAP »), CST_Container_RemoveQuestion_1, CST_Container_StoreQuestion_1.

CstAtt impliqués

CstAtt Entité Donnée
CstAtt05 Container Programme de filmage (0, A-H), transmis à Galileo
CstAtt06 Container Code PK assigné
CstAtt14 Container Flag étiquetage PK (true/false/error) - LIM-91
CstAtt02 Stock (StockLine) SSCC virtuel palette MII - LIM-91

CstAtt14 a remplacé CstAtt13 pour l'étiquetage (CstAtt13 déjà utilisé pour le code OE) - décision 01/07. Voir AD Customs.

Communication ERP

Message Direction Déclencheur
MOV WMS → SAP Annulé (jugé inutile, décision client)
LOC (ACTION=P) WMS → SAP Passage en conteneur client (delta 5 min)
LOC (ACTION=T) WMS → SAP Transfert inter-HU au picking (delta 5 min)

Points d'attention

⚠️ Revue de code en cours (17/07) - corrections en attente :

  • PrintLabels_PrintSSCCList_PR : arrêter la boucle si un SSCC est vide (transition depuis « Set current SSCC »).
  • PrintLabels_AutoPrintOnCloseClientContainer_PR : la transaction CON.PRINT puis l'appel à CST_PrintLabel provoquent une double impression.
  • Expedition_Picking_RequestProduct_UI_V1 / AutoreadQuantity_UI_V2 : CustomAttribute1 non mappé, poids produit non affiché.
  • En picking négatif, les écrans sont différents (pas de poids produit) - à harmoniser.

⚠️ Demande d'optimisation (Justine, 16/07) à intégrer :

  • Remplacer l'écran « Stocker support » de la palette mère par un écran de filmage, et distinguer clairement (texte + couleur) l'écran de filmage palette mère vs palette client.
  • La palette client doit passer par PIE02 et non PIE01 (pour pouvoir être filmée).

→ Le filmage sur « Stocker support » et le passage par le PIE de retour (PIE_ENTRY_PK, PIE02) sont livrés dans LIM-116 (voir Mouvements manuels du poste). Reste à confirmer la distinction visuelle (texte + couleur) mère vs client.

⚠️ Correction temporaire (17/07, LIM-116) : un fix a été posé sur le mouvement MP → PE ; il sera retiré une fois la gestion complète des mouvements MP → PK en place.

⚠️ L'impression de l'étiquette standard à la fermeture du conteneur client a été retirée (elle s'ajoutait à tort à l'étiquette custom).

Questions ouvertes

  • Messagerie - choix du poumon : afficher uniquement les poumons compatibles avec le transporteur, ou tous ? Ou retour ASRS pour le flux classique ? (@Justine)
  • Recomptage HORS TOLERANCE : dialog retenu = CST_Count_Picking_GetQuantity (custom) ; confirmer l'ergonomie finale avec le client (@Justine)
  • Étiquetage intercalaire (HU fille sans RFID, MII/multi-lots) : format et rapport Zebra à créer (tâche à écrire par Arthur avec modèle rapport)

Historique des modifications

Date Auteur Modification
2026-07-17 Arthur Création depuis LIM-91 (lecture directe, en revue de code) : workflow opérateur PK, picking direct/négatif, HORS TOLERANCE, étiquetage MII (Stock CstAtt2 SSCC + CstAtt14), filmage CstAtt05, évacuation, cas 100 % → shipping, implémentation (WF/dialogs/vues/ressources), corrections revue de code 17/07 + optim Justine
2026-07-20 Arthur Ajout LIM-116 (LOT 3, lecture directe + revue de code) : nouvelle section « Mouvements manuels du poste (appeler / renvoyer) » - filmage sur « Stocker support » (Return_ContainerFromPKStation_UI) et sur renvoi automatique sans tâches (Task_AutomaticPicking_UI), sélection PIE de retour via ProcessContext (Container_MoveToStationTypeCodeListOrReject + Container_CloseClientContainerOnMP_PR, PIE_ENTRY_PK/PIE02), capacité buffers PK → PK (Task_GenerateMovement_PR_V2) ; optim Justine 16/07 marquée livrée par LIM-116 ; caveat fix temporaire MP → PE ; jira_refs +LIM-116/LIM-67, sources, last_updated

Références

Source Type Date
LIM-91 Ticket Jira (en revue de code) 2026
Revue de code LIM-91 (M. Halgand, V. Charvet) Implémentation + revue 2026-07-16/17
LIM-80 / LIM-84 / LIM-82 Chaîne picking amont 2026
LIM-116 Ticket Jira (LOT 3, mouvements manuels station picking - filmage retour + capacité buffers, attente déploiement test) 2026-07
Revue de code LIM-116 (V. Charvet, M. Halgand) Implémentation + revue (commit LOT3 e79f385242) 2026-07-15/17
LIM-67 Ticket Jira (sélection programme filmage CST_Workstation_Wrapping_UI) 2026