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