--- title: "Flux de rejet PIE - Renvoi au poste d'origine" tags: [stockage, rejet, PIE, poste, big-bag, production, custom, agv] status: draft standard_ref: concepts/reception.md jira_refs: [LIM-114] confluence_refs: [] related: - limagrain/01-inbound/controle-qualite-reception.md - limagrain/07-admin/ad-customs.md - limagrain/07-admin/parametres-projet.md sources: ["Jira LIM-114 (lecture directe 2026-07-20)"] last_updated: 2026-07-20 author: Arthur --- # Flux de rejet PIE - Renvoi au poste d'origine > **Résumé** : logique [CUSTOM] qui, lorsqu'une palette est rejetée au PIE > avant stockage ASRS, calcule et renvoie au WMS la destination de la palette > (renvoi au **poste de travail d'origine**), y pose un verrou porteur de la > cause, et gère la correction puis la ré-injection. > **Standard EasyWMS** : → voir [Reception](../../concepts/reception.md) et le > [Contrôle qualité à réception (PIE)](../01-inbound/controle-qualite-reception.md) > (contrôles PIE, LIM-66). Ce qui suit documente la **spécificité Limagrain** > du rejet. > **Statut (LIM-114)** : Ouvert, non assignée, **rédaction en cours** côté > ticket. Contenu susceptible d'évoluer. ## Contexte projet Le passage au **PIE** (voir [Contrôle qualité à réception](../01-inbound/controle-qualite-reception.md), LIM-66) contrôle chaque support avant stockage dans l'ASRS. Si un contrôle échoue, la palette est **rejetée** et ne rentre pas dans l'ASRS. Causes de rejet fonctionnelles attendues : **dimension**, **poids**, **étiquette (RFID non lue)**, **palette bois**. ### Revirement client Cette tâche **remplace** l'approche « poumon au sol + notification SmartUI » (esquissée dans LIM-66, Confluence « Réception » §3.2). Le client confirme vouloir le **renvoi de la palette rejetée vers le poste de travail où elle a été précédemment traitée**, malgré la charge AGV supplémentaire. Risque assumé (justification initiale de l'abandon) : renvoyer au poste d'origine mobilise l'AGV et le poste, avec un risque de blocage table/poste et une perte de temps. **Accepté par le client.** La mise à jour Confluence sera faite en fin de projet ; pas de modification de LIM-66 (uniquement un lien). ## Principe - le WMS répond la destination Les routes de rejet **EasyS** amènent la palette rejetée jusqu'à un poste de sortie (PS). Une fois au PS, la **recherche d'ordre** déclenche l'interrogation du WMS par Galileo : **c'est le WMS qui répond la destination**. Il n'y a donc pas de conflit avec les routes EasyS existantes et **pas de reprise de routes** à demander à Mecalux. Cette tâche porte uniquement sur la **logique WMS** (calcul de destination), le report du poste d'origine (`CstAtt06`) sur le support réel, et un nouveau paramètre `PK_REJET_PROD`. ## Topologie EST / OUEST - Les palettes de **production** entrent obligatoirement par l'**entrée EST** (image de quai → PIE, sans poste de travail). Exception standard : si le `PE01` (EST) est fermé, tout le flux (y compris production) bascule côté **OUEST** via les routes EasyS existantes. - Les palettes de **réception** (fournisseur / intersite / retour) et les palettes **sources de picking** passent par un poste de travail (PK) côté OUEST, qui devient leur **poste d'origine**. Le WMS est **agnostique du côté** : EasyS achemine le rejet vers le PS local (EST ou OUEST), et le WMS répond la destination à partir des attributs du support. ## Détermination de la destination de rejet Au moment de la recherche d'ordre sur le support rejeté arrivé au PS, le WMS calcule la destination : ``` 1. Lire CstAtt06 (Code du PK assigné = poste d'origine) du support. 2. SI CstAtt06 renseigné (poste d'origine connu) : // réception, picking candidat = poste CstAtt06 SI big-bag (CstAtt02 = true) ET candidat ∉ PK_BIGBAG : candidat = INVALIDE SI candidat non disponible (fermé / mode incompatible / saturé) : candidat = INVALIDE SI candidat VALIDE : destination = candidat SINON : destination = fallback (étape 4) 3. SINON (CstAtt06 vide) : // production (CstAtt04 = ASN) ou origine inconnue destination = PK_REJET_PROD SI PK_REJET_PROD non disponible : destination = fallback (étape 4) 4. FALLBACK : premier poste ouvert et disponible (first-available), compatible big-bag si CstAtt02 = true. SI big-bag ET aucun poste PK_BIGBAG disponible : LOG erreur + la palette attend sur le PS (pas de destination) 5. Poser un verrou "REJET PIE" sur le support, portant la cause du rejet. 6. Répondre la destination à Galileo. ``` Notes : - Le routage vers la destination est **automatique** (convoyeurs PE/PS/PIE sans opérateur), notamment pour les palettes de production qui partent directement vers `PK_REJET_PROD`. - La sélection d'un poste « disponible » réutilise la logique de disponibilité de l'assignation des postes (mode actif, saturation), voir [Mini jobs d'assignation au PK](../03-picking/job-assignation-pk.md) (LIM-70 / LIM-74). - « Origine inconnue » (`CstAtt06` vide sur un support non production) est traitée comme production → `PK_REJET_PROD` (filet de sécurité). ## Affichage de la cause au poste Le support arrive au poste avec le verrou « REJET PIE ». À l'arrivée / au scan du support, le WMS **affiche la cause du rejet** (dimension, poids, étiquette, palette bois) portée par le verrou. **Pas de notification SmartUI** (aligné avec l'abandon des notifications de LIM-66) : l'information est portée par le verrou et visible au scan. > ⚠️ **Dépendance Mecalux à confirmer** : pour afficher la cause, EasyS/Galileo > doit transmettre au WMS le **type d'erreur PIE** au moment du rejet. À > défaut, le WMS n'affichera que « REJET PIE » sans le détail de la cause. ## Correction et ré-injection L'opérateur traite la palette au poste selon la cause : | Cause | Action opérateur | |-------|------------------| | Étiquette | Réétiquetage (impression au poste) | | Dimension / poids | Correction physique (reconditionnement, retrait/ajout) | | Palette bois réparable | Repalettisation | | Palette bois **non réparable** | Déclaration « non réparable » → mouvement vers **REJ01** | **REJ01** = sortie de rejet dur côté OUEST. Elle évite d'abîmer la navette avec des palettes portant des flags non conformes ; la palette ne repart pas vers l'ASRS. Après correction, l'opérateur utilise l'option **standard « Stocker support »** (aucun dév custom) : le support repart vers l'ASRS via le PIE (`PIE_ENTRY_PK`) et **repasse le contrôle PIE nominal**. - Contrôle PIE **OK** → rangement ASRS, le verrou « REJET PIE » est **levé**. - Contrôle PIE **échoue à nouveau** → nouveau rejet, retour au poste d'origine. **Pas de garde-fou anti-boucle** : tant qu'il y a un rejet, on renvoie au poste d'origine (comportement stable et identique à chaque cycle). ## Prérequis - report du poste d'origine (CstAtt06) Le `CstAtt06` « Code du PK assigné » (Support, String, créé en LIM-70) matérialise le poste d'origine. Il est posé sur le support **fictif** de l'image de quai par LIM-70/LIM-74, mais le support **réel** qui passe au PIE ne l'hérite pas automatiquement. Il faut donc le **reporter** : - **Réception (LIM-67)** : à la création du support réel au poste, renseigner `CstAtt06` = code du PK courant. - **Picking (LIM-91)** : sur la palette source traitée au poste de picking, renseigner `CstAtt06` = code du PK picking (pour qu'un rejet au ré-stockage revienne au bon poste). - **Production** : pas de poste d'origine. `CstAtt06` reste **vide** ; le support est identifié production via `CstAtt04` = ASN. Destination = `PK_REJET_PROD`. ## Paramètres et attributs Nouveau paramètre (à déclarer dans LIM-14) : | Paramètre | Description | Défaut | |-----------|-------------|--------| | `PK_REJET_PROD` | Poste de rejet des palettes sans poste d'origine (production). À câbler physiquement côté EST (ex. `PS01`). | (à définir) | Paramètres existants réutilisés : `PK_BIGBAG` (postes compatibles big-bag), `PIE_ENTRY_PK` (PIE de ré-insertion après poste), `MODES_PKxx` (modes actifs). Voir [Paramètres projet](../07-admin/parametres-projet.md). Attributs utilisés (Support - voir [AD Customs](../07-admin/ad-customs.md#cstatt-support-container--palette)) : | Attribut | Rôle dans le rejet | |----------|--------------------| | `CstAtt06` | Poste d'origine. Lu pour déterminer la destination. | | `CstAtt02` | Big-bag. Contraint la destination aux postes de `PK_BIGBAG`. | | `CstAtt04` | ASN (production). Identifie les palettes sans poste d'origine. | ## Cas de test 27 cas de test définis dans le ticket, regroupés par famille : - **Destination réception / picking** (CT 1-4) : renvoi au poste `CstAtt06` ; chaque cause (dimension, poids, étiquette, palette bois) route au poste d'origine avec sa cause dans le verrou. - **Destination production** (CT 5-7) : `CstAtt04` = ASN + `CstAtt06` vide → `PK_REJET_PROD` (routage auto sans opérateur) ; fallback si indisponible ; origine inconnue traitée comme production. - **Big-bag** (CT 8-11) : poste d'origine compatible `PK_BIGBAG` ; origine incompatible → fallback big-bag ; aucun poste compatible → log + attente PS ; non big-bag sans contrainte. - **Poste d'origine indisponible** (CT 12-14) : poste fermé/saturé → fallback first-available ; aucun poste dispo → attente PS (à confirmer). - **Affichage cause** (CT 15-17) : cause visible au scan ; pas de SmartUI ; « REJET PIE » générique si cause non transmise par EasyS. - **Correction / ré-injection** (CT 18-21) : « Stocker support » standard → re-contrôle PIE ; re-rejet → retour poste sans garde-fou ; boucle stable ; aucun écran custom. - **Palette bois non réparable** (CT 22-23) : déclaration → REJ01 ; réparable → ré-injection normale. - **Prérequis CstAtt06** (CT 24-27) : report réception (LIM-67), pose picking (LIM-91), production sans `CstAtt06`, support réel sans report → traité comme origine inconnue (`PK_REJET_PROD`). ## Points d'attention ⚠️ **Pas de garde-fou anti-boucle** : une palette qui échoue plusieurs fois au PIE revient à chaque fois au poste d'origine. Aucune sortie litige automatique. ⚠️ Le renvoi au poste d'origine mobilise l'AGV et le poste (risque de blocage table/poste). Choix assumé par le client. ⚠️ Tâches liées à modifier : **LIM-67** (report `CstAtt06` sur support réel), **LIM-91** (pose `CstAtt06` sur palette source picking), **LIM-14** (déclaration `PK_REJET_PROD`), **LIM-66** (ajout d'un lien, sans modification). ## Questions ouvertes - Transmission de la cause de rejet (type d'erreur PIE) d'EasyS/Galileo vers le WMS - conditionne l'affichage de la cause (@Mecalux) - Poste physique `PK_REJET_PROD` côté EST (ex. `PS01`) et sa joignabilité si `PE01` fermé (bascule OUEST) - à valider layout - Comportement si aucun poste disponible (attente sur PS vs autre) - à confirmer - Disponibilité de l'imprimante d'étiquette au poste d'origine (cause étiquette) - à valider ## Historique des modifications | Date | Auteur | Modification | |------|--------|--------------| | 2026-07-20 | Arthur | Création depuis LIM-114 (lecture directe, Ouvert, rédaction en cours) : flux de rejet PIE avec renvoi au poste d'origine, algorithme de destination, topologie EST/OUEST, affichage de la cause, correction/ré-injection + REJ01, report CstAtt06, paramètre PK_REJET_PROD, 27 cas de test résumés | ## Références | Source | Type | Date | |--------|------|------| | [LIM-114](https://easywmsfrance.atlassian.net/browse/LIM-114) | Ticket Jira (flux de rejet PIE, rédaction en cours) | 2026 | | [LIM-66](https://easywmsfrance.atlassian.net/browse/LIM-66) | Ticket Jira (contrôles PIE, approche poumon abandonnée) | 2026 | | [LIM-70](https://easywmsfrance.atlassian.net/browse/LIM-70) / [LIM-74](https://easywmsfrance.atlassian.net/browse/LIM-74) | Tickets Jira (CstAtt06, disponibilité poste, PK_BIGBAG) | 2026 |