- 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
17 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 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Process de picking au poste de travail (PK) |
|
draft | concepts/picking.md |
|
|
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_Defaultsert 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
CstAtt2de la ligne de stock (ressourceSSCC 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=Tdans 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 auProcessContextdeContainer_MoveToStationTypeCodeListOrReject(et deContainer_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_Default
→ Task_Automatic_PickingProcessType_UI → Expedition_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 deCstAtt2(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 |
CstAtt14a remplacéCstAtt13pour l'étiquetage (CstAtt13 déjà utilisé pour le code OE) - décision 01/07. Voir AD Customs.
Communication ERP
| Message | Direction | Déclencheur |
|---|---|---|
| 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 transactionCON.PRINTpuis l'appel àCST_PrintLabelprovoquent une double impression.Expedition_Picking_RequestProduct_UI_V1/AutoreadQuantity_UI_V2:CustomAttribute1non 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 |