--- title: "Picking sur poste de travail — Expédition client" tags: [picking, poste, expédition, ordonnancement, MOV, PCK] status: draft standard_ref: concepts/picking.md jira_refs: [LIM-82] confluence_refs: [] sources: [FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5.docx, "Expédition - LIMAGRAIN - DEV - Confluence.md", "LIM-82 LOT2.2 [PICKING] Ordonnancement des tâches de picking PS PK.md", "REU PICKING SEQUENCAGE 11-05-2026 - Analyse comparative notes + AF + devops.md"] last_updated: 2026-05-12 author: Arthur --- # Picking sur poste de travail — Expédition client > **Résumé** : processus [CUSTOM] de picking sur poste de travail pour > les commandes client, avec ordonnancement par espèce, règles de picking > négatif et contraintes physiques. > **Standard EasyWMS** : → voir [Picking](../../concepts/picking.md) > Ce qui suit documente les **spécificités Limagrain** par rapport au standard. ## Contexte projet Le picking chez Limagrain se fait sur les postes de travail automatisés (pas de picking mobile en allée). Les palettes source et les palettes de préparation sont acheminées par AGV sur les tables de préparation (TP). > **Note** : cette page décrit le picking tel que défini dans l'AF V1.5. > Le projet a depuis évolué vers un modèle « picking combinatoire » > (CR V3.0, 4 jobs, CstAtt) qui sera documenté séparément. ## Déclenchement Le picking est déclenché pour les commandes client (RUT type « Client ») quand des palettes incomplètes sont nécessaires (la quantité demandée ne correspond pas à des palettes complètes). Prérequis : un **poste de travail assigné** (auto ou manuellement). ## [CUSTOM] Ordonnancement des palettes au poste Une fois le poste assigné, les palettes arrivent dans cet ordre : ### Tri par espèce et gerbabilité 1. **Espèce Maïs** toujours en premier (pas la variété mais l'espèce) 2. Puis espèce avec la **plus grande quantité** dans la commande 3. Si égalité → **article/lot le plus lourd** en base de palette **Mapping Espèce → stack (gerbabilité)** : le maïs = stack 0 (le plus lourd/stable, donc en base). [CUSTOM] Gestion en **async sur l'ITM** pour calculer la gerbabilité automatiquement à la création de l'article. Tri des tâches de picking dans le workflow `StackerCrane_SortTasks_PR`. ### ~~Séparation par traitement commercial~~ SUPPRIMÉ (réu. 11/05/2026) ~~Pas de mélange entre articles avec traitement et sans traitement sur une même palette fille.~~ **Décision** : `CONTROLE_TRAITEMENT_COMMERCIAL = false`. L'entrepôt Limagrain ne fait pas de bio, pas de raison de maintenir cette contrainte. Paramètre réactivable si besoin futur. > Voir [Séquençage TK → PS — Arbitrage](sequencage-tk-ps.md#arbitrage-des-contradictions-reu-11052026) > pour le détail de l'analyse comparative. ## [CUSTOM] Règle du picking négatif **Deux conditions cumulatives** (réu. 11/05/2026) : 1. La quantité à prélever dépasse le **seuil fiche article** (défaut 55%, paramétrable par article via "Complete quantity percent excess for negative picking") 2. Le **poids unitaire du sac ≥ 7 kg** (raison : instabilité palette si gros sacs ramenés sur petits sacs) Si les deux conditions sont remplies → **picking négatif** : au lieu de déplacer les sacs à expédier, déplacer les sacs qui **retourneront en stock** (moins de mouvements physiques). Si l'une des deux conditions n'est pas remplie → picking direct classique. > Le picking négatif est **prioritaire sur Maïs first** et toutes les > autres règles de tri (confirmé par Olivier, réu. 11/05/2026). > Voir [Séquençage TK → PS](sequencage-tk-ps.md#critère-1--picking-négatif-en-premier). ## [CUSTOM] Calcul équivalent palette (pro rata Bag/pal) Pour déterminer si une palette est « pleine », calcul en **pro rata Bag/pal** (réu. 11/05/2026, remplace la logique DevOps "Bag/pal max") : ``` Équivalent palette d'un sac = 1 ÷ Bag/Pal de son lot ``` Le calcul est additif et gère nativement des lots avec des Bag/pal différents sur une même palette : ``` Exemple : 15 sacs lot Bag/pal 20 + 10 sacs lot Bag/pal 75 = 15/20 + 10/75 = 0,75 + 0,133 = 88,3% → il reste ~12% de place ``` Seuil cible : **~95%** de remplissage (marge de sécurité). Poids max palette : **1 250 kg** (AF fait foi, corrige 1 200 kg du DevOps). ## [CUSTOM] Verrou « HORS TOLERANCE » — Recomptage Si la palette source porte le verrou « HORS TOLERANCE » → recomptage demandé avant le picking (inventaire). - Si stock restant suffisant après inventaire → assignation maintenue (workflow `OnStockAdjust` recalcule uniquement si nécessaire — ne casse pas la tâche en cours) - Si plus assez de stock → réassignation ailleurs + retrait verrou ## [CUSTOM] Algorithme de répartition des palettes sur les TP Logique combinatoire complète gérant tous les cas : - Picking négatif et enchaînement de pickings négatifs - Ordonnancement par espèce - Terminer une palette pleine avant d'en entamer une autre - Cadencement des buffers devant les postes de picking - Pas de mélange de traitement commercial (via famille d'article) - **Contrainte** : l'opérateur ne doit **pas déplacer de sacs d'une table à l'autre** (sacs lourds) **Table du milieu** : toujours occupée soit par une palette de picking négatif, soit par une palette vide de dépôt. Quand la palette de prélèvement est vidée, l'opérateur la remet manuellement sur une pile de palettes vides à proximité. > Prévoir un process sans picking négatif pour les cas où c'est rarement > utilisé (ou monter le seuil, ex : 70% au lieu de 50%). ## Processus de préparation ### Arrivée des palettes (toujours un poste 3 TP) - Première palette au **centre** si picking négatif proposé, sinon sur un côté - Si une palette est sur un côté et qu'on propose du picking négatif → prévenir l'opérateur de déplacer la palette au centre - La palette client revient **toujours** au centre - Pas de prépa sur 6 TP en simultané ### Picking 1. Palette source arrive sur une TP 2. Palette destination (vide ou en cours) sur une autre TP 3. Opérateur prélève les sacs (ou sacs retour si picking négatif) 4. ~~[CUSTOM] Message MOV envoyé à SAP~~ **ANNULÉ** (décision client) 5. Avant évacuation : choix filmage (CstData transmis à Galileo). Possibilité de choisir « pas de filmage ». 6. Évacuation palette → PIE → contrôle poids → stockage/expédition ## [CUSTOM] Ordonnancement des tâches PS → PK (LIM-82) Détail du cadencement des palettes depuis les postes de sortie (PS) vers les postes de picking (PK). Toutes les tâches de picking se font sur les tables élévatrices des PK. ### Règles de priorité 1. **Picking négatif toujours en premier** — une seule palette à la fois pour ce process, toujours déposée sur la **table du centre** 2. **Picking classique ensuite** — jusqu'à **2 palettes simultanées** au PK, déposées sur les **tables latérales** 3. Le WMS peut envoyer **1 palette picking négatif + 1 palette picking classique** en même temps (pour compléter la palette post-picking négatif) 4. Le nombre de palettes de prélèvement au PK ne dépasse **jamais 2** ### Picking négatif — Détail À chaque tâche de picking négatif : - Un **nouveau code SSCC** est généré pour la palette où l'excédent de stock est déposé - Une **étiquette RFID** est imprimée pour cette nouvelle palette - La palette de picking négatif va toujours au **centre** du PK ### Cadencement des buffers Les palettes non encore nécessaires au PK sont dirigées vers les **zones d'attente** (buffers ES_X) s'il y a de la place disponible. Le WMS **privilégie la sortie des palettes de picking négatif** vers les buffers. À chaque palette arrivant au PS, celui-ci vérifie s'il existe d'autres tâches du même OS avec une **séquence plus faible** : - Si oui → palette envoyée au **buffer ES_X** (attente) - Si non → palette envoyée directement au **PK** ### Cas d'exemple — 10 tâches (3 négatif, 7 classique) 1. Le WMS envoie **2 palettes** vers le PK : 1 picking négatif + 1 picking classique 2. Les **8 autres** palettes sont dirigées vers les zones d'attente (priorité aux palettes de picking négatif) 3. L'opérateur réalise le picking négatif → impression étiquette SSCC/RFID pour la nouvelle palette 4. L'opérateur réalise le picking classique → stock déposé sur la palette du milieu 5. Si la palette client n'est pas pleine → le WMS apporte une nouvelle palette de picking classique 6. L'opérateur déclare la palette client **pleine** → le WMS apporte la 2ᵉ palette de picking négatif 7. Si le picking classique précédent est **en cours** (tâche partielle) → pas de nouvelle palette classique. Sinon → 2ᵉ palette classique envoyée au PK Voir aussi [Séquençage TK → PS](sequencage-tk-ps.md) pour le mécanisme amont de tri des tâches entre les transstockeurs et les postes de sortie, et [Placement PS → PK](placement-ps-pk.md) pour l'algorithme de choix de table (ping-pong, buffers, évacuation). ## Information passage conteneur client Le passage en conteneur client est visible dans le **LOC** envoyé toutes les 5 minutes à SAP (flag « client » = true). Voir [Flux ERP outbound](../04-outbound/flux-erp-outbound.md#communication-erp--loc--détails). ## Étiquetage ### Cas standard (non MII ou MII mono lot) - 1 étiquette RFID pour la palette physique bois ### Cas MII multi lots - 1 étiquette HU RFID pour la palette physique (HU mère) - 1 étiquette HU sans RFID par ligne de stock (HU fille / intercalaire) - Impression auto à chaque nouvelle palette (RFID) et à chaque article (intercalaire) - Basé sur la **classe de commande** ## Contraintes opérateur (hors EasyWMS) Règles non gérées par le système mais à respecter : 1. Palette ne doit pas excéder **1,90 m** (sinon rejet PIE) 2. Palette ne doit pas excéder **1 250 kg** (sinon rejet PIE, AF fait foi) 3. Pas de gerbage de palette 4. Disposition d'intercalaires entre couches ## Calcul poids de référence (post-picking) Pour les palettes multi-lignes de stock : ``` Poids réf = Σ (Poids_unité_ligne_i × quantité_ligne_i) + poids_palette_bois ``` Contrôle PIE identique aux autres processus (voir [Contrôle qualité réception](../01-inbound/controle-qualite-reception.md)). ## Points d'attention ⚠️ Le picking négatif (seuil 55% ET poids ≥ 7 kg) est une règle métier custom — les deux conditions sont cumulatives (réu. 11/05/2026). ⚠️ L'ordonnancement espèce → quantité → poids est géré par EasyWMS (pas un choix opérateur). ⚠️ Le message MOV est **ANNULÉ** (décision réunion client). ⚠️ Le verrou HORS TOLERANCE déclenche un recomptage mais ne casse pas l'assignation si le stock restant est suffisant. ⚠️ L'algorithme de répartition TP est le « gros morceau » custom du picking — gestion combinatoire de tous les cas. ## Questions ouvertes - [x] ~~Programme de filmage exact~~ → 8 programmes documentés (A→H) - [ ] Gestion du picking négatif dans l'interface opérateur (@Nicolas) - [x] ~~Process sans picking négatif — seuil à 70% au lieu de 50%~~ → Tranché : seuil paramétrable par article (défaut 55%) + condition poids ≥ 7 kg (réu. 11/05/2026) - [x] ~~Traitement commercial — séparation palette~~ → Supprimé (`CONTROLE_TRAITEMENT_COMMERCIAL = false`, réu. 11/05/2026) ## Historique des modifications | Date | Auteur | Modification | |------|--------|--------------| | 2026-05-05 | Arthur | Création initiale depuis AF V1.5 | | 2026-05-05 | Arthur | Gerbabilité/stack, algo répartition TP, verrou HORS TOLERANCE, MOV annulé, arrivée palettes 3 TP, filmage CstData | | 2026-05-12 | Arthur | Ajout ordonnancement PS→PK (LIM-82) : priorité picking négatif, cadencement buffers, cas d'exemple, lien séquençage TK→PS | | 2026-05-12 | Arthur | MAJ réunion 11/05 : picking négatif 2 conditions cumulatives (55% + 7 kg), TC supprimé, pro rata Bag/pal, poids max 1 250 kg, questions fermées | ## Références | Source | Type | Date | |--------|------|------| | FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5 | Analyse fonctionnelle | 28/11/2025 | | Expédition - LIMAGRAIN - DEV - Confluence | Page ateliers DEV | 2026 | | [LIM-82](https://easywmsfrance.atlassian.net/browse/LIM-82) | Ticket Jira (ordonnancement PS→PK) | 2026 | | REU PICKING SEQUENCAGE 11-05-2026 | CR réunion + analyse comparative | 11/05/2026 |