Files
arthur 7496aafe64 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
2026-07-20 12:56:42 +02:00

241 lines
11 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.
---
title: "Échantillonnage - Processus de contrôle qualité"
tags: [picking, échantillonnage, inventaire, qualité, poste, custom, cor, cof]
status: draft
standard_ref: concepts/count.md
jira_refs: [LIM-107, LIM-112]
confluence_refs: []
sources: [FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5.docx, "Jira LIM-107 (lecture directe 2026-07-20)", "Jira LIM-112 (lecture directe 2026-07-20)"]
last_updated: 2026-07-20
author: Arthur
---
# Échantillonnage - Processus de contrôle qualité
> **Résumé** : processus [CUSTOM] d'échantillonnage pour contrôle qualité,
> assimilé à un inventaire dans EasyWMS, avec prélèvement sur poste de travail.
> **Standard EasyWMS** : → voir [Inventory](../../concepts/count.md)
> Ce qui suit documente les **spécificités Limagrain** par rapport au standard.
> **Statut (LIM-112)** : Ouvert. Cette page décrit le **flux complet**
> (message COR → ordre d'inventaire → assignation stock/poste → process
> opérateur → COF). Le **contenu de l'étiquette** relève de LIM-107 (cette
> tâche ne fait que déclencher l'impression au poste).
## Contexte projet
L'échantillonnage sert au contrôle qualité sur une partie des lots
produits. Il consiste à prélever environ 200 grammes dans une partie du
stock sélectionné. Le prélèvement est ensuite analysé pour valider la
qualité du produit fini.
Dans EasyWMS, ce processus est assimilé à un **inventaire** (ordre
d'inventaire).
## Création de l'ordre d'échantillonnage
Deux modes de création :
| Mode | Origine | Détail |
|------|---------|--------|
| Interface ERP | Message **COR** | Spécifie un lot à échantillonner |
| Manuel | Interface EasyWMS | Choix d'un lot par l'opérateur |
L'ordre d'inventaire est créé avec une **priorité 3 (basse)**.
[CUSTOM] Un champ texte libre est disponible pour des **consignes**
rattachées à l'ordre (porté par `CstAtt02` de la ligne d'inventaire - voir
[AD Customs](../07-admin/ad-customs.md#cstatt-ligne-dordre-dinventaire)).
### Mapping du message COR (SAP → WMS)
| Balise | Valeur |
|--------|--------|
| `Code` | Numéro du lot d'inspection SAP |
| `Description` | `ECHANTILLONNAGE` (déclencheur de création de l'ordre) |
| `Priority` | 3 (basse) |
| `CstAtt01` | Nombre de palettes à inventorier (toujours 4 d'après SAP) |
| `CstAtt02` | Texte libre de consignes rattaché à l'ordre |
| `ProductCode` | Code **lot** SAP |
| `LotCode` | Code **produit** SAP |
| `Color` / `Source` / `Size` | Propriétaire réel SAP / Description produit / Destination (pays) |
> ⚠️ Mapping **inversé** `ProductCode` / `LotCode` : côté SAP,
> `ProductCode` porte le code **lot** et `LotCode` le code **produit**.
## [CUSTOM] Assignation du stock
L'assignation diffère selon le mode de création :
### Création par interface ERP
- Maximum **`CstAtt01` palettes** échantillonnées (valeur du COR, toujours
4 d'après SAP) ; moins si le stock total n'atteint pas `CstAtt01`.
- [CUSTOM] Les palettes avec un verrou d'écart de poids (« Production »)
sont **prioritaires** (vérification simultanée au recomptage).
- **Prérequis** de chaque palette assignée : allée non bloquée, palette
rangée, non client, aucune tâche associée au support.
- **Ordre de sélection** (`OrderByDesc`) : palette bloquée d'abord, puis
par profondeur (la **moins profonde** en premier).
### Création manuelle
- Nombre de palettes choisi par l'opérateur (input custom). `CstAtt01` est
saisissable/éditable après la création de l'inventaire manuel, mais
**plus une fois l'inventaire lancé**.
> **Règle transverse** : un article en cours d'échantillonnage **n'est plus
> disponible** pour les ordres de sortie (comportement standard d'un
> inventaire).
## Assignation poste de travail
- Automatique, à condition que le poste soit ouvert et autorise le
mode « échantillonnage » (= mode **Inventaire** EasyWMS).
- L'orchestration passe par le **Mega Job d'assignation PK** (LIM-70), qui
appelle un sous-workflow dédié (développé dans LIM-112) pour trouver et
assigner le bon PK. Si le support est un **Big-bag**, sélection d'un PK
qui l'autorise. Voir
[Mini jobs d'assignation au PK](job-assignation-pk.md).
- Si aucun poste paramétré en mode échantillonnage → tâches en attente.
- Une fois le poste assigné → création des tâches de mouvement.
## Processus sur poste de travail
```mermaid
flowchart TD
ORDRE[Ordre échantillonnage] --> ASSIGN[Assignation stock]
ASSIGN --> POSTE[Assignation poste auto]
POSTE --> TACHE[Tâches mouvement créées]
TACHE --> ARRIVE[Palette arrive sur TP]
ARRIVE --> VERROU{Verrou « Réception » ?}
VERROU -->|Oui| RECOUNT[Recomptage]
VERROU -->|Non| PRELEV[Prélèvement ~200g]
RECOUNT --> PRELEV
PRELEV --> ETIQ[Impression étiquette échantillonnage]
ETIQ --> SCOTCH[Scotch sac ouvert]
SCOTCH --> FILM[Choix filmage]
FILM --> EVAC[Évacuation → PIE → stockage]
EVAC --> NEXT{Palette suivante ?}
NEXT -->|Oui| ARRIVE
NEXT -->|Non| FIN[Fin ordre]
```
Les 3 tables de préparation peuvent être occupées simultanément.
Le processus est démarré et effectué sur **une seule palette à la fois**.
### Séquence opérateur
1. [CUSTOM] Si verrou « Réception » → recomptage avant échantillonnage
(à développer en **standalone**, car réutilisé dans plusieurs process)
2. Prendre une pochette d'échantillonnage vide (hors EasyWMS)
3. Effectuer un prélèvement dans un des sacs (~200g, hors EasyWMS)
4. Déposer le prélèvement dans la pochette (hors EasyWMS)
5. Éditer et imprimer une **étiquette d'échantillonnage** (LIM-107)
6. Coller l'étiquette sur la pochette (hors EasyWMS)
7. Scotcher le sac ouvert sur la palette (hors EasyWMS)
8. [CUSTOM] Choix du programme de filmage depuis une vue spécifique
9. **Valider la ligne d'inventaire**
10. Évacuer la palette vers le stockage : l'AGV déplace le conteneur du
poste vers la table d'entrée ; la palette est filmée ou non avant de
passer le PIE
## Étiquette d'échantillonnage (LIM-107)
> **Statut (LIM-107)** : en revue de code.
L'étiquette d'échantillonnage (étape 5 ci-dessus) est imprimée au **format
A5** sur l'**étiqueteuse du poste de travail** (et non sur les étiqueteuses
automatiques d'expédition), via le **flux inventaire COR/COF** (report
`CST_RPT_ECHANTILLONAGE`). Voir aussi
[Flux expédition - Étiquettes par type](../04-outbound/flux-expedition.md#contenu-des-étiquettes-dexpédition-par-type-lim-107).
Contenu de l'étiquette :
| # | Champ |
|---|-------|
| 1 | `ITM.CstAtt01` |
| 2 | `ITM.CstAtt03` |
| 3 | `ITM.CstAtt07` |
| 4 | `ITM.CstAtt08` |
| 5 | `ITM` - Famille de l'article |
| 6 | `ProductCode` de la ligne d'inventaire |
| 7 | `ITM.CstAtt10` |
| 8 | `Stock` - Attribut taille |
| 9 | « `_ / _` » laissé vide (complété au stylo par l'opérateur) |
| 10 | `ITM` - Premier alias différent du code article |
| 11 | `COR.Code` encodé en 128 |
| 12 | `COR.Code` |
## Passage PIE post-échantillonnage
Contrôle identique aux autres processus :
- Dimensions max : 1300 × 1100 × 1900 mm
- Poids max : 1250 kg
- Étiquette RFID connue
- État palette bois correct
[CUSTOM] Poids de référence recalculé + vérification avec tolérance
(voir [Contrôle qualité réception](../01-inbound/controle-qualite-reception.md)).
Si PIE NOK → rejet vers poste d'origine. Possibilité de forcer le
passage en cas d'excédent de poids non corrigeable.
## Clôture et émission du COF (LIM-112)
À la clôture de l'ordre d'inventaire (ou en cas d'**annulation**), le WMS
émet le message **COF** (WMS → SAP) :
| Balise | Description |
|--------|-------------|
| `CountCode` | Numéro du lot d'inspection |
| `Status` | `Closed` (effectué) ou `Cancelled` (annulé) |
| `UpdateDate` | Date/heure du changement d'état |
Le traitement du COF côté SAP est **hors périmètre** (équipes IT Limagrain).
## Points d'attention
⚠️ L'échantillonnage est un processus d'**inventaire** dans EasyWMS,
pas un processus de picking - important pour le paramétrage des modes
de poste.
⚠️ Les palettes avec verrou « Production » (écart poids) sont traitées
en priorité pour optimiser le recomptage.
⚠️ La quantité prélevée (~200g) n'est pas déduite du stock dans EasyWMS
(négligeable par rapport au poids total).
⚠️ Des **big-bags** peuvent être présents dans ce process (LIM-112) → le
poste assigné doit autoriser les big-bags.
## Questions ouvertes
- [x] ~~Le prélèvement de 200g est-il déduit du stock ou négligé ? (@Nicolas)~~**Résolu** (LIM-112) : négligé, non déduit du stock
- ❓ Programme de filmage exact (@Théo)
- [x] ~~Format de l'étiquette d'échantillonnage - validé ? (@Justine)~~ → Résolu (LIM-107) : format **A5**, contenu défini (12 champs), report `CST_RPT_ECHANTILLONAGE`, imprimé sur l'étiqueteuse du poste de travail
- Consignes d'échantillonnage : le mapping COR porte les consignes sur
`CstAtt02`, mais le commentaire du ticket évoque `CstAtt01` → point à
confirmer avec le client (mail à faire, @Arthur)
- Dépendance `CstAtt10` (Stage) côté ITM : requis pour l'étiquette
d'échantillonnage (LIM-107) ; à vérifier en préprod (@Nicolas) → voir
[Questions ouvertes](../08-transverse/questions-ouvertes.md)
## Historique des modifications
| Date | Auteur | Modification |
|------|--------|--------------|
| 2026-05-05 | Arthur | Création initiale depuis AF V1.5 |
| 2026-07-20 | Arthur | LIM-107 (lecture directe) : section « Étiquette d'échantillonnage » (format A5, 12 champs, report `CST_RPT_ECHANTILLONAGE`, impression étiqueteuse poste via flux COR/COF) ; question format d'étiquette résolue ; front matter jira_refs/sources/last_updated |
| 2026-07-20 | Arthur | LIM-112 (lecture directe, Ouvert) : flux complet - mapping COR (Code/Description/Priority 3/CstAtt01 nb pal/CstAtt02 consignes/ProductCode-LotCode inversés/Color-Source-Size) ; assignation stock refondue (CstAtt01, prérequis palette, OrderByDesc bloquée puis profondeur, éditabilité CstAtt01 manuel) ; règle transverse indisponibilité stock ; orchestration Mega Job PK LIM-70 + sous-workflow + big-bag ; séquence opérateur (recomptage standalone, validation ligne inventaire, AGV→table entrée→PIE) ; nouvelle section « Clôture et émission du COF » ; big-bag confirmé ; 200g non déduit résolu ; 2 questions ouvertes (consignes CstAtt01/02, dépendance CstAtt10 Stage) ; front matter jira_refs +LIM-112/sources/tags |
## Références
| Source | Type | Date |
|--------|------|------|
| FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5 | Analyse fonctionnelle | 28/11/2025 |
| [LIM-107](https://easywmsfrance.atlassian.net/browse/LIM-107) | Ticket Jira (étiquettes expédition/échantillonnage, en revue de code) | 2026 |
| [LIM-112](https://easywmsfrance.atlassian.net/browse/LIM-112) | Ticket Jira (process échantillonnage complet COR→COF, Ouvert) | 2026 |