lint(limagrain): corrections completes Phase 1+2
- 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
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
---
|
||||
title: "Contrôle qualité réception — Vérification poids PIE"
|
||||
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]
|
||||
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]
|
||||
last_updated: 2026-05-13
|
||||
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
|
||||
# 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
|
||||
@@ -39,20 +39,20 @@ Le PIE effectue les contrôles suivants :
|
||||
| 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é
|
||||
> 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
|
||||
### É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
|
||||
### É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.
|
||||
@@ -78,7 +78,7 @@ Poids mesuré au PIE = 60 kg (hors palette bois).
|
||||
| B (× 1) | 40 kg (ITM) | 80 % | 48 kg |
|
||||
| **Total** | 50 kg | 100 % | **60 kg** |
|
||||
|
||||
### Étape 3 — Mise à jour du poids unitaire (CstAtt01)
|
||||
### Étape 3 - Mise à jour du poids unitaire (CstAtt01)
|
||||
|
||||
Le **CstAtt01** de chaque ligne de stock est mis à jour avec le poids
|
||||
unitaire mesuré :
|
||||
@@ -93,15 +93,20 @@ Poids unitaire mesuré = Poids réel de la ligne / Quantité de la ligne
|
||||
| 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** : si CstAtt01 a déjà une valeur (pesée
|
||||
> précédente), c'est ce poids unitaire qui est utilisé comme référence
|
||||
> pour **tous les calculs du passage PIE** — ratio (étape 2) **et**
|
||||
> seuil de tolérance (vérification ci-dessous) — à la place du poids
|
||||
> théorique ITM.
|
||||
> **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
|
||||
> **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
|
||||
> **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.
|
||||
|
||||
@@ -110,40 +115,43 @@ Poids unitaire mesuré = Poids réel de la ligne / Quantité de la ligne
|
||||
|
||||
## Vérification de la tolérance et blocage
|
||||
|
||||
Ref. [LIM-66](https://easywmsfrance.atlassian.net/browse/LIM-66) — en
|
||||
revue de code.
|
||||
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
|
||||
|
||||
Le "poids unitaire de l'article" utilisé comme seuil de tolérance suit
|
||||
la même règle de priorité que le ratio :
|
||||
> ⚠️ **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 utilisé |
|
||||
|-----------|---------------------------|
|
||||
| CstAtt01 renseigné (pesée précédente) | **CstAtt01** (poids unitaire mesuré) |
|
||||
| CstAtt01 vide (premier passage PIE) | **Poids ITM** (conversion article) |
|
||||
| Situation | Poids de référence pour le seuil |
|
||||
|-----------|----------------------------------|
|
||||
| Premier passage PIE **et** passages suivants | **Poids ITM** (conversion article) |
|
||||
|
||||
**Conséquence sur les passages successifs** : après un premier passage
|
||||
PIE qui recalibre le poids unitaire (ex. ITM = 10 kg, mesuré = 30 kg),
|
||||
le seuil de tolérance au passage suivant sera basé sur 30 kg (CstAtt01).
|
||||
Un écart de 20 kg (2 unités au poids ITM d'origine) ne déclenchera pas
|
||||
de blocage car il reste inférieur à 1 unité au poids recalibré (30 kg).
|
||||
**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.
|
||||
|
||||
> Validé par le client (échange Justine BEUTIN / Olivier, mai 2026).
|
||||
> **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 de référence, cf. tableau ci-dessus) → blocage via verrou sur
|
||||
le **support** (pas sur le stock) + alerte SmartUI.
|
||||
unitaire **ITM** de l'article) → blocage via verrou sur le **support**
|
||||
(pas sur le stock).
|
||||
|
||||
### [CUSTOM] Palettes multi-références — seuil d'alerte
|
||||
### [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 de référence** (CstAtt01 si
|
||||
renseigné, sinon ITM, par ligne) comme seuil d'alerte. Si l'écart
|
||||
total ≥ ce plus petit poids → blocage + alerte.
|
||||
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
|
||||
|
||||
@@ -154,12 +162,17 @@ Deux verrous possibles selon le flux :
|
||||
| **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) |
|
||||
|
||||
### Notification
|
||||
### Gestion de l'erreur
|
||||
|
||||
- Création d'une **notification SmartUI** via le circuit classique de
|
||||
notifications basé sur un event (pas d'event custom)
|
||||
- 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)
|
||||
- Notification dédiée au rejet générée dans le cas ECART RETOUR
|
||||
- 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)
|
||||
|
||||
@@ -174,7 +187,7 @@ Deux verrous possibles selon le flux :
|
||||
|
||||
Dans tous les cas, le poids est quand même appliqué et recalculé.
|
||||
|
||||
### [CUSTOM] Type ZSIZ — Ajustement automatique
|
||||
### [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
|
||||
@@ -191,6 +204,36 @@ le poids réel de la HU, **indépendamment de la tolérance**.
|
||||
- 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
|
||||
@@ -220,33 +263,41 @@ de travail **autoriser** la palette à passer le PIE même si hors tolérance.
|
||||
|
||||
## Points d'attention
|
||||
|
||||
⚠️ Le contrôle poids s'applique à **chaque** passage PIE — une palette
|
||||
⚠️ 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.
|
||||
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
|
||||
⚠️ 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 parmi toutes les lignes de stock.
|
||||
petit poids unitaire **ITM** parmi toutes les lignes de stock.
|
||||
|
||||
⚠️ Après un passage PIE qui recalibre fortement le poids (ex. ITM
|
||||
10 kg → CstAtt01 30 kg), le seuil de tolérance au passage suivant
|
||||
est proportionnellement plus large. C'est le comportement attendu :
|
||||
chaque pesée fait foi pour la suivante.
|
||||
⚠️ 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
|
||||
|
||||
- [x] Tolérances : le seuil est dynamique (CstAtt01 > ITM), validé par
|
||||
le client (mai 2026). Pas de valeur fixe par type article.
|
||||
- [ ] Valeur du poids palette bois fixe (PALETTE_US) (@Théo)
|
||||
- [ ] Poids variable — vérifier si le standard gère la capture de
|
||||
- **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
|
||||
@@ -257,6 +308,8 @@ chaque pesée fait foi pour la suivante.
|
||||
| 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
|
||||
|
||||
@@ -264,5 +317,7 @@ chaque pesée fait foi pour la suivante.
|
||||
|--------|------|------|
|
||||
| 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 | 2026 |
|
||||
| Échange Justine BEUTIN / Olivier (Limagrain) | Validation client | mai 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 |
|
||||
|
||||
Reference in New Issue
Block a user