--- title: "Réception fournisseur — Production et extérieures/intersites" tags: [inbound, réception, production, ASN, ROR, PIE, clôture, REF, ROF] status: draft standard_ref: concepts/reception.md jira_refs: [LIM-67, LIM-73] confluence_refs: [] sources: [FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5.docx, "Réception - LIMAGRAIN - DEV - Confluence.md", LIM-67_Postes_Travail_Reception.md, "LIM-73 - LOT1.3 [RECEPTION] Fermetures, REF et gestion retours.md"] last_updated: 2026-05-12 author: Arthur --- # Réception fournisseur — Production et extérieures/intersites > **Résumé** : deux flux de réception distincts chez Limagrain — production > (directe ASRS via ASN) et extérieures/intersites (passage poste de travail > via ROR). Le déchargement camion est une étape commune. > **Standard EasyWMS** : → voir [Reception](../../concepts/reception.md) > Ce qui suit documente les **spécificités Limagrain** par rapport au standard. ## Contexte projet Limagrain gère 3 types de réception. Cette page couvre les deux premiers : 1. **Réception depuis la production** (flux majoritaire) 2. **Réceptions extérieures / transferts intersites** Le troisième type (retours client) est couvert dans [Réception retour](reception-retour.md). ## Étape commune — Arrivée et déclaration du camion > **Page dédiée** : le flux complet d'arrivée camion, d'assignation de quai, > d'affichage chauffeur et de déclaration image de quai via TRF est documenté > en détail dans [Gestion des camions](gestion-camions.md) (LIM-62/63/64/65). > Ce qui suit est un résumé. ### [CUSTOM] Réservation image de quai 1. Camion arrive → agent de quai crée une **réception** dans la vue « Ordre d'entrée > Réceptions » (SmartUI) 2. Saisie de la **plaque d'immatriculation** et de la **destination** : « PARKING » par défaut (quai fictif d'attente) ou quai réel si disponible 3. Sélection des OE (ordres d'entrée) concernés — chaque OE est flagué via un CstAtt 4. Agent consulte la disponibilité des quais via un graphique dans la vue des réceptions et assigne un quai réel 5. [CUSTOM] Écran parking (via WS) affiche plaque + n° quai pour le chauffeur **Contraintes d'assignation image de quai :** - Quai et image de quai **réservés** dès la sélection — réutilisation possible si place restante (gestion manuelle) - Blocage si flux différent (ex : expédition en cours sur ce quai) - Blocage si l'image de quai a des supports associés à un OS (expédition) ou inversement - Si aucun quai disponible → attente de libération - Il faut empêcher de créer une réception avec des OE de **classes de préavis différentes** (message d'erreur bloquant) Voir aussi [Quais et poumons](../04-outbound/consolidation-chargement.md). ### Déchargement physique - Cariste décharge palettes depuis emplacement **le plus éloigné du quai** - Permet d'identifier précisément les emplacements occupés pour les AGV ### [CUSTOM] Déclaration sur l'image de quai Menu TRF custom : Réception > Images de quai > Déclaration **Séquence commune :** 1. Scan de l'image de quai 2. Choix du type de réception (Production / Fournisseur / Retour client / Palettes vides) 3. Saisie du nombre de palettes + emplacement de départ 4. Association à la réception (auto pour Production via CstAtt « ASN », sélection manuelle de l'OE pour les autres) 5. Prompt big-bag (Oui/Non) — sauté pour Production 6. Écran de validation 7. Création des supports dans le WMS **Pour les réceptions extérieures/retours client :** - Impression d'une **étiquette par support** à coller sur la palette (ROR.Code + date + « À réceptionner » + code support + empl. image de quai) - Vérification capacité image de quai ### Création tâches de mouvement AGV - EasyWMS indique **point de prise** et **point de dépose** uniquement - Sens prise/dépose géré par le gestionnaire de flotte AGV (iGo) - Pour réceptions nécessitant un poste : assignation automatique selon contraintes déclarées (mode, big-bag, distance la plus courte) - Assignation manuelle également possible - Si aucun poste disponible → tâche en attente ### Libérations - **Image de quai** : libérée **automatiquement** quand il n'y a plus de palettes dessus (vérification via supports présents) - **Quai** : libéré **manuellement** par l'agent au départ du véhicule --- ## Flux 1 — Réception depuis la production ### Flux physique ```mermaid sequenceDiagram participant Cariste participant Quai/Poumon participant AGV participant Buffer participant PIE_01 participant ASRS Cariste->>Quai/Poumon: Déchargement Note over Quai/Poumon: Supports virtuels créés AGV->>Buffer: Transport support virtuel Buffer->>PIE_01: Convoyeur entrée production Note over PIE_01: Suppression support virtuel (containerMovedEvent) PIE_01->>PIE_01: Déplacement palette ASN + contrôles alt PIE OK PIE_01->>ASRS: Stockage (stratégie rangement) else PIE NOK PIE_01->>Cariste: Rejet → poumon au sol + notification end ``` ### Résumé du processus 1. Déclaration sur l'image de quai (voir étape commune ci-dessus) 2. Déplacement AGV → entrée production (via supports virtuels) 3. Passage PIE (suppression support virtuel + validation palette ASN) 4. Stockage ou rejet 5. Libération quai / image de quai ### 1) [CUSTOM] Pré-notification ASN Message **ASN** descendu de SAP **avant** l'arrivée physique (expédition depuis l'ancien magasin). Contenu : - Numéro unique HU - Article / Lot SAP - [CUSTOM] Propriétaire Limagrain - Statut de stock - Quantité (unités de vente) Batch possible : jusqu'à **500 conteneurs par message ASN**. > Les palettes sont étiquetées RFID en sortie de production (hors EasyWMS). > L'étiquette est collée sur la housse. ### 2) [CUSTOM] Supports virtuels et déplacement AGV **Principe des supports virtuels :** - Création de supports « virtuels » identiques à de vrais supports mais avec une **séquence différente (8000)** pour les identifier - La flotte AGV déplace la palette fictive jusqu'au PIE - Le tracking s'effectue avec le support virtuel sur le premier convoyeur **Destination** : entrée production (convoyeur vers ASRS). L'AGV dépose sur un **buffer d'entrée** (type POUMON MINILOAD AD) — jamais directement sur le PIE. **Suppression du support virtuel :** - Basée sur le fonctionnement standard des routes AGV - Surveillance des **containerMovedEvent** - Filtre : type palette ASN + destination type PIE → suppression du support virtuel (séquence 8000) ### [CUSTOM] Redirection si entrée production saturée En cas de blocage long terme sur l'entrée production : - **Solution standard** : système de routes avec distances — route principale distance 1, routes secondaires distance 2 - On ferme le PIE de production → le WMS redirige automatiquement vers les autres entrées disponibles - **Élément à bloquer** : le PIE (pas un élément physiquement plus proche de l'entrée) > Pour les tests sans AGV : utilisation de **routes virtuelles** en > configuration easyS qui téléportent automatiquement les palettes. ### 3) Passage au PIE et création palette ASN **Séquence au PIE :** 1. Fin d'ordre AGV au PIE → suppression du support virtuel (via containerMovedEvent) 2. Déplacement de la palette depuis l'emplacement « ASN » au PIE 3. Le ratio poids s'effectue au niveau de l'article Contrôles : dimensions (1300×1100×1900), poids (≤1250 kg), état palette, RFID connue (ASN). Voir [Contrôle qualité réception](controle-qualite-reception.md) pour le détail des contrôles PIE et la répartition du poids. **PIE OK :** - [CUSTOM] Aucun message ASO généré - [CUSTOM] Vérification poids — tolérance par type article, verrou « Réception » sur le **support** si écart > seuil - Mise à jour CstAtt01 de la ligne de stock (poids unitaire calculé) - [CUSTOM] Si type article ZSIZ → message ajustement stock vers SAP via WSC (poids réel HU) — voir [Contrôle qualité réception](controle-qualite-reception.md) pour la gestion du timing avec le REF - Stratégie de rangement appliquée - Réservation canal optimale selon nb palettes ASN restantes **PIE NOK :** - Rejet standard — plus besoin d'étiquette spécifique - Palette dirigée automatiquement vers un **poumon au sol** (zone de rejet) - **Notification SmartUI** envoyée aux opérateurs - Opérateur se rend physiquement à la zone de rejet pour corriger - Si non corrigeable : bouton custom édite étiquette « NON CONFORME, RENVOI » et crée une tâche vers un poumon dédié - [CUSTOM] Aucun message ASK généré - [CUSTOM] CstAtt du support flagué avec « Prod » (pas de poste de travail d'origine) --- ## Flux 2 — Réceptions extérieures / transferts intersites ### Flux physique (extérieur) ```mermaid sequenceDiagram participant Cariste participant Quai/Poumon participant AGV participant Poste PK participant Filmeuse participant PIE_02/03 participant ASRS Cariste->>Quai/Poumon: Déchargement AGV->>Poste PK: Transport vers poste de travail Poste PK->>Poste PK: Traitement réception AGV->>Filmeuse: Évacuation (filmage si demandé) Filmeuse->>PIE_02/03: Table d'entrée PIE_02/03->>PIE_02/03: Contrôles alt PIE OK PIE_02/03->>ASRS: Stockage else PIE NOK PIE_02/03->>Poste PK: Rejet → poumon au sol + notification end ``` ### Résumé du processus (extérieur) 1. Déclaration sur l'image de quai 2. Déplacement AGV → poste de travail 3. Traitement au poste de travail (constitution mono-ref + déclaration) 4. Déplacement AGV → table d'entrée (+ filmage si demandé) 5. Passage PIE 6. Stockage ou rejet 7. Clôture de la réception 8. Libération quai / image de quai ### 1) Notification ROR Message **ROR** de SAP → EasyWMS : - Numéro de réception (1 ROR = 1 livraison SAP, un camion peut contenir N livraisons) - Articles / Lots SAP / Quantités (en unités de vente) - Pas de création de lignes autorisée - Tolérance quantité : **0 %** pour intersites (palettes déjà identifiées), paramétrable **par ligne ROR** pour extérieures (uniquement en dépassement %) - `IsSingleReceipt = true` — le WMS ne gère pas de reliquats automatiques. Si réception incomplète, SAP crée une nouvelle livraison - `InboundType = 0` (Standard) pour les deux sous-types | Élément SAP | Correspondance EasyWMS | Remarque | |-------------|------------------------|----------| | Commande d'achat | — | Peut être cadencée en plusieurs livraisons | | Livraison | 1 ROR | Un ROR = une livraison | | Camion | N livraisons | Un camion peut contenir plusieurs livraisons | > Les transferts intersites : le site émetteur est considéré comme un > fournisseur dans EasyWMS. ### 2) [CUSTOM] Gestion des SSCC - Les numéros SSCC **ne sont pas envoyés** dans le ROR (`LineList>ContainerCode`) - Le SSCC est récupéré au moment du **scan RFID** en réception - Si SSCC présent sur la palette → conservation lors de la réédition RFID - Si SSCC absent → création d'un nouveau SSCC et ré-étiquetage > Raison : éviter la complexification du process si l'étiquette est > endommagée. ### 3) [CUSTOM] Déplacement vers poste de travail Assignation automatique du poste selon : 1. Non bloqué 2. En service 3. Mode autorise la réception 4. Capacité compatible avec la déclaration 5. Distance la plus courte Assignation manuelle aussi possible. Si aucun poste disponible → attente. ### 4) Constitution palettes mono référence Les palettes à destination ASRS doivent être **mono référence** autant que possible. Si multi-référence à l'arrivée : - Opérateur dispose manuellement une palette vide sur une TP (non géré par le WMS) - Tri de marchandise pour constituer des conteneurs mono-ref > Le process de constitution mono-référence est **standard** — pas de > développement spécifique. ### 5) [CUSTOM] Traitement au poste de travail Ref. [LIM-67](https://easywmsfrance.atlassian.net/browse/LIM-67) — en attente CDP. Les opérateurs utilisent le mode **Tâches automatiques** sur PC. Le code de réception est récupéré automatiquement via le `CstAtt08` du conteneur présent sur le poste. **Affichage fournisseur** : sur **tous les écrans** du process, afficher `"Fournisseur: CODE - NOM"`. #### a) Confirmation de création support (Big Bag) Si le conteneur scanné est un **conteneur virtuel** de réception, un écran de confirmation crée le nouveau support « réel ». Sur cet écran : - Ligne `"BIG BAG : NON"` (état initial) - Bouton **"BIG BAG ON"** → toggle vers `"BIG BAG : OUI"` / **"BIG BAG OFF"** - Valeur `true`/`false` stockée dans **CstAtt02** du support - Impression automatique d'une **étiquette RFID** dès confirmation — voir [Étiquette RFID](etiquette-rfid.md) (LIM-68) #### b) Menu principal du poste Écran central avec 5 actions — les informations du support actuel sont toujours affichées à droite. Après chaque action, retour à ce menu. | Action | Description | |--------|-------------| | **Ajouter stock** | Sélection article, lot, quantité (écrans standard). Afficher quantité attendue + UdM sans pré-remplir le prompt. Statut de stock affiché mais **non modifiable** (boutons masqués). Écrans date fin de statut et commentaire **skippés**. Pour l'anoxie : set **CstAtt03** du support à `true` | | **Nouveau support** | Scan emplacement, confirmation de création (retour à l'étape a). Le nouveau conteneur devient le support actif | | **Changer de support** | Scan du code support à sélectionner comme support actif | | **Imprimer étiquette** | Réimpression de l'étiquette RFID (voir [Étiquette RFID](etiquette-rfid.md)) | | **Terminer** | Vérification fermeture + filmage + évacuation (voir ci-dessous) | #### c) Action « Terminer » **Vérification fermeture réception** : si le conteneur actuel est le **dernier** de la réception (nombre de conteneurs virtuels avec `CstAtt08 = codeRecep` + conteneurs avec `CstAtt08 = codeRecep` et `CstAtt10 = true`), proposer la fermeture de la réception avec uniquement l'option confirmer. **Sélection du programme de filmage** : dialogue avec liste issue du paramètre **"FILMAGES"** : ``` Valeur par défaut : 0;Pas de filmage|A;Programme 1|B;Programme 2|C;Programme 3 ``` La valeur choisie (`0`, `A`, `B`, `C`…) est stockée dans le **CstAtt05** du support et transmise à Galileo en custom data. Après validation, une **tâche d'évacuation** est générée pour le transport AGV du poste de travail vers la table d'entrée. #### Résumé des CstAtt support (poste de travail) | CstAtt | Contenu | Set par | |--------|---------|---------| | CstAtt02 | Flag Big Bag (`true`/`false`) | Écran confirmation support | | CstAtt03 | Flag anoxie (`true`) | Action « Ajouter stock » | | CstAtt05 | Programme de filmage (`0`, `A`, `B`…) | Action « Terminer » | | CstAtt08 | Code de réception | Déclaration image de quai | | CstAtt10 | Flag support traité (`true`) | Fin de traitement | ### 6) Déplacement AGV → table d'entrée et filmage - L'AGV déplace le conteneur vers la table d'entrée - **Gestion du filmage** : le programme de filmage est transmis à Galileo via custom data au moment du passage. Si le PIE dit NOK → pas de filmage (custom data non transmis). Le filmage ne se fait que si le PIE valide la palette ### 7) Passage PIE Identique au flux production (mêmes formules de répartition poids, mêmes contrôles PIE). Voir [Contrôle qualité réception](controle-qualite-reception.md). **Différence en cas de rejet PIE** : la palette est dirigée vers un **poumon au sol** avec **notification SmartUI** (ancienne approche de renvoi au poste de travail d'origine abandonnée — risque de blocage AGV/table/poste). CstAtt du support flagué avec le poste de travail d'origine. --- ## Clôture des réceptions (extérieures/intersites) Ref. [LIM-73](https://easywmsfrance.atlassian.net/browse/LIM-73) — LOT 1.3. La clôture concerne uniquement les flux passant par un poste de travail (extérieures, intersites, retours client). La réception production (ASN) n'est pas concernée (pas de clôture manuelle). **Relation réception ↔ OE** : une réception peut servir **plusieurs OE**, mais un OE est servi par **une seule réception**. Si la réception associée à un OE est incomplète, SAP gère le reliquat via une nouvelle livraison (donc nouvel OE). ### Paramétrage - `IsSingleReceipt = true` — une seule réception par OE, pas de reliquats WMS - `AutoCloseReception = true` — le WMS clôture automatiquement la réception quand les conditions custom sont remplies (§ Déclenchement) - `AutoCloseInboundOrder = true` — à la clôture de la réception, chaque OE complété à 100 % ou dans la tolérance est auto-clôturé (ROF envoyé) et auto-archivé (absent de la vue). Les OE en écart hors tolérance restent ouverts ### Deux niveaux de clôture | Niveau | Description | Message ERP | |--------|-------------|-------------| | Réception | Clôture d'une livraison physique | REF | | Ordre d'entrée (OE) | Clôture de la commande complète | ROF | ### Déclenchement de l'auto-close (LIM-73 §1.1) L'auto-close de la réception se déclenche — et le bouton « Fermer réception » n'est visible — que si les deux conditions suivantes sont **simultanément** remplies : 1. **Aucune palette fictive** ayant `CstAtt08 = ` n'est présente (plus de palettes à venir de l'image de quai) 2. **ET** : - **Si Workstation** : au plus **1** palette réelle au PK avec `CstAtt10 = true` (la dernière en cours) - **Si Vue Réception** : **aucune** palette réelle au PK avec `CstAtt10 = true` Si au moins une ligne est **hors tolérance**, un message d'avertissement s'affiche : « La réception a été clôturée mais les quantités reçues sont hors tolérance, voir avec le manager pour réguler les quantités attendues puis fermer l'ordre d'entrée ». ### [CUSTOM] Adaptation Reception_Close_PR_V2 (LIM-73 §1.3) Le workflow standard de clôture est modifié pour deux comportements : **Partie A — Condition retours** : si la réception est de type retour client, la clôture et le REF sont différés jusqu'au rangement ASRS complet. Voir [Réception retour — Clôture](reception-retour.md) pour le détail (CstAtt11, CstAtt01 réception, statut « Clôture en cours »). **Partie B — Pose CstAtt01 OE hors tolérance** : à la clôture effective, pour chaque **ligne article hors tolérance** (en plus ou en moins) : 1. Rechercher le **premier OE** (FirstOrDefault) parmi les OE associés contenant ce combo code article / lot 2. Poser `CstAtt01 = true` sur cet OE > En pratique un combo code article/lot n'est jamais partagé entre > plusieurs OE d'une même réception — le FirstOrDefault est > déterministe. Les OE flaggés ne se clôturent pas automatiquement (ROF bloqué) et s'affichent en rouge dans la vue (voir § Clôture des OE ci-dessous). ### Contenu du REF (custom) Un seul REF est envoyé par réception (pas de REF progressif, car `IsSingleReceipt = true`). Contenu : - Numéros de conteneurs réceptionnés - Lignes de stocks associées - [CUSTOM] **Zone de stockage** (récupérée depuis le code emplacement du support) : - Fournisseur / intersite : si un support se trouve hors de l'ASRS au moment du REF → valeur **"NON RANGEE"** - Retour client : ce cas ne se produit pas (REF conditionné au rangement complet — voir [Réception retour](reception-retour.md)) - [CUSTOM] Attributs stock remontés : code produit SAP, code propriétaire réel, description courte, pays de destination, lot SAP **LOC** : envoyé sur delta de 5 min (palette créée/déplacée/supprimée). Le LOC ne prend pas en compte les palettes liées à une réception non fermée (standard dans le WSC forké — développement dédié [LIM-76](https://easywmsfrance.atlassian.net/browse/LIM-76)). ### Clôture des ordres d'entrée (OE) (LIM-73 §2) | Situation OE | Clôture | ROF | Affichage vue OE | |--------------|---------|-----|------------------| | Reçu = attendu | Auto-close | Envoi auto | Auto-archivé → absent | | Écart dans la tolérance | Auto-close (custom) | Envoi auto | Auto-archivé → absent | | Écart hors tolérance (`CstAtt01 OE = true`) | Manuelle par non-opérateur | Envoyé manuellement | **Rouge** — bouton restreint | **Visibilité du bouton « Clôturer l'OE »** : - OE sans écart ou dans la tolérance : accessible à tous (standard), mais auto-archivé donc invisible - OE hors tolérance (CstAtt01 OE = true, **rouge**) : bouton visible **uniquement pour les profils non-opérateurs** (admin, manager, chef d'équipe). Masqué pour les opérateurs standards Le manager régularise dans SAP (envoi éventuel d'un nouveau ROR) puis clôture manuellement l'OE → ROF envoyé. ### Réception excédentaire (> % autorisé) Le WMS bloque. Solutions possibles : | Solution | Description | |----------|-------------| | Modifier la commande | Message ROR UPSERT depuis SAP | | Réception aveugle | Sans lien fournisseur (nécessite gestion REF BLIND) | | Nouvelle commande | Créer une nouvelle commande d'achat pour le reliquat | ## Points d'attention ⚠️ En cas de blocage long terme sur l'entrée production, le WMS redirige automatiquement vers les autres entrées via le système de routes avec distances (fermeture du PIE de production). ⚠️ Les palettes issues de réceptions extérieures/intersites reçoivent **automatiquement** le flag « A anoxier » (CstAtt03). ⚠️ L'impression étiquettes réception au déchargement n'est possible que pour les réceptions extérieures et retours clients (pas production). ⚠️ Les rejets PIE sont dirigés vers un **poumon au sol** avec notification SmartUI (ancienne approche de renvoi au PK abandonnée). ⚠️ Le process de constitution mono-référence est **standard** (pas de développement spécifique). ⚠️ Filmage : transmis à Galileo via custom data (CstAtt05) — uniquement si PIE OK. Paramètre SmartUI `FILMAGES` définit la liste des programmes. ⚠️ `AutoCloseReception = true` mais la clôture effective dépend des CstAtt08/CstAtt10 (tous supports traités). La clôture OE est automatique si conditions remplies (`AutoCloseInboundOrder`). ⚠️ Le CstAtt01 poids unitaire mesuré (PIE) est **prioritaire** sur le poids ITM pour tous les calculs suivants. ## Questions ouvertes - [x] Programme de filmage exact — documenté, 8 programmes A→H, paramètre SmartUI `FILMAGES` (LIM-67) - [ ] Gestion TRF si AGV pas prêts au démarrage (@Théo) - [ ] Utilisation du ROC (confirmation de réception) — point interne Limagrain (@Justine) - [ ] Création fournisseurs/clients à la volée dans EasyWMS — faisabilité technique (@Nicolas) - [ ] Vérifier fonctionnement ExceedPercentageAllowed vs profil de réception (@Nicolas) - [ ] Choix fournisseur imprimantes RFID — exiger compatibilité ZPL (@Théo) - [ ] Position étiquette image de quai (devant/côté) — à valider avec le client (@Justine) - [ ] Poids variable — vérifier si le standard gère la capture de poids (@Nicolas) - [ ] Surplus non réceptionné hors tolérance — quelle solution pour les palettes impossibles à réceptionner ? (@Justine) - [ ] Palette refusée PIE mais non supprimée — comment gérer le support qui reste en base ? (@Nicolas) (LIM-73) - [ ] WF clôture OE : faut-il modifier le WF existant ou en créer un nouveau pour la condition CstAtt01 ? (@Fabien) (LIM-73) ## Historique des modifications | Date | Auteur | Modification | |------|--------|--------------| | 2026-05-05 | Arthur | Création initiale depuis AF V1.5 | | 2026-05-05 | Arthur | Enrichissement depuis ateliers DEV Confluence | | 2026-05-12 | Arthur | Réécriture section traitement poste travail (LIM-67) : menu 5 actions, CstAtt02/03/05/08/10, filmage FILMAGES | | 2026-05-12 | Arthur | Réécriture section clôture (LIM-73) : AutoCloseReception=true, Reception_Close_PR_V2, REF custom, clôture OE 3 cas | | 2026-05-13 | Arthur | Restauration sections tronquées (points d'attention, questions, historique, références) | ## Références | Source | Type | Date | |--------|------|------| | FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5 | Analyse fonctionnelle | 28/11/2025 | | Réception - LIMAGRAIN - DEV - Confluence | Page ateliers DEV | 2026 | | [LIM-67](https://easywmsfrance.atlassian.net/browse/LIM-67) | Ticket Jira (postes travail) | 2026 | | [LIM-73](https://easywmsfrance.atlassian.net/browse/LIM-73) | Ticket Jira (clôture/REF) | 2026 |