Files
mcp-wms-wiki/wiki/sources/archives/Réception - LIMAGRAIN - DEV - Confluence.md
2026-05-20 09:41:27 +02:00

1011 lines
107 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
- 1 [1\. Arrivée et déclaration du camion](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#1.-Arriv%C3%A9e-et-d%C3%A9claration-du-camion)
- 1.1 [Résumé](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#R%C3%A9sum%C3%A9)
- 1.2 [Flux détaillé](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#Flux-d%C3%A9taill%C3%A9)
- 2 [2\. Flux de réception](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#2.-Flux-de-r%C3%A9ception)
- 2.1 [2.1 Réception production](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#2.1-R%C3%A9ception-production)
- 2.2 [2.2 Réception externes / intersites](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#2.2-R%C3%A9ception-externes-%2F-intersites)
- 2.3 [2.3 Réception retours clients](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#2.3-R%C3%A9ception-retours-clients)
- 2.4 [2.4 Réception palettes vides](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#2.4-R%C3%A9ception-palettes-vides)
- 3 [3\. Fonctions transverses](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#3.-Fonctions-transverses)
- 3.1 [3.1 Passage PIE](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#3.1-Passage-PIE)
- 3.2 [3.2 Gestion des rejets](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#3.2-Gestion-des-rejets)
- 3.3 [3.3 Clôture des réceptions](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#3.3-Cl%C3%B4ture-des-r%C3%A9ceptions)
- 3.4 [3.4 Constitution mono-référence](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#3.4-Constitution-mono-r%C3%A9f%C3%A9rence)
- 3.5 [3.5 Libération quai / image de quai](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#3.5-Lib%C3%A9ration-quai-%2F-image-de-quai)
- 4 [4\. Gestion des modes de postes de travail](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#4.-Gestion-des-modes-de-postes-de-travail)
- 4.1 [Principe général](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#Principe-g%C3%A9n%C3%A9ral)
- 4.2 [Choix par le manager](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#Choix-par-le-manager)
- 4.3 [Job de création de tâches vers poste de travail](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#Job-de-cr%C3%A9ation-de-t%C3%A2ches-vers-poste-de-travail)
- 5 [5\. Tableau comparatif](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#5.-Tableau-comparatif)
- 6 [6\. Points ouverts](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#6.-Points-ouverts)
- 7 [7\. Explication du point ouvert : Palettes multi-références au PIE](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#7.-Explication-du-point-ouvert-%3A-Palettes-multi-r%C3%A9f%C3%A9rences-au-PIE)
- 7.1 [Contexte](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#Contexte)
- 7.2 [Le problème illustré](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#Le-probl%C3%A8me-illustr%C3%A9)
- 7.3 [Les deux options proposées](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#Les-deux-options-propos%C3%A9es)
- 7.4 [Troisième piste évoquée : Écart en pourcentage](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#Troisi%C3%A8me-piste-%C3%A9voqu%C3%A9e-%3A-%C3%89cart-en-pourcentage)
- 7.5 [Pourquoi c'est un point ouvert ?](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#Pourquoi-c'est-un-point-ouvert-%3F)
- 8 [8\. Historique des modifications](https://easywmsfrance.atlassian.net/wiki/spaces/LIM/pages/3001586417673/Donn+es+principales+stock#8.-Historique-des-modifications)
## 1\. Arrivée et déclaration du camion
Ce flux concerne l'arrivée physique d'un camion sur le site et son orientation vers un quai de déchargement. Il est commun à tous les types de réception.
### Résumé
Un responsable crée la réception associée au camion dans la vue "Ordre d'entrée > Réception”. Il saisit la plaque d'immatriculation et la destination (parking par défaut ou quai direct). Ensuite, il choisit les OE concernés. L'affichage plaque + quai permet de guider le chauffeur.
> **Note** : Chaque OE est flag via un CstAtt.
Le gestionnaire verra tous les réceptions et pourra filtrer par plaque et/ou quai assigné.
### Flux détaillé
#### Étape 1 : Annonce du camion à l'arrivée
**Annonce manuelle par un agent de quai :**
Le camion arrive sur site et s'annonce auprès d'un agent de quai. L'agent accède à la vue "Ordre d'entrée > Réceptions" dans SmartUI. Il crée une nouvelle réception dordres dentrée en saisissant la plaque d'immatriculation du véhicule et la destination : par défaut "PARKING" (quai fictif d'attente) ou directement un quai réel si disponible et enfin sélectionne les OE concernés. Cela met à jour les OE concernés pour les rattacher à ce camion (plaque + parking).
#### Étape 2 : Assignation du quai
L'agent de quai consulte les disponibilités des quais et images de quai via un graphique dans la vue des Réceptions (à droite de la grille). Il sélectionne les réceptions dans la vue et associe un quai réel au camion (ou modifie le quai si "parking" est déjà appliqué).
Il faut empêcher lutilisateur de créer une réception avec des ordres dentrées de classe différentes. Si cest le cas, bloquer la création de la réception avec un message derreur : “Impossible de créer une réception avec des ordres dentrée ayant des classes de préavis de réception différentes”.
**Images de quai autorisés en assignation :**
- Le quai et l'image de quai sont réservés dès la sélection → il est quand même possible de réutiliser un combo quai/image de quai s'il y a de la place (gestion manuelle)
- Blocage si flux différent (ex : expédition)
- En expédition : blocage par RUT (à revalider)
- Si aucun quai n'est disponible → l'opérateur attend une libération
- Un quai peut être déjà occupé mais non plein, dans ce cas, via calcul de la place restante, on peut l'attribuer
- Modification possible à posteriori si les contraintes d'exploitation l'exigent
- Pas de support clients
- Non saturé (nombre supports = capacité poumon)
> Pour l'expédition, vérifier si l'image de quai a des supports associés à un OS → bloquer en TRF réception (scan image de quai). À l'inverse, en expédition, bloquer si l'image de quai est utilisée pour la réception (vérification via supports présents).
#### Étape 3 : Information au chauffeur
Un écran d'affichage situé sur le parking montre la plaque d'immatriculation et le numéro de quai assigné. Le chauffeur peut ainsi se diriger vers le bon quai. Sera fait via une WS.
___
## 2\. Flux de réception
### 2.1 Réception production
Les palettes arrivent de la production (ou de l'ancien magasin) et vont directement dans l'ASRS sans passer par un poste de travail.
#### Process résumé
1. Déclaration sur l'image de quai
2. Déplacement AGV → Entrée production (via supports virtuels)
3. Passage PIE (suppression support virtuel + création palette ASN)
4. Stockage ou rejet
5. Libération quai / image de quai
#### Étape 1 : Déclaration sur l'image de quai
Menu TRF custom : Réception > Images de quai > Déclaration
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="3453" data-local-id="521a634cbc95">Étape</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="3462" data-local-id="fd743ab25fc2">Action</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="3472" data-local-id="026770295f57">Détail</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3484" data-local-id="f70d874106d2">1</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3494" data-local-id="c0b9631262cb">Scan image de quai</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3520" data-local-id="4782150f6cb6">Identification de la zone de déchargement</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3592" data-local-id="d96392864441">2</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3602" data-local-id="d270ba4433ae">Type de réception</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3628" data-local-id="3d0eb31fb1e8">Production → ASN + sous-emplacement de départ sur l'image de quai</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3700" data-local-id="eba1c5a2e666">3</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3710" data-local-id="46298380adf4">Nombre de palettes</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3736" data-local-id="40a250848a6b">Saisie manuelle</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3808" data-local-id="6ab232ac855b">3 bis</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3817" data-local-id="ae993a1ea198">Emplacement de départ</p></td><td rowspan="1" colspan="1" colorname=""></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3848" data-local-id="f191ec53e3ea">4</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3858" data-local-id="a5ad27a99acf">Association réception</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3884" data-local-id="15feb8064f30">Automatique : CstAtt "ASN"</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3956" data-local-id="f7d97cb29c9d">5</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3966" data-local-id="05e814bc8840">Prompt big-bag</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="3992" data-local-id="9babd6cd5c0b">Sauté</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="4064" data-local-id="682a09b5f46a">6</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="4074" data-local-id="82f002caaf71">Prompt type de poste</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="4100" data-local-id="96a84f7cc173">Sauté</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="4172" data-local-id="65bb8a22a02d">8</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="4182" data-local-id="7be3a155b564">Validation</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="4208" data-local-id="d017dd6eb37a">Ecran de validation</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="4233" data-local-id="c65281b69aed">7</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="4243" data-local-id="170d53eda976">Création des supports</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="4268" data-local-id="e95ce83e489f">Non (déjà étiquetées RFID en sortie de production)</p></td></tr></tbody></table>
> **Règle de déchargement physique** : Le cariste doit décharger en commençant par l'emplacement le plus éloigné du quai. Cela permet d'identifier précisément les emplacements occupés pour les AGV.
#### Étape 2 : Gestion des supports virtuels et déplacement AGV
**Principe des supports virtuels :**
- Création de supports "virtuels" comme de vrais supports mais avec une séquence différente
- 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)
EasyWMS indique uniquement le point de prise et le point de dépose. Le sens de prise et de dépose est géré par le gestionnaire de flotte AGV (iGo).
**Cas particulier — Redirection du flux** : En cas de blocage long terme sur l'entrée production il faut que le WMS redirige l'ensemble des palettes vers l'entrée ASRS classique.
> **Redirection production saturée :**
>
> - **Solution standard :** Utilisation du système de routes avec distances. Route principale avec distance de 1, routes secondaires avec distances de 2.
>
> - On ferme le PIE de prod → le WMS redirige automatiquement vers les autres entrées disponibles.
>
> - **Élément à bloquer** : Le PIE (pas un élément plus proche physiquement de l'entrée).
>
> **Configuration easyS :**
>
> - L'AGV dépose sur un **buffer d'entrée** (comme POUMON MINILOAD AD), on ne dépose jamais directement sur le PIE.
>
> - Au scan PIE, le support est déplacé et l'ASN validé.
>
> - Pour les tests sans AGV : utilisation de **routes virtuelles** qui téléportent automatiquement les palettes.
>
#### Étape 3 : Passage PIE et création palette ASN
**Séquence au PIE :**
1. Fin d'ordre (arrivée à destination) au PIE de la palette virtuelle de l'AGV → suppression de la palette virtuelle (via ContainerMoved event)
2. Déplacement de la palette de l'emplacement "Asn" au PIE
3. Le ratio poids s'effectue au niveau de l'article
Voir section 3.1 Passage PIE pour les contrôles détaillés.
> **Suppression palette virtuelle :**
>
> - Se baser sur le fonctionnement standard des routes AGV
>
> - Surveiller les **containerMovedEvent**
>
> - Filtrer : type palette ASN + destination type PIE → supprimer le support virtuel
>
> - La séquence de support "8000” permettra d'identifier les palettes virtuelles à supprimer
>
#### Étape 4 : Stockage ou rejet
Voir section 3.2 Gestion des rejets.
Le rejet PIE reste standard, plus besoin de l'étiquette spécifique.
#### Étape 5 : Libération quai / image de quai
Voir section 3.5 Libération quai / image de quai.
___
### 2.2 Réception externes / intersites
Les réceptions externes (fournisseurs) et transferts intersites (autres sites Limagrain) suivent le même flux. Les palettes doivent passer par un poste de travail pour identification et déclaration avant d'aller vers l'ASRS.
#### Création de la réception
Lorsqu'une réception est planifiée dans l'ERP, un message ROR est descendu de SAP vers EasyWMS contenant : numéro de réception, articles à réceptionner, lots SAP, quantités en nombre d'unités de vente, et tolérance par ligne (pour les réceptions extérieures uniquement — champ ROR standard mais uniquement en dépassement %).
> **Note** : En cas de réception en dessous de la quantité prévue, la réception sera fermée manuellement. Le WMS ne gère pas de reliquats automatiques (`IsSingleReceipt = true`). Si réception incomplète, c'est SAP qui crée une nouvelle livraison si nécessaire.
**Lien avec l'ordre d'entrée (OE) :**
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="7739" data-local-id="34e5f2e39416">Élément SAP</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="7754" data-local-id="c9a695be43dd">Correspondance EasyWMS</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="7780" data-local-id="3bc1b5d43f92">Remarque</p></div></th></tr></tbody></table>
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="7739" data-local-id="34e5f2e39416">Élément SAP</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="7754" data-local-id="c9a695be43dd">Correspondance EasyWMS</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="7780" data-local-id="3bc1b5d43f92">Remarque</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="7794" data-local-id="b048b1a9c3df">Commande d'achat</p></td><td rowspan="1" colspan="1" colorname=""></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="7818" data-local-id="c66c0c1caf04">Peut être cadencée en plusieurs livraisons</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="7866" data-local-id="7da511ee84c0">Livraison</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="7879" data-local-id="09697d11015b">1 ROR</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="7888" data-local-id="ae166b65dc35">Un ROR = une livraison</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="7916" data-local-id="5f0e79a56f8a">Camion</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="7926" data-local-id="e9095cb5a4ed">N livraisons</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="7942" data-local-id="f1013ea3dcb4">Un camion peut contenir plusieurs livraisons</p></td></tr></tbody></table>
**Règles spécifiques :**
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="8016" data-local-id="700121495c77">Règle</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="8025" data-local-id="0a4edaeddf3e">Externe (fournisseur)</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="8050" data-local-id="4d786c929e8e">Intersite (transfert)</p></div></th></tr></tbody></table>
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="8016" data-local-id="700121495c77">Règle</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="8025" data-local-id="0a4edaeddf3e">Externe (fournisseur)</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="8050" data-local-id="4d786c929e8e">Intersite (transfert)</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="8077" data-local-id="9577e5c4c18c">Création de lignes non prévues</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="8111" data-local-id="362e9ce80590">❌ Non autorisé</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="8129" data-local-id="11ed33403a56">❌ Non autorisé</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="8149" data-local-id="0e6c289adb16">Tolérance quantité</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="8171" data-local-id="d922ed04babc">✅ Oui (par ligne ROR)</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="8196" data-local-id="18c0105b336f">❌ 0 %</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="8207" data-local-id="3af43c7b0b18">InboundType</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="8222" data-local-id="cd6b5dc9cfed">0 (Standard)</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="8238" data-local-id="06893f90c0e9">0 (Standard)</p></td></tr></tbody></table>
> **Transs inter-sites** : Le site émetteur est considéré comme un fournisseur dans EasyWMS. La tolérance est de 0% car les palettes sont déjà identifiées.
#### 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.
#### Process résumé
1. Déclaration sur l'image de quai
2. Déplacement AGV → Poste de travail
3. Traitement au poste de travail
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
#### Étape 1 : Déclaration sur l'image de quai
Menu TRF custom : Réception > Images de quai > Déclaration
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="9173" data-local-id="e1371956c45d">Étape</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="9182" data-local-id="bd792a3a9920">Action</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9194" data-local-id="b4a6278b35c8">1</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9199" data-local-id="3e05467a7546">Scan de l'image de quai</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9228" data-local-id="6d3aa7972733">2</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9233" data-local-id="ce919db175f6">Type de réception → Fournisseur</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9270" data-local-id="fa5fd97f572c">3</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9275" data-local-id="a01cd3c5cf3c">Sélection de l'ordre d'entrée (OE)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9315" data-local-id="2beb3b3acbd5">4</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9320" data-local-id="c1d66c7c3dde">Déclaration du nombre de palettes (création des supports dans le WMS) + emplacement de départ + vérif capacité</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9436" data-local-id="023dd77ecad7">5</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9441" data-local-id="7c8692d3f3df">Prompt présence big-bag (Oui/Non) → stocké en CstAtt du support</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9510" data-local-id="130176db6740">6</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9515" data-local-id="446958162d68">Validation - “Êtes vous sûrs</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9549" data-local-id="ea4e266fc45a">7</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9554" data-local-id="b24cb3e1b031">Impression d'une étiquette par support (ROR.Code + date + "À réceptionner" + code support + empl. image de quai) à coller</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9681" data-local-id="dbee3458eff5">8</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="9686" data-local-id="73efffae46a7">Création des supports</p></td></tr></tbody></table>
**Critères de choix du poste de réception** : Présence big-bag (oui/non), poste ouvert, type de réception.
**Position des étiquettes** : Collage devant la palette (violet) → nécessite de pouvoir déposer les palettes avec de la marge et marcher autour. Alternative : à gauche ou à droite (rouge). À valider selon la place disponible entre les palettes.
> - Étiquette standard SSCC classique avec code, date, infos (cf AF)
>
> - Pas de design complexe car on reprend celle standard
>
#### Étape 2 : Déplacement AGV → Poste de travail
**Critères de sélection du poste** : Non bloqué, en service, mode configuré pour autoriser la réception, capacité compatible avec la déclaration.
**Logique d'assignation** : S'il y a plusieurs postes valables → EasyWMS trie par préférence (distance la plus courte). Assignation manuelle possible. Si aucun poste disponible → attente.
#### Étape 3 : Traitement au poste de travail
**3.1 Arrivée et scan** : Le support arrive sur la table de préparation (TP). L'opérateur scanne le code de réception de l'étiquette palette.
**3.2 Constitution mono-référence** : Voir section 3.4 Constitution mono-référence.
**3.3 Déclaration du contenu :**
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="10855" data-local-id="21a01ac2186b">Étape</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="10864" data-local-id="a19aa3c47b78">Action</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="10876" data-local-id="c287b3d75afb">1</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="10886" data-local-id="0b9e70510f3c">Affichage du stock attendu (Article, Lot SAP, Lot officiel, Quantité) + Statut de stock <strong data-renderer-mark="true">non modifiable</strong></p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="11082" data-local-id="b5f90bc52cc3">2</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="11092" data-local-id="8c8e2be210a8">Scan du QRCode lot officiel (ou saisie manuelle)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="11265" data-local-id="c1e705ae4997">3</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="11275" data-local-id="ca148d5725ae">Déclaration quantité + statut de stock (Conforme, sacs sales, non conforme, etc.)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="11448" data-local-id="27a6a4b62caa">3 bis</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="11457" data-local-id="818dfb95efef">Flag big-bag avec bouton custom</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="11494" data-local-id="d884c613b892">4</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="11504" data-local-id="2221f1248a34">Édition et impression de l'étiquette HU (RFID)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="11677" data-local-id="aceaf26b9d6c">5</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="11687" data-local-id="db06259abbfa">Ajout automatique du flag "À anoxier" sur les lignes de stock (CstAtt)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="11860" data-local-id="bb7aa1fc5b2d">6</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="11870" data-local-id="5ee15ebfc423">Choix du programme de filmage ( Le programme de filmage est stocké dans un custom attribute du support et transmis à Galileo en custom data) mis en paramètres SmartUi</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="12043" data-local-id="1dafd7fabfe1">7</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="12053" data-local-id="ec33b4e9c7ca">Validation manuelle pour confirmation mission AGV</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="12226" data-local-id="957b47d0e9a5">8</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="12236" data-local-id="ec43cd5b74c1">Évacuation automatique par AGV</p></td></tr></tbody></table>
> **Note statut stock** : Pour SAP, un stock conforme a besoin d'un statut "Conforme" contrairement au WMS qui considère qu'il n'y a alors aucun statut.
> **Impression étiquette RFID :**
>
> - Nécessite conversion en **ZPL** pour envoyer le tag RFID à l'imprimante
>
> - Similaire aux étiquettes transporteurs mais avec custom pour la partie RFID
>
> - Le fournisseur d'imprimantes n'est pas encore choisi → **exiger compatibilité format ZPL**
>
> - L'étiquette HU est **standard** (SSCC + infos classiques)
>
#### Étape 4 : Déplacement AGV → Table d'entrée
L'AGV déplace le conteneur vers la table d'entrée. Filmage possible avant le PIE selon le choix de l'opérateur.
**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, le custom data n'est pas transmis
- Le filmage ne se fait que si le PIE valide la palette
#### Étapes 5-6 : Passage PIE et Stockage/Rejet
Voir section 3.1 Passage PIE et 3.2 Gestion des rejets.
**Destination de rejet** : Poste de travail d'origine en priorité.
> Voir section 3.2 pour la nouvelle gestion simplifiée des rejets (poumon au sol + notification).
#### Étape 7 : Clôture de la réception
Voir section 3.3 Clôture des réceptions.
#### Étape 8 : Libération quai / image de quai
Voir section 3.5 Libération quai / image de quai.
___
### 2.3 Réception retours clients
Flux similaire à la réception externe/intersite avec des différences notables détaillées ci-dessous.
#### Création de la réception
Comme pour la réception externe/intersite : message ROR depuis SAP (type ORDRSP).
**Différences :**
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="13982" data-local-id="b72a0567e12e">Champ</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="13991" data-local-id="c2bb2ad5d197">Valeur Retour</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="14008" data-local-id="fbe04a2dde9b">Commentaire</p></div></th></tr></tbody></table>
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="13982" data-local-id="b72a0567e12e">Champ</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="13991" data-local-id="c2bb2ad5d197">Valeur Retour</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="14008" data-local-id="fbe04a2dde9b">Commentaire</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="14025" data-local-id="9b6b47636830">InboundType</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="14040" data-local-id="e3f6e2f066fc">1 (Return)</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="14054" data-local-id="85982b02247b">Retour client</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="14073" data-local-id="fab19d819d53">SupplierCode</p></td><td rowspan="1" colspan="1" colorname=""></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="14093" data-local-id="82cd751e0008">Non applicable</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="14113" data-local-id="1b60b365cd93">AccountCode</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="14128" data-local-id="28b1c15f52d6">Code client SAP</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="14147" data-local-id="5f930303b7e2">Le client doit exister dans EasyWMS</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="14188" data-local-id="11b8b521790f">Tolérances</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="14202" data-local-id="266f5945ec76">Aucune</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="14212" data-local-id="6bfb6b6067c3">Tout est toléré (articles non prévus acceptés)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="14264" data-local-id="39f924ec5c2b">ReceiveLessAllowed</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="14286" data-local-id="08a892cc0e85">true</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="14294" data-local-id="24deac2ddba7">Toujours autorisé</p></td></tr></tbody></table>
> **Création de lignes non prévues** : Autorisée pour les retours clients (Limagrain peut recevoir un article non attendu). Le profil de réception par défaut est configuré en "illimité" sur tous les articles.
#### Gestion des codes lots inconnus
SAP peut envoyer un retour client et physiquement on peut se retrouver avec de la marchandise dont le code lot (code article) est inconnu.
**Solution retenue :**
`┌─────────────────────────────────────────────────────────────────────┐ │ 1. SAP envoie ROR avec codes articles génériques │ │ (code unique avec nomenclature précise, pas réutilisable) │ ├─────────────────────────────────────────────────────────────────────┤ │ 2. Réception physique : scan du code lot officiel sur le sac │ ├─────────────────────────────────────────────────────────────────────┤ │ 3. Appel API vers SAP pour vérifier : │ │ - Le retour est-il valide ? │ │ - Récupération de la fiche article officielle │ ├─────────────────────────────────────────────────────────────────────┤ │ 4a. Si valide : SAP renvoie la fiche article │ │ → Stock créé avec le vrai code lot │ │ → REF remplace code générique par vrai code lot (custom) │ ├─────────────────────────────────────────────────────────────────────┤ │ 4b. Si invalide : Stock refusé │ │ → Intervention manuelle du manager │ └─────────────────────────────────────────────────────────────────────┘`
**Points importants :**
- Les codes articles génériques doivent être uniques (pas réutilisables) pour assurer la traçabilité
- Un article inconnu de la base EasyWMS = ROR refusé
- Un article connu mais non prévu dans le retour = accepté (tolérance illimitée)
> - Gestion du **token** (récupération avant chaque appel ou utilisation d'une clé privée)
>
> - **Appel API direct dans le workflow** (pas via GNA) - similaire aux appels transporteurs
>
> - Écran d'attente avec **refresh automatique toutes les 5 secondes** et **bouton réessayer**
>
> - **Timeout de 1 minute** maximum
>
> - **Cas à gérer et détailler** dans le cas où le code article n'est pas prévu dans le retour :
>
> - Article connu WMS → pas d'appel API
>
> - Article inconnu WMS → appel SAP → attente réponse
>
> - SAP dit OK → ITM descendu → continuer
>
> - SAP dit NOK → erreur affichée ("lot n'existe pas" ou "lot non vendu par Limagrain")
>
> - Timeout → message d'erreur, bouton réessayer (au bout de 5 essais, message final)
>
#### Process résumé
1. Déclaration sur l'image de quai
2. Déplacement AGV → Poste de travail
3. Traitement au poste de travail
1. Statut de stock **modifiable**
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
#### Étape 1 : Déclaration sur l'image de quai
Comme pour la réception externe/intersite, avec une différence :
> **Différence** : Prompt supplémentaire pour le type de poste (3 ou 6 TP) → stocké en CstAtt → abandonné
>
> - Remplacé par un **message d'avertissement** si le poste adjacent est déjà ouvert
>
> - Voir section 4 pour les détails
>
#### Étape 2 : Déplacement AGV → Poste de travail
Comme pour la réception externe/intersite. Le type de poste (3 ou 6 TP) déclaré est utilisé comme critère de sélection.
#### Étape 3 : Traitement au poste de travail
Constitution mono-référence et déclaration du contenu comme pour la réception externe/intersite.
**Différences notables :**
**Gestion des lots inconnus :**
Si le lot officiel scanné renvoie vers un lot SAP inconnu du WMS :
`Scan lot officiel │ ▼ Lot connu WMS ? │ ┌────┴────┐ ▼ ▼ OUI NON → Requête API SAP (timeout 1 min) │ │ │ ┌────┴────┐ │ ▼ ▼ │ Existe N'existe pas │ │ │ │ ITM Erreur : "Enregistrement │ descendu impossible, le lot │ │ n'existe pas" ▼ ▼ Lot vendu ? │ ┌────┴────┐ ▼ ▼ OUI NON │ │ └────┴─► OK Erreur : "Enregistrement impossible, le lot n'a pas été vendu par Limagrain"`
**Choix de l'article** : Le lot SAP peut correspondre à plusieurs articles → l'opérateur choisit dans une liste (selon le pays d'origine).
#### Étapes 4-8
Comme pour la réception externe/intersite.
**Différence au PIE :**
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="18807" data-local-id="d1e1e17b7787">Élément</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="18818" data-local-id="27849021658d">Retour client</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="18835" data-local-id="1afe9f6cd8f2">Autres flux</p></div></th></tr></tbody></table>
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="18807" data-local-id="d1e1e17b7787">Élément</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="18818" data-local-id="27849021658d">Retour client</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="18835" data-local-id="1afe9f6cd8f2">Autres flux</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="18852" data-local-id="7d4008bc3307">Verrou si écart poids</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="18877" data-local-id="0d91b38ddc6f">"Écart inventaire"</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="18899" data-local-id="dc51ef74da70">"Réception"</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="18916" data-local-id="4df490cbbfe9">Action requise</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="18934" data-local-id="0538dcbaef86">Recomptage du nombre de sacs</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="18966" data-local-id="a780f7b043ce">—</p></td></tr></tbody></table>
___
### 2.4 Réception palettes vides
**Caractéristiques** : Article nommé "PILE DE 10 PALETTES", toujours reçu par paquet de 10 palettes (sinon refusé - contrainte de hauteur). Type de réception : Réception palettes vides. Pas de scan demandé. Destination : stockage direct dans l'ASRS.
**Réapprovisionnement aux postes de travail** : Une tâche de réapprovisionnement automatique est créée depuis l'ASRS vers la zone poumon du poste de travail. L'opérateur se sert dans la pile de palettes et déclare lorsqu'il a vidé la pile.
> **Réapprovisionnement palettes vides :**
>
> - Création d'un **emplacement picking dédié** pour les palettes vides (permet le réappro automatique sur seuil) pour chaque emplacement physique accueillant les stocks de palette vide
>
> - **Bouton WfAction** dans la workstation pour demander réappro
>
> - L'opérateur choisit la pile à réapprovisionner parmi une liste (paramètre par PK avec noms des emplacements)
>
> - **Deux piles par îlot de travail**
>
> - Quand l'emplacement devient vide (via bouton WfAction) → réappro automatique déclenché
>
___
## 3\. Fonctions transverses
### 3.1 Passage PIE
Le passage au PIE est commun à tous les flux de réception. Ce point de contrôle automatique vérifie l'identité et la conformité de la palette avant son stockage dans l'ASRS.
> **Note** : Le contrôle du poids s'applique à chaque passage au PIE, que ce soit en entrée ou en sortie.
#### Étape 1 : Contrôles au PIE
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="20360" data-local-id="5b2df83d40fa">Contrôle</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="20372" data-local-id="5a6cf9755f52">Critère de validation</p></div></th></tr></tbody></table>
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="20360" data-local-id="5b2df83d40fa">Contrôle</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="20372" data-local-id="5a6cf9755f52">Critère de validation</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="20399" data-local-id="bd38989d4174">Étiquette RFID</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="20417" data-local-id="f308aee76e6a">Connue (détectable)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="20442" data-local-id="204df4981f67">Hauteur</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="20453" data-local-id="01937de00923">≤ 1900 mm</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="20468" data-local-id="6f90cbe3a3c3">Largeur</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="20479" data-local-id="b25ceb2c9eae">≤ 1100 mm</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="20494" data-local-id="d12fae549e59">Longueur</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="20506" data-local-id="d3322c9e2a06">≤ 1300 mm</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="20521" data-local-id="f2e7fcf8cb35">Poids</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="20530" data-local-id="f19adeb09238">≤ 1250 kg</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="20545" data-local-id="839642c3a5a3">État palette bois</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="20566" data-local-id="e41d77e85445">Correct (les lames du TK ne doivent pas toucher le bois et ne pas manquer de skis de palette)</p></td></tr></tbody></table>
> **Gestion des erreurs PIE :**
>
> - Les erreurs sont configurables par type dans easyS
>
> - Possibilité d'envoyer vers différentes destinations selon le type d'erreur (station error type)
>
> - Exemple : problème de gabarit (scotch qui dépasse) → station de reconditionnement
>
> - Exemple : palette vraiment pas bonne → rejet complet
>
#### Étape 2 : Pesée de la palette
`Poids lignes de stock = Poids total mesuré Poids théorique support (palette bois)`
#### Étape 3 : Répartition du poids entre les lignes de stock
Le poids mesuré est réparti au prorata entre les différentes lignes de stock.
**Source du poids théorique (par ordre de priorité)** : Ancienne pesée (champ Poids de la ligne de stock), puis Poids conversion ITM (champ Poids théorique de la ligne de stock).
**Formules :**
`Ratio = Poids théorique de la ligne / Poids théorique total de toutes les lignes Poids réel de la ligne = (Poids mesuré × Ratio) / Nombre de lignes de cet article`
**Exemple :**
Données : 5 lignes d'article A (ITM = 2 kg), 1 ligne d'article B (ITM = 40 kg). Poids théorique total = (5 × 2) + (1 × 40) = 50 kg. Poids mesuré au PIE = 60 kg (hors palette bois).
Calcul :
`Ratio A = (5 × 2) / 50 = 0,2 (20%) Ratio B = (1 × 40) / 50 = 0,8 (80%) Poids réel A (par ligne) = (60 × 0,2) / 5 = 2,4 kg Poids réel B (par ligne) = (60 × 0,8) / 1 = 48 kg`
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="21973" data-local-id="72d3dd6384f3"><span data-renderer-mark="true">Article</span></p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="21984" data-local-id="36fc0bfeab56"><span data-renderer-mark="true">Poids théorique</span></p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="22003" data-local-id="373e523f1e3a"><span data-renderer-mark="true">Ratio</span></p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="22012" data-local-id="04efa09bd06d"><span data-renderer-mark="true">Poids réel calculé</span></p></div></th></tr></tbody></table>
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="21973" data-local-id="72d3dd6384f3"><span data-renderer-mark="true">Article</span></p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="21984" data-local-id="36fc0bfeab56"><span data-renderer-mark="true">Poids théorique</span></p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="22003" data-local-id="373e523f1e3a"><span data-renderer-mark="true">Ratio</span></p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="22012" data-local-id="04efa09bd06d"><span data-renderer-mark="true">Poids réel calculé</span></p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22036" data-local-id="70ee872f35c7"><span data-renderer-mark="true">A</span></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22041" data-local-id="66319d58be5e"><span data-renderer-mark="true">2 kg (ITM)</span></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22055" data-local-id="5416615e2783"><span data-renderer-mark="true">20%</span></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22062" data-local-id="6bd579e2874c"><span data-renderer-mark="true">2,4 kg</span></p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22074" data-local-id="623b7b7271ef"><span data-renderer-mark="true">B</span></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22079" data-local-id="707138fb0345"><span data-renderer-mark="true">40 kg (ITM)</span></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22094" data-local-id="e9d7a0516ce3"><span data-renderer-mark="true">80%</span></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22101" data-local-id="3f289c9e675d"><span data-renderer-mark="true">48 kg</span></p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22112" data-local-id="b08b9a540ce5"><strong data-renderer-mark="true"><span data-renderer-mark="true">Total</span></strong></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22121" data-local-id="e752c16f0ef6"><span data-renderer-mark="true">50 kg</span></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22130" data-local-id="327b3422ba3d"><span data-renderer-mark="true">100%</span></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22138" data-local-id="9e95dba9033c"><strong data-renderer-mark="true"><span data-renderer-mark="true">60 kg</span></strong></p></td></tr></tbody></table>
#### Étape 4 : Stockage des poids
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="22181" data-local-id="7ec0718b45ea"><span data-renderer-mark="true">Donnée</span></p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="22191" data-local-id="fb77daa4d13b"><span data-renderer-mark="true">Champ WMS - Table stocks</span></p></div></th></tr></tbody></table>
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="22181" data-local-id="7ec0718b45ea"><span data-renderer-mark="true">Donnée</span></p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="22191" data-local-id="fb77daa4d13b"><span data-renderer-mark="true">Champ WMS - Table stocks</span></p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22221" data-local-id="6be29dbf626b"><span data-renderer-mark="true">Poids d'une unité de stock (poids quantité x 1 de la conversion)</span></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22290" data-local-id="0145dbd295f3"><span data-renderer-mark="true">CstAtt01 de la ligne de stock</span></p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22335" data-local-id="dc898a7aba34"><span data-renderer-mark="true">Poids réel pesé (total)</span></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="22404" data-local-id="344cddf306cc"><span data-renderer-mark="true">Champ standard "poids balance" support</span></p></td></tr></tbody></table>
> **Mise à jour des poids :**
>
> - **Mise à jour du stock : OUI** → Le poids calculé est stocké dans CstAtt01 de la ligne de stock
>
> - **Mise à jour de l'ITM : NON** → Le poids théorique de la fiche article reste **inchangé**
>
> - **Raison** : Le poids varie en fonction de la production (début/fin de prod), donc le poids est porté par le stock et pas par la fiche article. Chaque pesée étant unique, la fiche ITM serait constamment mise à jour.
>
Simplification de la mesure et stockage du poids
Étant donné que chaque support est pesé en entrée et sortie du PIE, il suffit simplement de calculer le poids de chaque ligne de stock et stocker linformation dans le champ standard “poids réel” de la ligne de stock de larticle géré au poids variable (avec poids moyen activé car indiqué dans le ROR).
Au moment où la palette passe au PIE, elle sera pesée. La valeur est remontée au WMS.
Il faut ensuite récupérer le poids des lignes de stocks en faisant :
`Poids lignes de stock = Poids total mesuré Poids théorique support (PALETTE_US)`
Le poids calculé doit être réparti au prorata entre les différentes lignes de stock.
Pour cela, on va dabord calculer le ratio de chaque ligne de stock :
`Ratio = Poids théorique de la ligne / Poids théorique total de toutes les lignes`
On utilise les informations de poids des conversions des articles.
Ensuite, on calcul le poids réel de chaque ligne en appliquant le ratio :
`Poids réel de la ligne = (Poids lignes de stock × Ratio)`
On stock cette information dans le champ “Poids réel” de la ligne de stock.
#### Étape 5 : Vérification de la tolérance et blocage
**Condition de blocage** : Si l'écart de poids correspond à un écart d'une ligne de stock (article manquant ou en trop) : blocage via statut de stock et alerte générée.
> **Note** : Le poids est quand même appliqué et recalculé, même en cas de blocage.
> **Cas des palettes multi-références** : Point à définir — faire un prorata ou prendre le plus petit poids en écart d'alerte ? → Simplifier avec un écart en % ?
> **Palettes multi-références : RÉSOLU**
>
> - Utilisation du **plus petit poids unitaire** comme seuil d'alerte
>
> - Si écart > poids du plus petit article → blocage + alerte
>
> - **Blocage via verrou sur le SUPPORT** (pas sur le stock)
>
> - Création d'une **notification SmartUI** (utilisation du système de notifications existant, pas d'event custom)
>
> - L'alerte est générée via le circuit classique de création de notification basé sur un event
>
#### Étape 6 : Remontée vers SAP (cas ZSIZ)
**Condition** : Si le type article vaut ZSIZ (big-bag) (+ autres conditions à définir)
**Action** : Un XML/API d'écart de poids est envoyé vers SAP contenant : code article, poids article, poids palette et/ou poids total → Faire avec un WSC.
**Gestion du timing avec le REF :**
**Problématique** : Au moment du PIE, l'ERP ne connaît peut-être pas encore la palette (REF pas encore envoyé).
**Solution** : Chaque palette présente dans un REF est flaguée dans le WMS. Si palette connue de l'ERP → transaction d'écart de poids immédiate. Si palette inconnue → flag de l'écart, puis à l'envoi du REF, un event déclenche la transaction.
> \*\*Le flag d'écart de poids sera inclus dans le fichier LOC envoyé à SAP.
#### Étape 7 : Post-traitements
Pour la réception production : ASO et ASK désactivés.
#### Différences selon les flux
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="25720" data-local-id="d3e3833611ad">Élément</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="25731" data-local-id="5883ef1fd84f">Production</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="25745" data-local-id="d38540a70f46">Extérieur / Intersites</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="25771" data-local-id="19bac71c30c2">Retour client</p></div></th></tr></tbody></table>
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="25720" data-local-id="d3e3833611ad">Élément</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="25731" data-local-id="5883ef1fd84f">Production</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="25745" data-local-id="d38540a70f46">Extérieur / Intersites</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="25771" data-local-id="19bac71c30c2">Retour client</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="25790" data-local-id="180301d2864f">Étape précédant le PIE</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="25816" data-local-id="9943caf0ec1f">AGV → Convoyeur entrée (direct)</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="25851" data-local-id="5cbed8e2635b">AGV → Poste → AGV → Table d'entrée</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="25889" data-local-id="037f853918ff">AGV → Poste → AGV → Table d'entrée</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="25929" data-local-id="fb8283670936">Filmage possible</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="25949" data-local-id="92e6e3e51058">❌ Non</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="25958" data-local-id="70e73dbaec57">✅ Oui</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="25967" data-local-id="14b2cbbc3936">✅ Oui</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="25978" data-local-id="146e75fd966c">Verrou si écart</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="25997" data-local-id="dd4859f570ce">"Réception"</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="26012" data-local-id="8338461020b6">"Réception"</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="26027" data-local-id="700bcb6c02f0">"Écart inventaire"</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="26051" data-local-id="675833f02c29">Action si écart</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="26070" data-local-id="29369da71dd6">—</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="26075" data-local-id="dda4bcb64e9a">—</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="26080" data-local-id="fb9ca452b46f">Recomptage sacs</p></td></tr></tbody></table>
___
### 3.2 Gestion des rejets
Le processus de rejet est commun à tous les flux.
#### Si PIE OK
Stockage dans l'ASRS (avec ou sans verrou selon l'écart de poids).
#### Si PIE NOK
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="26270" data-local-id="d7c7739bc510">Cas</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="26277" data-local-id="a856724e2ceb">Action</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="26289" data-local-id="223f134d16bc">SSCC lu</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="26300" data-local-id="ffd9d0dbb4e2">Palette reçue dans le WMS puis rejetée</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="26344" data-local-id="87caf9e0dd11">SSCC non lu</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="26359" data-local-id="d9f1cc03b8f7">Création en 900000 + rejet</p></td></tr></tbody></table>
Le rejet PIE reste standard, plus besoin de l'étiquette spécifique.
#### Flux de rejet revu
Rejet au PS → AGV → Poste de travail → PIE entrée (avec chemin qui dépend si production ou non)
> **SIMPLIFICATION MAJEURE DU FLUX DE REJET :**
>
> **Ancienne approche** : Renvoi au poste de travail d'origine avec AGV fourches levées, options complexes
>
> **Nouvelle approche** : Rejet automatique sur **poumon au sol** + **notification SmartUI**
>
> **Justification** :
>
> - Avec une flotte AGV, renvoyer au PK d'origine n'est pas optimal
>
> - Risque de blocage de l'AGV, de la table, du poste
>
> - Perte de temps significative
>
>
> **Nouveau flux** :
>
> 1. PIE NOK → palette dirigée automatiquement vers un **poumon au sol** (zone de rejet)
>
> 2. **Notification SmartUI** envoyée aux opérateurs sur leur workstation
>
> 3. L'opérateur voit la notification "Palette arrivée en rejet"
>
> 4. Il va physiquement à la zone de rejet pour corriger
>
**Mécanisme de flagging :**
- En réception, on flag avec un CstAtt le poste de travail utilisé (ou "Prod" si pas de poste de travail)
- À mapper dans ASN pour la production
#### Au poste de rejet
L'opérateur tente de corriger la cause du rejet.
**Si non corrigeable :**
- Bouton custom qui édite une étiquette "NON CONFORME, RENVOI"
- Crée une tâche de mouvement vers un poumon dédié (zone au sol - à valider avec le client)
**Option Custom Still proposée :**
Quand on demande à l'AGV de sortir une palette en rejet au PK : trajet custom Still où l'AGV garde les fourches levées avec palette disponible pour correction en live. L'opérateur indique ensuite via un écran la nouvelle destination : PIE si tout est OK (le WMS récupère la position de la palette) ou zone au sol.
**Option 2 alternative :** Tâche au PK de rejet → AGV vers zone tampon → avant la dépose, l'opérateur indique si correction possible directement ou non. Si non → zone litige. Si oui → PIE.
> \*\*MISE À JOUR \*\* : Les options "Custom Still" et "Option 2 alternative" sont **abandonnées** au profit de la solution simplifiée (poumon au sol + notification).
#### Destination de rejet selon le flux
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="28417" data-local-id="2ea2e0cb72a9">Flux</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="28425" data-local-id="e79aa3be782c">Destination de rejet</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="28451" data-local-id="ed50fcbac2e1">Production</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="28465" data-local-id="61d5cdc3d9c8"><span data-renderer-mark="true">Poste de travail - Sélection auto</span> <strong data-renderer-mark="true">Poumon au sol</strong></p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="28518" data-local-id="aa955b582b67">Extérieur / Intersites</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="28544" data-local-id="25cca5f8b3f8"><span data-renderer-mark="true">Poste de travail d'origine en priorité</span> <strong data-renderer-mark="true">Poumon au sol + notification</strong></p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="28617" data-local-id="4953d5f02718">Retour client</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="28634" data-local-id="f72edd475011"><span data-renderer-mark="true">Poste de travail d'origine en priorité</span> <strong data-renderer-mark="true">Poumon au sol + notification</strong></p></td></tr></tbody></table>
> **Point ouvert** : Le client doit valider le layout des postes de travail + zones au sol tampon en cas de saturation (ex : saturation rejet).
> \*\*MISE À JOUR: Point résolu - utilisation de poumons au sol pour les rejets.
> **Quid du sujet TRF** : Gestion manuelle avec module AGV si AGV pas prêts.
> **Pour les tests sans AGV, utilisation de routes virtuelles** en configuration easyS.
___
### 3.3 Clôture des réceptions
La clôture concerne les flux passant par un poste de travail : réceptions extérieures / transferts intersites et retours clients.
> **Note** : La réception production (ASN) n'est pas concernée.
#### Principe de fonctionnement
**Paramétrage** : `IsSingleReceipt = true` → une seule réception par ordre d'entrée. Le WMS ne gère pas de reliquats automatiques. Si réception incomplète, c'est SAP qui crée une nouvelle livraison si nécessaire.
**Messages** : REF standard, LOC (sur delta de 5min sur palette crée/déplacée/supprimée)
#### Deux niveaux de clôture
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="29657" data-local-id="0551b4e99b4b">Niveau</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="29667" data-local-id="35d84deaecc1">Description</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="29682" data-local-id="130cb4c5b8f0">Message ERP</p></div></th></tr></tbody></table>
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="29657" data-local-id="0551b4e99b4b">Niveau</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="29667" data-local-id="35d84deaecc1">Description</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="29682" data-local-id="130cb4c5b8f0">Message ERP</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="29699" data-local-id="8776268885fd">Réception</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="29712" data-local-id="457665cd7244">Clôture d'une livraison physique</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="29748" data-local-id="e9cabad7397d">REF</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="29757" data-local-id="7d3008278f45">Ordre d'entrée (OE)</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="29780" data-local-id="191c670e140c">Clôture de la commande d'achat complète</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="29823" data-local-id="4a46894aba03">ROF</p></td></tr></tbody></table>
#### Contenu du message REF
Contenu des messages REF et ROF : Numéros de conteneurs réceptionnés, lignes de stocks associées, emplacements de rangement (REF uniquement).
**Custom attributes stock remontés dans le REF :**
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="30049" data-local-id="cffe36729e31">Attribut</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="30061" data-local-id="478f378e5798">Description</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="30078" data-local-id="f07e9d2296cc">Code produit SAP</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="30098" data-local-id="83287af21c75">Identifiant produit côté ERP</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="30132" data-local-id="a1702144ffd2">Code propriétaire réel</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="30158" data-local-id="929aeaeb4b1a">Propriétaire effectif du stock</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="30194" data-local-id="a419eca035d7">Description courte</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="30216" data-local-id="61e8f6b5420e">Libellé article</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="30237" data-local-id="89cdbbe06d54">Pays de destination</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="30260" data-local-id="ae9634b0fca5">Pays cible pour le produit</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="30292" data-local-id="5814f5dbdd5d">Lot SAP</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="30303" data-local-id="a51928519e69">Numéro de lot ERP</p></td></tr></tbody></table>
**Zone de stockage** : Le REF inclut la zone de stockage (macro-emplacement) pour chaque palette. Structure : une zone de stockage par TK + zones externes.
#### Timing d'envoi du REF
**Déclenchement** : Le message REF est envoyé à la clôture manuelle de la réception (action opérateur), même si toutes les palettes ne sont pas encore passées au PIE.
> **Note** : L'ERP aura une zone de stockage connue en dehors du magasin automatique et pourra donc créer les palettes de son côté. Les palettes non encore stockées en ASRS auront une zone de stockage correspondant à leur position actuelle (quai, poste de travail, etc.).
#### Déclenchement
- **Notification automatique** : EasyWMS informe l'opérateur lorsque toutes les palettes de l'image de quai ont été traitées
- **Clôture réception** : `AutoCloseReception = false`. L'opérateur doit fermer manuellement la réception, peu importe son taux de finalisation ou présence d'écart.
- **Clôture OE** : Automatique **Autoriser**
**Règle de clôture** : Si fin de réception et pourcentage en dessous du prévu OU au-dessus mais tolérance respectée → on clôture quand même (custom).
> - Sur TRF : **ne pas proposer de fermer la réception quand elle est complète**
>
#### Cas selon les écarts
**Cas 1 : Quantités exactes**
L'opérateur valide la fin de réception. Tous les conteneurs sont validés au PIE. Message REF → SAP. Clôture OE. Message ROF → SAP.
**Cas 2 : Quantités dans les tolérances**
Notification d'écart affichée. Si l'opérateur accepte → clôture OE.
**Cas 3 : Quantités hors tolérances**
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="31825" data-local-id="e11d9ca6a632">Situation</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="31838" data-local-id="bdb5656b01fb">REF</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="31845" data-local-id="df22758cb679">ROF</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="31852" data-local-id="5fcdc1fb8a2c">Action</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="31864" data-local-id="1451319c720e">Réception complète dans la tolérance</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="31907" data-local-id="76cf5ce41c42">✅ Envoi autorisé</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="31928" data-local-id="5cbb8a9ff8ec">✅ Envoi autorisé</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="31949" data-local-id="304e279d9772">Flux nominal</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="31976" data-local-id="dec145e71e3f">Réception incomplète dans la tolérance</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="32019" data-local-id="f436f1ccdaf2">✅ Envoi autorisé</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="32040" data-local-id="2c36fb31e6d6">✅ Envoi autorisé</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="32061" data-local-id="7a57db7e40ba">SAP gère le reliquat</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="32088" data-local-id="59e5ea3a0fca">Réception <strong data-renderer-mark="true">hors tolérance</strong></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="32127" data-local-id="ffaf7ae92b49">✅ Envoi autorisé</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="32148" data-local-id="d2459059ac64">⛔ <strong data-renderer-mark="true">Bloqué</strong></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="32165" data-local-id="e4060d63215e">Manager intervient</p></td></tr></tbody></table>
Bloquer la fermeture de l'OE et donc l'envoi du ROF si hors tolérance, jusqu'à régularisation par le manager dans SAP.
**Mécanisme de blocage ROF :**
- L'OE est flagué avec un CstAtt = true si écart > % tolérance
- Le bouton "Annuler réception de reliquat" s'affiche uniquement pour les managers si CstAtt = true
- Seul un chef d'équipe peut clôturer l'OE (après vérifications et régularisation dans SAP)
> Sur la vue des ordres d'entrée, checker le CstAtt pour ne pas rendre le bouton visible quand on est hors écart.
#### Réception excédentaire (> % autorisé)
Le WMS bloque. Solutions possibles :
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="32794" data-local-id="87c01f6c5b61">Solution</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="32806" data-local-id="5635ffb971e3">Description</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="32823" data-local-id="3e221d92203d">Modifier la commande</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="32847" data-local-id="f05ca68ca4d6">Message ROR UPSERT depuis SAP</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="32882" data-local-id="be372319866d">Réception aveugle</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="32903" data-local-id="0d68844b5623">Sans lien fournisseur (nécessite gestion REF BLIND)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="32960" data-local-id="91155fa368dd">Nouvelle commande</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="32981" data-local-id="327183193bd3">Créer une nouvelle commande d'achat pour le reliquat</p></td></tr></tbody></table>
> **Point ouvert** : En cas de surplus non réceptionné, hors tolérance, impossible à réceptionner : quelle solution ? Modifier le ROR ? Ajustement manuel ? Rejet ?
>
> Exemple : J'attends 50, je reçois 100, je peux avoir 80 max. Quid des 20 qui n'existent pas informatiquement sur la palette virtuelle ? Comment demander à l'AGV de la déplacer en zone litige ? Quelles actions ?
>
> → Solution : Intervention manuelle responsable pour modifier ROR ou renvoyer le surplus.
___
### 3.4 Constitution mono-référence
Les palettes à destination de l'ASRS doivent être autant que possible mono-référence.
**Processus (au poste de travail) :**
Si la palette reçue est multi-référence : l'opérateur dépose manuellement une palette vide (non géré par le WMS) sur une table de préparation disponible, il effectue le tri de marchandise, et chaque palette résultante = une seule référence.
> Le process de constitution mono-référence est **standard**. L'opérateur peut faire du mono-référence ou du multi-référence selon les cas. Pas de développement spécifique.
___
### 3.5 Libération quai / image de quai
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="34110" data-local-id="6261ab5174fc">Élément</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="34121" data-local-id="7b4ecade5b5d">Mode de libération</p></div></th></tr></tbody></table>
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="34110" data-local-id="6261ab5174fc">Élément</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="34121" data-local-id="7b4ecade5b5d">Mode de libération</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="34145" data-local-id="6d41e5a37afa">Image de quai</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="34162" data-local-id="fb0bae4bed06">Automatique — lorsque toutes les tâches AGV ont été exécutées</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="34229" data-local-id="f41d46148c49">Quai</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="34237" data-local-id="aa986f584036">Manuel — un utilisateur déclenche la libération une fois le véhicule parti</p></td></tr></tbody></table>
> **Vérifications supplémentaires :**
>
> - La libération de l'image de quai se fait quand il n'y a **plus de palettes dessus** (vérification via supports présents)
>
> - Pour l'assignation en **expédition** : vérifier si l'image de quai a des supports associés à un OE de réception → bloquer
>
> - Pour l'assignation en **réception** : vérifier si l'image de quai a des supports associés à un OS → bloquer
>
> - Pas de blocage/libération explicite, juste des **checks au moment de l'assignation**
>
___
## 4\. Gestion des modes de postes de travail
### Principe général
- Mode d'un poste de travail : unique, choix manuel
- Pas de mode à la carte multi-sélection
- Pas de choix automatique par le WMS
- Le client choisit le mode manuellement, le WMS s'adapte
> **MISE À JOUR MODE ESCLAVE ABANDONNÉ :**
>
> **Ancienne approche** : Mode 3 tables ou mode 6 tables (esclave) avec vérifications complexes pour éviter les conflits entre opérateurs adjacents.
>
> **Nouvelle approche** : Pas de mode custom, **intelligence simple**
>
> **Nouveau fonctionnement :**
>
> 1. L'opérateur ouvre son poste de travail (PV1 ou PV2) en choisissant le mode de travail parmi ceux autorisés par son manager
>
> 2. Si le poste adjacent est déjà ouvert → **message d'avertissement** : "Attention, le poste PVx est déjà ouvert. Voulez-vous quand même ouvrir ?"
>
> 3. L'opérateur peut confirmer ou annuler
>
> 4. Pas de blocage technique, juste un avertissement
>
>
> **Justification :**
>
> - Les opérateurs sont physiquement à ~2 mètres l'un de l'autre
>
> - Ils peuvent se coordonner verbalement
>
> - Les AGV ont des capteurs de sécurité et demandent l'autorisation de dépose
>
> - Trop de cas complexes à gérer avec un mode esclave custom
>
> - L'AGV amène toujours la palette au centre du PV actif
>
>
> **Développement**
>
> - Message d'avertissement à l'ouverture du poste
>
> - Vérification si le poste conjoint est déjà ouvert (via support présent ou poste en mode réception)
>
> - Workflow action sur le end process pour fermer le poste
>
### Choix par le manager
Choix du mode de travail par le manager via une vassist dans la vue des stations.
Avec système de séquence pour prioriser les modes.
**Impacts :**
- L'opérateur ne peut choisir son mode de travail que parmi ceux autorisés sur le PV sur lequel il se connecte
- Le module AGV ne doit plus envoyer les tâches vers ce poste
**Comportement** : Si le poste est dans une réception en cours, au prochain scan le système s'adapte.
> - Paramètres SmartUi pour définir les modes autorisés par poste
>
### Job de création de tâches vers poste de travail
Job qui vérifie les modes de travail pour chaque PK (Poste de travail) :
**Pour chaque PK :**
- Modes possibles (réception, picking, certif)
- Mode actif (ex : réception)
- → On envoie uniquement des tâches correspondant au mode actif
**Logique du job :**
1. Identifier les PK avec 0 tâche en généré / en attente
2. Vérifier les TP disponibles (les 3) (pourquoi ???)
3. Pour chaque PK :
- Récupérer les modes autorisés avec priorité associée (paramètre + vassist)
- Si réception en priorité 1 : vérifier s'il y a des réceptions → créer des tâches
- Récupérer la liste des supports fictifs triée par date de création
- Première palette : prendre la première réception, setter le PK (via le CstAtt)
- Puis récupérer les autres palettes
- Si Picking : assignation TP
**Choix du PK** : Parmi la liste disponible définie par le manager.
> - Ce job est **transverse à tous les flux** (réception, picking, certif, échantillonnage, regroupement, recertification)
>
> - C'est le "gros morceau" du développement
>
> - Il gère l'intelligence d'assignation des tâches aux postes de travail en fonction des modes et priorités
>
___
## 5\. Tableau comparatif
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="37928" data-local-id="f290e5489c97">Élément</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="37939" data-local-id="1683fc733fe9">Production</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="37953" data-local-id="7f697dc9bb0e">Externe / Intersite</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="37976" data-local-id="983d9fe86c1b">Retour client</p></div></th></tr></tbody></table>
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="37928" data-local-id="f290e5489c97">Élément</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="37939" data-local-id="1683fc733fe9">Production</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="37953" data-local-id="7f697dc9bb0e">Externe / Intersite</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="37976" data-local-id="983d9fe86c1b">Retour client</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="37995" data-local-id="40bbe8da98c6">Message ERP</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38010" data-local-id="cfb6961b3b89">ASN</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38017" data-local-id="0b43b05ffd81">ROR (DESADV)</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38033" data-local-id="7e53e7c0b984">ROR (ORDRSP)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38051" data-local-id="575136794e21">InboundType</p></td><td rowspan="1" colspan="1" colorname=""></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38070" data-local-id="4d0e33db496a">0 (Standard)</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38086" data-local-id="958350fb689d">1 (Return)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38102" data-local-id="5bdf05ee2d9c">Création lignes non prévues</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38133" data-local-id="19527d560052">❌</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38138" data-local-id="a1f69dc702f2">❌</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38143" data-local-id="06d712faaf4f">✅</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38150" data-local-id="7a58961d6885">Prompt big-bag</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38168" data-local-id="ba1c344ba46f">❌</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38173" data-local-id="dc4399ea8fd8">✅</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38178" data-local-id="bdca0ec00976">✅</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38185" data-local-id="9b456117b292">Prompt type de poste (3/6 TP)</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38218" data-local-id="2e32997fd0be">❌</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38223" data-local-id="3f671bb44f4c">❌</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38228" data-local-id="d6c9d28e5aa7"><span data-renderer-mark="true">✅</span> <strong data-renderer-mark="true">❌ Abandonné</strong></p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38247" data-local-id="bdd4b4e87136">Impression étiquette déclaration</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38283" data-local-id="967b0113beaf">❌</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38288" data-local-id="517ef9ed82a4">✅</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38293" data-local-id="2e4b67b902e1">✅</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38300" data-local-id="70a10754e048">Passage poste de travail</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38328" data-local-id="dad477eb8427">❌</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38333" data-local-id="2e21063dcb12">✅</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38338" data-local-id="1a10cb1b2cb2">✅</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38345" data-local-id="41bf28c2302f">Requête API si lot inconnu</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38375" data-local-id="7c619265c559">❌</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38380" data-local-id="2d6a16b465f6">❌</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38385" data-local-id="f07e66e4d26b">✅</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38392" data-local-id="98bce1e25ddd">Vérification lot vendu</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38418" data-local-id="71b51ee264fc">❌</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38423" data-local-id="0d122e9f5a86">❌</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38428" data-local-id="92a40229fb73">✅</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38435" data-local-id="04cbf637b008">Flag "À anoxier"</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38455" data-local-id="3b8f30785f9d">❌</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38460" data-local-id="fedc467d0bea">✅</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38465" data-local-id="f5f85d9d466f">✅</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38472" data-local-id="d0ec8b5f8b73">Filmage possible</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38492" data-local-id="d93353cc81cb">❌</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38497" data-local-id="c5ef926d455c">✅</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38502" data-local-id="6f3c6f58b139">✅</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38509" data-local-id="ea7aa387365c">Verrou si écart poids</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38534" data-local-id="694b6ffc4ab6">"Réception"</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38549" data-local-id="6a18dee48b07">"Réception"</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38564" data-local-id="6c5931927b45">"Écart inventaire"</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38588" data-local-id="afc37c2b031c">Action si écart poids</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38613" data-local-id="001297c797bf">—</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38618" data-local-id="aa1d1f2b2b13">—</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38623" data-local-id="fdd6f8c7c856">Recomptage sacs</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38644" data-local-id="93352d613f92">Destination rejet PIE</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38669" data-local-id="7760f8b2672f"><span data-renderer-mark="true">Poste générique</span> <strong data-renderer-mark="true">Poumon au sol</strong></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38702" data-local-id="19f78c8f98a4"><span data-renderer-mark="true">Poste d'origine</span> <strong data-renderer-mark="true">Poumon au sol</strong></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38735" data-local-id="2d5fd8e448ea"><span data-renderer-mark="true">Poste d'origine</span> <strong data-renderer-mark="true">Poumon au sol</strong></p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38770" data-local-id="467ab05c9a1c">Clôture manuelle</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38790" data-local-id="eb00ca4c6dcd">❌</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38795" data-local-id="6cacd1a2d684">✅</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38800" data-local-id="7c0f451190ff">✅</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38807" data-local-id="2fb9d14de334">Destination finale</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38829" data-local-id="c7b24d292a3e">ASRS direct</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38844" data-local-id="a4f66098e3bd">ASRS via poste</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38862" data-local-id="2b4ccbc6c36a">ASRS via poste</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38882" data-local-id="612577a45cf8">Supports virtuels</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38903" data-local-id="afbefdd4c2c6">✅</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38908" data-local-id="93ec6b73b873">❌</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38913" data-local-id="e34eb30f59eb">❌</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38920" data-local-id="fc9003b4f31b">Tolérance quantité</p></td><td rowspan="1" colspan="1" colorname=""></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38946" data-local-id="ebb5ee34ece6">Par ligne ROR (0% si intersite)</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="38981" data-local-id="db63ce8875c9">Illimitée</p></td></tr></tbody></table>
___
## 6\. Points ouverts
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="39018" data-local-id="32de4cf7869a">Sujet</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="39027" data-local-id="b8d3ed1544f5">Statut</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="39039" data-local-id="dab43be0a5ad"><span data-renderer-mark="true">Calcul poids article palettes multi-références au PIE : prorata ou plus petit poids ?</span></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="39129" data-local-id="103321ecec31">✅ <strong data-renderer-mark="true">Résolu</strong> : Plus petit poids en écart d'alerte</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="39181" data-local-id="72eb189cc8bf"><span data-renderer-mark="true">Redirection automatique si entrée production saturée</span></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="39271" data-local-id="0942a86fce23">✅ <strong data-renderer-mark="true">Résolu</strong> : Standard avec routes et distances</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="39323" data-local-id="07d5829486b5">Position étiquette image de quai (devant/côté)</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="39417" data-local-id="6d4cc4d22be1">❓ À valider avec le client</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="39473" data-local-id="ece386b30787"><span data-renderer-mark="true">Layout postes de travail + zones au sol tampon en cas de saturation</span></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="39563" data-local-id="87a6cd70a8c9">✅ <strong data-renderer-mark="true">Résolu</strong> : Poumons au sol pour rejets</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="39615" data-local-id="267af6cd084a">Gestion TRF si AGV pas prêts</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="39709" data-local-id="c22426ec0023">❓ À valider avec le client</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="39765" data-local-id="8dd9614ba038"><span data-renderer-mark="true">Palette non réparable au poste de rejet : poumon au sol ?</span></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="39855" data-local-id="198430fff873">✅ <strong data-renderer-mark="true">Résolu</strong> : Poumon au sol + notification</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="39907" data-local-id="80da6eab143c">Utilisation du ROC (confirmation de réception)</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="40001" data-local-id="0ddcf445b28f">❓ Point à discuter en interne LIMAGRAIN</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="40057" data-local-id="fdd7815539d1">Création fournisseurs/clients à la volée dans EasyWMS</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="40151" data-local-id="2560f431ec55">❓ Faisabilité technique à confirmer</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="40207" data-local-id="4aa2f1ecb76e">Vérifier fonctionnement ExceedPercentageAllowed vs Profil de réception</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="40301" data-local-id="0a79b692d3d5">❓ Action MECALUX</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="40357" data-local-id="b4623d765835">Choix fournisseur imprimantes RFID</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="40451" data-local-id="e8b40defb3aa">❓ Exiger compatibilité ZPL</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="40507" data-local-id="7099c3b62ff1">Détail des cas d'erreur API SAP flux retour client</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="40601" data-local-id="4d179a773c2c">❓ À documenter plus précisément</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="40657" data-local-id="00c6f6377604">Poids variable - vérifier le standard</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="40751" data-local-id="5da793c82cfc">❓ Tester si le standard gère la capture de poids</p></td></tr></tbody></table>
___
## 7\. Explication du point ouvert : Palettes multi-références au PIE
### Contexte
Lorsqu'une palette multi-références (contenant plusieurs articles différents) passe au PIE, le système effectue une pesée globale et doit ensuite répartir le poids mesuré entre les différentes lignes de stock.
Le problème se pose au niveau de la vérification de la tolérance (étape 5 du passage PIE) : comment détecter si un article est manquant ou en trop quand la palette contient plusieurs références ?
### Le problème illustré
**Exemple :**
Une palette contient :
- 5 sacs d'article A (poids théorique : 2 kg/sac = 10 kg)
- 1 sac d'article B (poids théorique : 40 kg/sac = 40 kg)
- Poids théorique total : 50 kg
Au PIE, le poids mesuré est 45 kg → il manque 5 kg.
**Question** : Comment savoir quel article est concerné par l'écart ?
### Les deux options proposées
#### Option 1 : Prorata
On applique l'écart proportionnellement à chaque article selon son ratio de poids.
**Calcul :**
- Écart total = -5 kg (il manque 5 kg)
- Ratio A = 10/50 = 20% → Écart A = -5 × 20% = -1 kg
- Ratio B = 40/50 = 80% → Écart B = -5 × 80% = -4 kg
**Problème** : En réalité, c'est peut-être 1 sac de A qui manque (2 kg), mais le système répartit l'écart sur les deux articles. On perd la précision de détection.
#### Option 2 : Plus petit poids en écart d'alerte
On utilise le poids unitaire le plus faible comme seuil de déclenchement de l'alerte.
**Calcul :**
- Poids unitaire A = 2 kg
- Poids unitaire B = 40 kg
- Seuil d'alerte = 2 kg (le plus petit)
Si l'écart dépasse 2 kg → blocage et alerte.
**Avantage** : On détecte dès qu'un "petit" article pourrait manquer. **Inconvénient** : Risque de faux positifs si la tolérance naturelle de pesée dépasse ce seuil.
### Troisième piste évoquée : Écart en pourcentage
Plutôt que de raisonner en poids absolu, on pourrait définir un seuil de tolérance en % du poids total.
**Exemple** : Si tolérance = 5%, alors :
- Poids théorique = 50 kg
- Tolérance = ±2,5 kg
- Si écart > 2,5 kg → blocage
**Avantage** : Plus simple à paramétrer et moins sensible aux petits écarts naturels de pesée.
### Pourquoi c'est un point ouvert ?
> **🔄 MISE À JOUR RÉUNION - POINT RÉSOLU :**
>
> - **Décision** : Utilisation de l'**Option 2 - Plus petit poids en écart d'alerte**
>
> - On prend le poids unitaire le plus faible parmi tous les articles de la palette
>
> - Si l'écart dépasse ce seuil → blocage + alerte
>
> - Acceptation du risque de faux positifs pour garantir la sécurité
>
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="43248" data-local-id="7e9e4437af1d">Critère</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="43259" data-local-id="ac1479b4b941">Prorata</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="43270" data-local-id="2b3f669d2176">Plus petit poids</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="43290" data-local-id="c454e5834658">% du total</p></div></th></tr></tbody></table>
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="43248" data-local-id="7e9e4437af1d">Critère</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="43259" data-local-id="ac1479b4b941">Prorata</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="43270" data-local-id="2b3f669d2176">Plus petit poids</p></div></th><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="43290" data-local-id="c454e5834658">% du total</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43306" data-local-id="d734cc599173">Précision de détection</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43332" data-local-id="06a648537e89">❌ Faible</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43344" data-local-id="3d3c054cee70">✅ <strong data-renderer-mark="true">Bonne (RETENU)</strong></p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43364" data-local-id="c8106dbb3c65">⚠️ Moyenne</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43380" data-local-id="265cff01d7bd">Risque de faux positifs</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43407" data-local-id="33dfa63dd749">✅ Faible</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43419" data-local-id="9cc2bc459de7">❌ Élevé</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43430" data-local-id="04e172d499d7">✅ Faible</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43444" data-local-id="b9dcce837c73">Simplicité de paramétrage</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43473" data-local-id="c6cf9fb94e9a">⚠️ Moyenne</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43487" data-local-id="85a25f6c6973">⚠️ Moyenne</p></td><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43501" data-local-id="fb28dd5da3cf">✅ Simple</p></td></tr></tbody></table>
___
## 8\. Historique des modifications
<table data-testid="renderer-table" data-number-column="false" data-table-width="760" data-layout="default"><colgroup></colgroup><tbody><tr><th rowspan="1" colspan="1" colorname="" aria-sort="Néant"><div><p data-renderer-start-pos="43551" data-local-id="0846105dad86">Modification</p></div></th></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43569" data-local-id="a0e69fbdf529">Simplification du rejet PIE (passage en standard, plus d'étiquette spécifique)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43705" data-local-id="c8b4262ac048"><span data-renderer-mark="true">Nouveau flux de rejet : PS → AGV → Poste de travail → PIE entrée</span> <strong data-renderer-mark="true">🔄 Remplacé par : Rejet sur poumon au sol + notification</strong></p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43833" data-local-id="6bbf730cefb3">Confirmation AutoCloseReception = false (clôture manuelle opérateur)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="43969" data-local-id="67d07a2035d9">Nouvelle section sur la gestion des modes de postes de travail</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="44105" data-local-id="5dd041e9392d">Ajout du job de création de tâches vers poste de travail</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="44241" data-local-id="e99ad50fc6cd">Précision IsSingleReceipt = true (pas de gestion reliquats WMS)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="44377" data-local-id="12896340461e">Ajout de la gestion des SSCC en réception</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="44513" data-local-id="c3be54b3e71f">Précision sur les transferts inter-sites (tolérance 0%)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="44649" data-local-id="b68d7dca08dd">Ajout des custom attributes stock dans le REF</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="44785" data-local-id="01aa42d48d4e">Précision sur l'interdiction de fermer un OE si hors tolérance</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="44921" data-local-id="0c1de637927c">Clarification timing envoi REF (à la clôture manuelle)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="45057" data-local-id="325f0d812000">Ajout gestion des codes lots inconnus pour retours clients</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="45193" data-local-id="6fb090af04b5">Nouveaux points ouverts issus des ateliers ERP</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="45329" data-local-id="751be2f260aa"><strong data-renderer-mark="true">🔄 NOUVEAU</strong> : Abandon du mode esclave 3/6 tables → message d'avertissement simple</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="45461" data-local-id="38b24e0c0b4b"><strong data-renderer-mark="true">🔄 NOUVEAU</strong> : Simplification gestion rejets → poumon au sol + notification</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="45593" data-local-id="7f5b3e8b0c96"><strong data-renderer-mark="true">🔄 NOUVEAU</strong> : Configuration easyS avec buffer d'entrée (pas de dépose directe PIE)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="45725" data-local-id="0927bada73dc"><strong data-renderer-mark="true">🔄 NOUVEAU</strong> : Routes virtuelles pour tests sans AGV</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="45857" data-local-id="850253d8754c"><strong data-renderer-mark="true">🔄 NOUVEAU</strong> : Mise à jour poids au stock seulement (pas à l'ITM)</p></td></tr><tr><td rowspan="1" colspan="1" colorname=""><p data-renderer-start-pos="45989" data-local-id="7f29ebffcab0"><strong data-renderer-mark="true">🔄 NOUVEAU</strong> : Résolution point ouvert palettes multi-références (plus petit poids)</p></td></tr></tbody></table>