7496aafe64
- Bloquants: mermaid 03-picking/_index reconstitue (archive 11-05), 13 liens vers pages squelette retires, 2 liens recibles (anoxie, application-dictionary) - Conventions: 910 em dashes -> tirets simples, 145 checklists -> puces question, 13 questions resolues barrees - Liens: 9 ancres reparees (slugs GitHub) - Delta: 12 standard_ref remappes, blocs Standard EasyWMS + sections References ajoutes, front matter complete - Glossaire: 15 termes standard deplaces en section rappel avec renvoi - Rapport: limagrain/_lint_report.md (Phase 1 + Phase 2 + re-scan final) - Inclut les pages des sessions precedentes non commitees + CLAUDE.md et consume.log en l'etat
324 lines
15 KiB
Markdown
324 lines
15 KiB
Markdown
---
|
||
title: "Contrôle qualité réception - Vérification poids PIE"
|
||
tags: [inbound, PIE, poids, verrou, inventaire, qualité]
|
||
status: draft
|
||
standard_ref: architecture/galileo-integration.md
|
||
jira_refs: [LIM-66, LIM-108, LIM-114]
|
||
confluence_refs: []
|
||
sources: [FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5.docx, "Réception - LIMAGRAIN - DEV - Confluence.md", LIM-66_Passage_PIE.md, wiki-update-poids-PIE-tolerance.md, "Jira LIM-108 (lecture directe 2026-07-20)"]
|
||
last_updated: 2026-07-20
|
||
author: Arthur
|
||
---
|
||
|
||
# Contrôle qualité réception - Vérification poids PIE
|
||
|
||
> **Résumé** : mécanisme [CUSTOM] de contrôle de poids au passage PIE avec
|
||
> calcul de tolérance par type article, application automatique de verrous
|
||
> et mise à jour du poids unitaire.
|
||
|
||
> **Standard EasyWMS** : → voir [GALILEO Integration](../../architecture/galileo-integration.md)
|
||
> Ce qui suit documente les **spécificités Limagrain** par rapport au standard.
|
||
|
||
## Contexte projet
|
||
|
||
Chez Limagrain, chaque passage au PIE déclenche une vérification de poids
|
||
qui sert d'**inventaire permanent** par pesée. Ce mécanisme s'applique à
|
||
**tous les processus** (réception production, extérieure, retour, picking,
|
||
regroupement, échantillonnage).
|
||
|
||
## Contrôles au PIE
|
||
|
||
Le PIE effectue les contrôles suivants :
|
||
|
||
| Contrôle | Critère de validation |
|
||
|----------|----------------------|
|
||
| Étiquette RFID | Connue (détectable) |
|
||
| Hauteur | ≤ 1900 mm |
|
||
| Largeur | ≤ 1100 mm |
|
||
| Longueur | ≤ 1300 mm |
|
||
| Poids | ≤ 1250 kg |
|
||
| État palette bois | Correct (lames TK ne doivent pas toucher le bois, pas de ski manquant) |
|
||
|
||
> Les erreurs sont configurables par type dans easyS - possibilité
|
||
> d'envoyer vers différentes destinations selon le type d'erreur
|
||
> (station error type). Exemple : scotch qui dépasse → station de
|
||
> reconditionnement, palette vraiment non conforme → rejet complet.
|
||
|
||
## Formule de calcul du poids
|
||
|
||
### Étape 1 - Poids des lignes de stock
|
||
|
||
```
|
||
Poids lignes de stock = Poids total mesuré − Poids théorique support (PALETTE_US)
|
||
```
|
||
|
||
### Étape 2 - Répartition au prorata entre 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 lignes de stock × Ratio
|
||
```
|
||
|
||
**Exemple :** 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).
|
||
|
||
| Article | Poids théorique | Ratio | Poids réel calculé |
|
||
|---------|-----------------|-------|---------------------|
|
||
| A (× 5) | 2 kg (ITM) | 20 % | 2,4 kg par ligne |
|
||
| B (× 1) | 40 kg (ITM) | 80 % | 48 kg |
|
||
| **Total** | 50 kg | 100 % | **60 kg** |
|
||
|
||
### Étape 3 - Mise à jour du poids unitaire (CstAtt01)
|
||
|
||
Le **CstAtt01** de chaque ligne de stock est mis à jour avec le poids
|
||
unitaire mesuré :
|
||
|
||
```
|
||
Poids unitaire mesuré = Poids réel de la ligne / Quantité de la ligne
|
||
```
|
||
|
||
| Donnée | Champ WMS |
|
||
|--------|-----------|
|
||
| Poids unitaire mesuré | **CstAtt01** de la ligne de stock |
|
||
| Poids réel pesé (total) | Champ standard « poids balance » du support |
|
||
| Poids réel de la ligne | Champ « Poids réel » de la ligne de stock |
|
||
|
||
> **Priorité CstAtt01 (répartition uniquement)** : si CstAtt01 a déjà une
|
||
> valeur (pesée précédente), c'est ce poids unitaire qui est utilisé pour
|
||
> la **répartition au prorata** (étape 2), à la place du poids ITM.
|
||
>
|
||
> ⚠️ **Mise à jour 19/06/2026** : cette priorité **ne s'applique plus au
|
||
> seuil de tolérance**. La détection d'écart utilise désormais **toujours
|
||
> le poids ITM théorique** (voir section suivante). L'idée d'utiliser
|
||
> CstAtt01 comme seuil (validée client en mai 2026) a été **abandonnée** :
|
||
> une pesée très erronée fixerait un CstAtt01 aberrant qui fausserait le
|
||
> seuil des passages suivants.
|
||
|
||
> **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), chaque pesée est unique.
|
||
|
||
> Le poids est quand même appliqué et recalculé, même en cas de
|
||
> blocage (verrou).
|
||
|
||
## Vérification de la tolérance et blocage
|
||
|
||
Ref. [LIM-66](https://easywmsfrance.atlassian.net/browse/LIM-66) - **en
|
||
cours de test client (pré-production)**.
|
||
|
||
### Poids de référence pour le seuil de tolérance
|
||
|
||
> ⚠️ **Décision finale (19/06/2026)** : le seuil de tolérance utilise
|
||
> **toujours le poids unitaire ITM théorique** (conversion article), quel
|
||
> que soit l'état de CstAtt01.
|
||
|
||
| Situation | Poids de référence pour le seuil |
|
||
|-----------|----------------------------------|
|
||
| Premier passage PIE **et** passages suivants | **Poids ITM** (conversion article) |
|
||
|
||
**Historique de la décision** : une première approche (mai 2026, validée
|
||
client) prévoyait un seuil **dynamique** basé sur CstAtt01 (dernier poids
|
||
mesuré) si renseigné, sinon ITM. Elle a été **abandonnée le 19/06/2026** :
|
||
si une pesée très erronée fixe un CstAtt01 aberrant, comparer les pesées
|
||
suivantes à ce seuil fausserait la détection. Le seuil est donc revenu au
|
||
poids **théorique ITM**, stable et fiable.
|
||
|
||
> **Note** : CstAtt01 reste calculé et mis à jour à chaque pesée (étape 3)
|
||
> et sert à la **répartition au prorata**, mais **plus** au seuil de
|
||
> tolérance.
|
||
|
||
### [CUSTOM] Palettes mono-référence
|
||
|
||
**Condition de blocage** : si l'écart de poids correspond à un écart
|
||
d'une ligne de stock (article manquant ou en trop → écart ≥ poids
|
||
unitaire **ITM** de l'article) → blocage via verrou sur le **support**
|
||
(pas sur le stock).
|
||
|
||
### [CUSTOM] Palettes multi-références - seuil d'alerte
|
||
|
||
Pour les palettes contenant plusieurs articles différents, le système
|
||
utilise le **plus petit poids unitaire ITM** parmi toutes les lignes de
|
||
stock comme seuil d'alerte. Si l'écart total ≥ ce plus petit poids →
|
||
blocage.
|
||
|
||
### Verrous appliqués
|
||
|
||
Deux verrous possibles selon le flux :
|
||
|
||
| Verrou | Flux | Comportement post-PIE |
|
||
|--------|------|----------------------|
|
||
| **HORS TOLERANCE** | Tous sauf retour client | La palette **entre quand même dans l'ASRS** malgré le verrou |
|
||
| **ECART RETOUR** | Retour client uniquement | La palette est **refusée et envoyée en rejet** (destination gérée par EasyS) |
|
||
|
||
### Gestion de l'erreur
|
||
|
||
- La notification SmartUI custom envisagée initialement a été
|
||
**abandonnée** (barrée dans la spec). Le custom
|
||
`PIE_EventHandler_CheckToleranceWeight_PR` **redirige vers l'erreur de
|
||
poids standard** EasyWMS en cas de dépassement de tolérance.
|
||
- Le verrou est posé sur le **support** (pas sur le stock)
|
||
- Le **flux de rejet PIE** (toutes causes : dimension, poids, étiquette,
|
||
palette bois), avec renvoi au **poste de travail d'origine**, est documenté
|
||
dans [Flux de rejet PIE](../02-stockage/rejet-pie.md) (LIM-114). Il remplace
|
||
l'approche « poumon au sol + notification SmartUI ».
|
||
|
||
### Comportement selon le flux (détail)
|
||
|
||
| Processus | Verrou appliqué | Action |
|
||
|-----------|-----------------|--------|
|
||
| Réception production | HORS TOLERANCE | Stockage ASRS avec verrou |
|
||
| Réception extérieure/intersite | HORS TOLERANCE | Stockage ASRS avec verrou |
|
||
| Retour client (InboundType=1) | ECART RETOUR | Rejet (pas de stockage ASRS) |
|
||
| Picking | HORS TOLERANCE | Stockage avec verrou, recomptage sur poste |
|
||
| Regroupement | HORS TOLERANCE | Stockage avec verrou, recomptage sur poste |
|
||
| Échantillonnage | HORS TOLERANCE | Stockage avec verrou, recomptage sur poste |
|
||
|
||
Dans tous les cas, le poids est quand même appliqué et recalculé.
|
||
|
||
### [CUSTOM] Type ZSIZ - Ajustement automatique
|
||
|
||
Si le type d'article est **ZSIZ** (semi-fini calibré / big-bag), un
|
||
message d'ajustement de stock est envoyé vers SAP via **WSC** contenant
|
||
le poids réel de la HU, **indépendamment de la tolérance**.
|
||
|
||
**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 est inclus dans le fichier **LOC** envoyé
|
||
à SAP
|
||
|
||
## [SIMULATION] Poids théorique en l'absence de poids Galileo (LIM-108)
|
||
|
||
> **Statut (LIM-108)** : en cours de test client (pré-production). Mode de
|
||
> fonctionnement **temporaire** pour la simulation.
|
||
|
||
Lors du passage au PIE, le poids **n'est pas toujours descendu** dans l'event
|
||
Galileo si la palette n'est **pas créée au PIE** (simple passage par la
|
||
station). Dans ce cas, un mode simulation permet de récupérer le **poids
|
||
théorique du conteneur** et de l'utiliser à la place du poids de l'event
|
||
Galileo.
|
||
|
||
Ce mode est gouverné par le toggle `CST_SimulatePIEScale` (voir
|
||
[Paramètres projet - Toggles](../07-admin/parametres-projet.md#toggles)) :
|
||
quand il est actif, le WMS vérifie si l'event PIE porte un poids ; sinon il
|
||
substitue le poids théorique du conteneur. Sans poids récupéré, les règles
|
||
de poids ([formule](#formule-de-calcul-du-poids), tolérance) s'appliquent
|
||
ensuite normalement.
|
||
|
||
## Implémentation technique (AD customs)
|
||
|
||
| Élément AD | Type | Rôle |
|
||
|-----------|------|------|
|
||
| `CST_PIE_ApplyWeightRules_PR` | Workflow | Applique les contrôles et opérations liés au poids au passage PIE. Corrigé (LIM-108, Maxime 18/06/2026) suite à un changement de version. |
|
||
| `PIE_EventHandler_CheckInvalidWeightWithScale_PR` | Workflow | [SIMULATION, LIM-108] Si `CST_SimulatePIEScale` actif : vérifie si l'event porte un poids ; sinon récupère le poids théorique du conteneur et l'utilise. |
|
||
| `PIE_EventHandler_CheckToleranceWeight_PR` | Workflow | Contrôle de tolérance ; redirige vers l'erreur de poids standard en cas de dépassement |
|
||
| `CST_SimulatePIEScale` | Toggle | [SIMULATION, LIM-108] Active la simulation du poids d'event PIE. |
|
||
| `CST_StockView` | Entité | Affiche le CstAtt01 avec le bon type décimal |
|
||
| `CST_Stocks_ForView` | Query | Query de l'entité `CST_StockView` |
|
||
| `StockVList` | View | Affichage du CstAtt01 (poids unitaire mesuré) |
|
||
|
||
## Gestion des verrous
|
||
|
||
### Consultation
|
||
|
||
Vue « Entrepôt → Verrous conteneur » :
|
||
|
||
- Verrou appliqué par conteneur
|
||
- Date d'application
|
||
- Possibilité de débloquer (lever le verrou)
|
||
|
||
### Impact sur l'expédition
|
||
|
||
Un verrou empêchant l'expédition bloque l'assignation du stock à un ordre
|
||
de sortie. Le verrou « Réception » déclenche un **recomptage obligatoire**
|
||
avant tout processus suivant (picking, regroupement, échantillonnage).
|
||
|
||
### [CUSTOM] Dérogation poids
|
||
|
||
Pour les processus de **regroupement** et **échantillonnage**, si la palette
|
||
a un excédent de poids non corrigeable, l'opérateur peut depuis son poste
|
||
de travail **autoriser** la palette à passer le PIE même si hors tolérance.
|
||
|
||
## Post-traitements
|
||
|
||
- Réception production : **ASO et ASK désactivés**
|
||
- Les messages post-PIE ne sont pas générés pour le flux production
|
||
|
||
## Points d'attention
|
||
|
||
⚠️ Le contrôle poids s'applique à **chaque** passage PIE - une palette
|
||
peut passer le PIE plusieurs fois (réception → picking → restockage).
|
||
|
||
⚠️ Le poids est porté par le **stock** (CstAtt01 de la ligne), pas par
|
||
la fiche article ITM - chaque pesée est unique.
|
||
|
||
⚠️ Les palettes avec verrou « Réception » sont prioritaires dans
|
||
l'assignation de stock pour l'échantillonnage (permet de combiner
|
||
recomptage + échantillonnage).
|
||
|
||
⚠️ Verrou posé sur le **support** (pas sur le stock) - différent du
|
||
comportement standard.
|
||
|
||
⚠️ Pour les palettes multi-références, le seuil d'alerte est le plus
|
||
petit poids unitaire **ITM** parmi toutes les lignes de stock.
|
||
|
||
⚠️ Le seuil de tolérance est basé sur le poids **ITM théorique** (fixe),
|
||
pas sur CstAtt01 (décision 19/06/2026). CstAtt01 sert uniquement à la
|
||
répartition au prorata et à l'inventaire par pesée, et n'influence plus
|
||
la détection d'écart.
|
||
|
||
⚠️ [SIMULATION, LIM-108] Le repli sur le poids théorique du conteneur
|
||
(toggle `CST_SimulatePIEScale`) est un mode **temporaire** de simulation :
|
||
il ne doit pas rester actif quand les palettes sont réellement créées et
|
||
pesées au PIE.
|
||
|
||
## Questions ouvertes
|
||
|
||
- **Résolu (19/06/2026)** - Tolérances : le seuil est finalement basé sur
|
||
le poids **ITM théorique** (fixe). L'approche dynamique CstAtt01 > ITM
|
||
(validée client mai 2026) a été abandonnée.
|
||
- **Ouvert** - Envoi d'un **STV** ou non lors de l'ajustement de stock pour
|
||
mettre à jour le poids (@Vincent)
|
||
- **Ouvert** - Valeur du poids palette bois fixe (PALETTE_US) (@Théo)
|
||
- **Ouvert** - Poids variable : vérifier si le standard gère la capture de
|
||
poids avec poids moyen activé (@Nicolas)
|
||
|
||
## Historique des modifications
|
||
|
||
| Date | Auteur | Modification |
|
||
|------|--------|--------------|
|
||
| 2026-05-05 | Arthur | Création initiale depuis AF V1.5 |
|
||
| 2026-05-05 | Arthur | Enrichissement : prorata, multi-ref, verrou support, ZSIZ timing |
|
||
| 2026-05-12 | Arthur | LIM-66 : verrous HORS TOLERANCE / ECART RETOUR, CstAtt01 poids unitaire, comportement post-PIE |
|
||
| 2026-05-13 | Arthur | Clarification tolérance CstAtt01 > ITM pour passages PIE successifs (validation client) |
|
||
| 2026-07-16 | Arthur | LIM-66 : **abandon** du seuil CstAtt01 → retour au poids ITM théorique (décision 19/06) ; notification SmartUI abandonnée (redirection erreur standard) ; ajout éléments AD ; statut pré-production ; point ouvert STV ; rejet ECART RETOUR → LIM-114 |
|
||
| 2026-07-20 | Arthur | LIM-108 (lecture directe, pré-production) : section [SIMULATION] repli sur poids théorique du conteneur quand l'event Galileo PIE ne porte pas de poids (palette non créée au PIE), toggle `CST_SimulatePIEScale`, WF `PIE_EventHandler_CheckInvalidWeightWithScale_PR` ; note correction `CST_PIE_ApplyWeightRules_PR` (changement de version) ; point d'attention mode temporaire ; front matter jira_refs/sources/last_updated |
|
||
|
||
## Références
|
||
|
||
| Source | Type | Date |
|
||
|--------|------|------|
|
||
| FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5 | Analyse fonctionnelle | 28/11/2025 |
|
||
| Réception - LIMAGRAIN - DEV - Confluence | Page ateliers DEV | 2026 |
|
||
| [LIM-66](https://easywmsfrance.atlassian.net/browse/LIM-66) | Ticket Jira (PIE poids/verrous - pré-production) | 2026 |
|
||
| [LIM-108](https://easywmsfrance.atlassian.net/browse/LIM-108) | Ticket Jira (simulation poids PIE - pré-production) | 2026 |
|
||
| [LIM-114](https://easywmsfrance.atlassian.net/browse/LIM-114) | Ticket Jira (flux de rejet PIE) | 2026 |
|
||
| Échange Justine BEUTIN / Olivier (Limagrain) | Validation client (approche mai 2026, révisée 19/06) | mai 2026 |
|