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: "Gestion des camions — Arrivée, quais et déclaration image de quai"
|
||||
title: "Gestion des camions - Arrivée, quais et déclaration image de quai"
|
||||
tags: [inbound, camion, quai, TRF, image-de-quai, étiquette, SmartUI]
|
||||
status: draft
|
||||
standard_ref: concepts/reception.md
|
||||
jira_refs: [LIM-62, LIM-63, LIM-64, LIM-65]
|
||||
jira_refs: [LIM-62, LIM-63, LIM-64, LIM-65, LIM-96, LIM-97, LIM-102]
|
||||
confluence_refs: []
|
||||
sources: [LIM-62_gestion-camions.md, LIM-63_64_65.md]
|
||||
last_updated: 2026-05-06
|
||||
sources: [LIM-62_gestion-camions.md, LIM-63_64_65.md, "Jira LIM-96 (V2, préprod, revue de code validée 25/06)", "Jira LIM-97 (Gestion camions V2, préprod, validé Vincent 02/07)"]
|
||||
last_updated: 2026-07-20
|
||||
author: Arthur
|
||||
---
|
||||
|
||||
# Gestion des camions — Arrivée, quais et déclaration image de quai
|
||||
# Gestion des camions - Arrivée, quais et déclaration image de quai
|
||||
|
||||
> **Résumé** : flux complet depuis l'arrivée physique d'un camion jusqu'à la
|
||||
> déclaration des palettes sur une image de quai (poumon de réception). Couvre
|
||||
@@ -24,6 +24,15 @@ author: Arthur
|
||||
> camions (plaque, quai, affichage chauffeur) et un workflow TRF dédié pour la
|
||||
> déclaration des palettes sur les images de quai.
|
||||
|
||||
> **Statut Jira (20/07/2026)** : LIM-62 (Gestion camions **V1**) est **clôturé /
|
||||
> annulé** (validation fonctionnelle par Justine le 27/05/2026). La suite est
|
||||
> reprise par
|
||||
> [LIM-97 - Gestion camions V2](https://easywmsfrance.atlassian.net/browse/LIM-97)
|
||||
> (**En cours de test client / préprod**, validée par Vincent Charvet le
|
||||
> 02/07/2026). Les étapes 1 et 2 ci-dessous intègrent le détail définitif V2,
|
||||
> dont le mécanisme **faux stage / vrai stage** d'assignation de l'image de
|
||||
> quai.
|
||||
|
||||
## Contexte projet
|
||||
|
||||
Chez Limagrain, le flux de réception commence **avant** le déchargement : un
|
||||
@@ -65,14 +74,14 @@ sequenceDiagram
|
||||
AGV->>AGV: Récupère palettes sur image de quai
|
||||
```
|
||||
|
||||
## Étape 1 — Annonce du camion (LIM-62)
|
||||
## Étape 1 - Annonce du camion (LIM-62)
|
||||
|
||||
### Création de la réception
|
||||
|
||||
L'agent de quai accède à la vue **Ordre d'entrée > Réceptions** dans SmartUI.
|
||||
Il crée une nouvelle réception en saisissant :
|
||||
|
||||
- **Plaque d'immatriculation** (champ "Camion", ex-"Document") — non
|
||||
- **Plaque d'immatriculation** (champ "Camion", ex-"Document") - non
|
||||
obligatoire à la création, peut être renseignée après coup
|
||||
- **Destination** : `PARKING` (quai fictif d'attente) par défaut, ou un quai
|
||||
réel si disponible
|
||||
@@ -93,20 +102,60 @@ Ce contrôle est implémenté dans le `VAssistCreateReceptionOE` (steps 2 et 3)
|
||||
et dans la vue des ordres d'entrées. L'exception compare le `InboundClassCode`
|
||||
de chaque OE sélectionné au premier de la liste.
|
||||
|
||||
## Étape 2 — Assignation du quai (LIM-62)
|
||||
## Étape 2 - Assignation du quai ET de l'image de quai (LIM-62 → LIM-97 V2)
|
||||
|
||||
L'agent consulte les disponibilités via le **tableau d'occupation des quais**
|
||||
(ViewDetailPanel dans la vue `ReceptionVList`). Il sélectionne la réception et
|
||||
assigne un quai réel.
|
||||
(ViewDetailPanel dans la vue `ReceptionVList`). Il sélectionne la réception,
|
||||
puis assigne **deux éléments** :
|
||||
|
||||
- un **quai réel** (`QUAI_01` à `QUAI_06`) ou le quai fictif `PARKING` ;
|
||||
- une **image de quai** (poumon de réception) sur laquelle les palettes seront
|
||||
déposées.
|
||||
|
||||
L'assignation se fait au niveau de l'image de quai **prise comme une unité**,
|
||||
et non au niveau de ses 26 sous-emplacements.
|
||||
|
||||
### Mécanisme faux stage / vrai stage (V2)
|
||||
|
||||
> [CUSTOM] Contournement mis en place car EasyWMS ne sait pas assigner une
|
||||
> image de quai comme un objet unique.
|
||||
|
||||
Écart constaté au développement (LIM-97) par rapport à la tâche initiale
|
||||
LIM-62 :
|
||||
|
||||
- Aucune commande standard ne permet d'assigner une station en tant que
|
||||
**Stage / DockStage** : le WMS ne sait assigner qu'un **emplacement**. Une
|
||||
assignation « station = Stage » devrait passer par un `CstAtt`.
|
||||
- Si on proposait le **vrai stage** (le poumon physique réel) à l'assignation,
|
||||
le WMS afficherait ses **26 sous-emplacements** (soit 286 au total sur les
|
||||
11 poumons). L'opérateur ne pourrait pas le choisir comme une unité.
|
||||
|
||||
Solution retenue : deux notions de stage par image de quai.
|
||||
|
||||
| Notion | Rôle |
|
||||
|--------|------|
|
||||
| **Faux stage** (`A` à `K`) | Station fictive, une par image de quai, portant un nom propre simple. C'est ce que l'opérateur **sélectionne sur le PC**, en plus du quai réel. Sa seule raison d'être : présenter l'image de quai comme un **objet unique** (une seule sélection, sans dérouler les 286 emplacements). |
|
||||
| **Vrai stage** | Le **poumon physique** de 26 emplacements où les palettes sont réellement déposées. Il conserve une **route vers le quai d'expédition** (à préserver pour le chargement camion). |
|
||||
|
||||
L'opérateur choisit donc, pour chaque réception : (1) un quai réel (ou
|
||||
`PARKING`), (2) un faux stage (`A` à `K`) représentant l'image de quai.
|
||||
|
||||
> ⚠️ **Effet de bord** : les tâches générées ont pour destination le **faux
|
||||
> stage** et non un emplacement réel du poumon. Le rattachement faux stage →
|
||||
> emplacement du vrai stage → quai d'expédition relève d'un mécanisme de
|
||||
> routage encore ouvert (custom sur la fin d'ordre au PS), car il touche au
|
||||
> flux d'expédition. Voir [Questions ouvertes](#questions-ouvertes) et
|
||||
> [Assignation automatique de l'image de quai](../04-outbound/assignation-image-quai.md)
|
||||
> (LIM-94, stages virtuels `X_EXP` côté expédition).
|
||||
|
||||
### Règles d'assignation
|
||||
|
||||
- Le quai et l'image de quai sont réservés dès la sélection
|
||||
- Un quai partiellement occupé peut être réutilisé (gestion manuelle de la
|
||||
place restante)
|
||||
- ~~Blocage si flux différent (ex : expédition)~~ — supprimé
|
||||
- Si aucun quai disponible → l'opérateur conserve `PARKING` et attend une
|
||||
libération
|
||||
- Le quai et l'image de quai (faux stage) sont réservés dès la sélection
|
||||
- Un quai / une image de quai partiellement occupé peut être réutilisé
|
||||
(gestion manuelle de la place restante)
|
||||
- ~~Blocage si flux différent (ex : expédition)~~ - supprimé
|
||||
- Si aucune image de quai disponible → l'opérateur conserve `PARKING` et attend
|
||||
une libération
|
||||
- Modification possible a posteriori
|
||||
|
||||
### Tableau d'occupation des quais
|
||||
@@ -124,24 +173,67 @@ réceptions, tournées et OS associés avec les plaques correspondantes :
|
||||
Ce tableau est aussi disponible dans le `VAssistReceptionAssignDock` (step 1
|
||||
utilise l'entité `CST_DockStationsWorkloadForView` au lieu de `Station`).
|
||||
|
||||
## Étape 3 — Affichage chauffeur (LIM-63)
|
||||
## Étape 3 - Affichage chauffeur (LIM-63)
|
||||
|
||||
Un écran d'affichage extérieur (WS / dialogue EasyWMS) montre aux chauffeurs
|
||||
sur le parking les quais assignés avec les plaques d'immatriculation.
|
||||
> **Statut Jira (16/07/2026)** : En cours de test client (pré-production).
|
||||
> Revue de code validée le 27/03/2026 (Nicolas Chabanis).
|
||||
|
||||
Une **station de travail dédiée** (`CST_Workstation_Docks`) affiche, sur un écran
|
||||
extérieur au parking, les quais assignés avec les plaques d'immatriculation des
|
||||
camions. La vue ouvre automatiquement un workflow qui récupère les quais et
|
||||
appelle un dialogue d'affichage EasyBuilder. But : indiquer aux chauffeurs où
|
||||
attendre / se garer.
|
||||
|
||||
### Spécifications
|
||||
|
||||
- Afficher uniquement les quais avec des réceptions ou OS associés
|
||||
- Prévoir l'affichage de **6 quais + le parking** sans scroll
|
||||
- Afficher uniquement les quais ayant des réceptions ou OS associés
|
||||
- Prévoir l'affichage de **6 quais principaux + le parking** (placé en haut)
|
||||
sans avoir à scroller
|
||||
- Afficher les plaques (champ "Camion" / Document)
|
||||
- Les plaques sont récupérées via la query `CST_DockStationsWorkload_ForView`
|
||||
(mutualisée avec LIM-62)
|
||||
|
||||
### Implémentation technique (LIM-63)
|
||||
|
||||
| Élément AD | Type | Rôle |
|
||||
|-----------|------|------|
|
||||
| `CST_Workstation_Docks_DisplayDocksInformation` | Dialog | Récupère la liste des quais et l'affiche ; place les 6 quais principaux + Parking en haut |
|
||||
| `CST_Workstation_Dock` | Workflow | Récupère tous les quais (code + OE/OS assignés), filtre les quais 1 à 7 (`Take(7)`), les ordonne par numéro, puis appelle le dialogue |
|
||||
| `CST_Workstation_Docks` | ViewGroup + View | Vue de la station de travail ; ouvre le workflow par défaut |
|
||||
| `RealStationWF.CST_LicencePlates` | Champ (Record) | Nouveau champ stockant les plaques (préféré à un CustomAttribute - décision de revue de code) |
|
||||
| `CST_Workstation_Docks` | Ressource i18n | FR « Quais » / EN « Docks » |
|
||||
| MenuItem `PanelMode = true` | Menu | Entrée d'accès ouvrant la vue en mode panneau |
|
||||
|
||||
> **Référence technique** : dialogue EasyBuilder, cf. [documentation
|
||||
> Mecalux](https://msscc.mecalux.com/documentation/Development/master/ES/map_working_easybuilder/user_manual/dialogs/index.md)
|
||||
|
||||
## Étape 4 — Déclaration image de quai via TRF (LIM-64)
|
||||
## Étape 4 - Déclaration image de quai (LIM-64 V1 → LIM-96 V2)
|
||||
|
||||
> **Statut Jira (17/07/2026)** : LIM-64 (déclaration image de quai **V1**)
|
||||
> est **clôturé / annulé** (revue de code validée le 02/04/2026), repris par
|
||||
> [LIM-96 - Déclaration image de quai V2](https://easywmsfrance.atlassian.net/browse/LIM-96)
|
||||
> (**En cours de test client / préprod**, revue de code validée le 25/06/2026).
|
||||
> Le contenu ci-dessous reflète la **V2**. Évolutions majeures V2 vs V1 :
|
||||
> sélection / réservation de l'image de quai déplacée côté **SmartUI (web)** et
|
||||
> non plus dans le TRF ; nouvel **écran de déclaration des ordres d'entrée**
|
||||
> (rattachement de chaque emplacement occupé à un OE → `CstAtt13`) ; nouvel
|
||||
> **écran de validation du collage des étiquettes** (pose `CstAtt12 = true`,
|
||||
> qui conditionne la prise en charge par le job AGV LIM-71) ; bouton de
|
||||
> réimpression dans la confirmation d'étiquetage.
|
||||
|
||||
Après déchargement physique, le cariste déclare les palettes via un menu TRF
|
||||
dédié **Réceptions > Image de quai**.
|
||||
dédié **Réceptions > Image de quai**. En V2, la sélection de l'image de quai
|
||||
elle-même se fait côté **SmartUI** (vue d'assignation), le TRF se limitant à
|
||||
confirmer l'image de quai puis à dérouler la déclaration.
|
||||
|
||||
> [CUSTOM] **Sélection image de quai côté SmartUI (V2, Vincent Charvet 17/06)** :
|
||||
> l'image de quai est réservée depuis SmartUI (routes dock → stage virtuel
|
||||
> ajoutées au layout, dialogues `CST_DockStageReception_SelectStage` /
|
||||
> `CST_DockStageReception_ConfirmStage`, vue `VAssistReceptionAssignDock` avec
|
||||
> conditions sur les stages proposés). Pour les types **Production** et **Pile
|
||||
> de palette**, on reprend le fonctionnement antérieur : choisir directement
|
||||
> l'image de quai, sans passer par la recherche d'une réception puis la
|
||||
> confirmation de l'image associée (Arthur, 17/06).
|
||||
|
||||
### Règle de déchargement physique
|
||||
|
||||
@@ -149,14 +241,23 @@ Le cariste doit décharger en commençant par l'emplacement le **plus éloigné
|
||||
du quai** en suivant un ordre précis. Cela permet d'identifier les
|
||||
emplacements occupés pour les AGV.
|
||||
|
||||
### Workflow 7 écrans
|
||||
### Workflow d'écrans (V2)
|
||||
|
||||
Le parcours d'écrans dépend du type de réception :
|
||||
|
||||
- **Production** : écrans 1, 3, 4, 5, 7
|
||||
- **Autres** (fournisseur, intersite, retours) : écrans 1, 2, 3, 4, 5, 6, 7
|
||||
- **Production / Pile de palette** : type → image de quai → nombre →
|
||||
sous-emplacement → déclaration OE → validation
|
||||
- **Autres** (fournisseur, intersite, retours) : type → réception →
|
||||
confirmation image de quai → nombre → sous-emplacement → big-bag →
|
||||
déclaration OE → validation → **validation du collage des étiquettes**
|
||||
|
||||
#### Écran 1 — Type de réception
|
||||
> Les deux écrans **Déclaration des ordres d'entrée** et **Validation du
|
||||
> collage des étiquettes** sont des ajouts V2 (voir ci-dessous). La
|
||||
> numérotation ci-dessous suit l'ordre logique de la V1 ; le WF réel
|
||||
> (`CST_Reception_DockStage_UI`) applique l'ordre V2 : image de quai
|
||||
> d'abord, puis nombre, puis sous-emplacement.
|
||||
|
||||
#### Écran 1 - Type de réception
|
||||
|
||||
Choix parmi :
|
||||
|
||||
@@ -166,13 +267,13 @@ Choix parmi :
|
||||
|
||||
Échap : retour menu.
|
||||
|
||||
#### Écran 2 — Sélection de la réception
|
||||
#### Écran 2 - Sélection de la réception
|
||||
|
||||
Uniquement si type = **Autres**. L'opérateur choisit la réception concernée.
|
||||
|
||||
Échap : retour écran 1.
|
||||
|
||||
#### Écran 3 — Nombre de palettes
|
||||
#### Écran 3 - Nombre de palettes
|
||||
|
||||
Prompt : « Nombre de palettes de la réception »
|
||||
|
||||
@@ -183,7 +284,7 @@ Validation :
|
||||
|
||||
Message d'erreur explicatif si invalide. Échap : retour écran 2.
|
||||
|
||||
#### Écran 4 — Choix image de quai (poumon)
|
||||
#### Écran 4 - Choix image de quai (poumon)
|
||||
|
||||
Le workflow liste tous les poumons liés aux quais (réception + expédition)
|
||||
puis filtre :
|
||||
@@ -195,12 +296,12 @@ puis filtre :
|
||||
dernier conteneur
|
||||
|
||||
> **Double check** : au moment du choix effectif, les vérifications sont
|
||||
> refaites — entre l'affichage de la liste et la sélection, la réalité a pu
|
||||
> refaites - entre l'affichage de la liste et la sélection, la réalité a pu
|
||||
> changer.
|
||||
|
||||
Échap : retour écran 3.
|
||||
|
||||
#### Écran 5 — Sous-emplacement de départ
|
||||
#### Écran 5 - Sous-emplacement de départ
|
||||
|
||||
Prompt : « Sous-emplacement de la première palette de la réception »
|
||||
|
||||
@@ -216,7 +317,7 @@ position 5 est occupée.
|
||||
|
||||
Échap : retour écran 4.
|
||||
|
||||
#### Écran 6 — Présence de big-bags
|
||||
#### Écran 6 - Présence de big-bags
|
||||
|
||||
Uniquement si type = **Autres**.
|
||||
|
||||
@@ -226,7 +327,32 @@ Boutons OUI / NON. L'information est conservée pour la suite du flux.
|
||||
|
||||
Échap : retour écran 4.
|
||||
|
||||
#### Écran 7 — Validation et création
|
||||
#### Écran - Déclaration des ordres d'entrée (V2)
|
||||
|
||||
> Ajout V2 (LIM-96). Rattache chaque palette (emplacement occupé) à son
|
||||
> **ordre d'entrée** → pose le `CstAtt13` (« Ordre d'entrée ») sur le
|
||||
> support, **dès l'image de quai** (et non plus seulement au PK).
|
||||
|
||||
> **Ordre d'exécution** : côté implémentation, les conteneurs sont
|
||||
> **déjà créés** quand cet écran s'affiche (l'écran scanne des palettes
|
||||
> existantes pour vérifier leur appartenance à la réception). La création
|
||||
> décrite à l'écran 7 ci-dessous intervient donc **en amont** de la
|
||||
> déclaration OE dans le WF réel.
|
||||
|
||||
Pour chaque OE de la réception, l'opérateur sélectionne les emplacements
|
||||
concernés :
|
||||
|
||||
- La liste ne propose que les **emplacements portant une palette de la
|
||||
réception en cours**
|
||||
- Boucle sur un dialogue avec un **compteur** de conteneurs qui
|
||||
s'incrémente, et un bouton **« Ordre suivant »** pour passer à l'OE
|
||||
suivant
|
||||
- À chaque scan, le WMS vérifie le conteneur sur l'emplacement (qui vient
|
||||
d'être créé) et qu'il correspond bien à la réception en cours
|
||||
- Si le conteneur a **déjà été sélectionné**, l'opérateur en est informé ;
|
||||
une confirmation permet de **corriger** une erreur de saisie antérieure
|
||||
|
||||
#### Écran 7 - Validation et création
|
||||
|
||||
Récapitulatif affiché :
|
||||
|
||||
@@ -242,7 +368,7 @@ Récapitulatif affiché :
|
||||
sous-emplacements consécutifs à partir de la position de départ
|
||||
2. **Séquence spéciale** : 18 caractères commençant par `8`
|
||||
(ex : `800000000000000001`, `800000000000000002`, etc.)
|
||||
— cf. [LIM-14](https://easywmsfrance.atlassian.net/browse/LIM-14)
|
||||
- cf. [LIM-14](https://easywmsfrance.atlassian.net/browse/LIM-14)
|
||||
3. **Impression étiquettes** : uniquement si type = **Autres**, une étiquette
|
||||
par palette déclarée (format LIM-65)
|
||||
|
||||
@@ -252,10 +378,145 @@ Récapitulatif affiché :
|
||||
> devenu indisponible entre l'écran 5 et la validation, un message d'erreur
|
||||
> est affiché. Idem si la réception sélectionnée a été supprimée entre-temps.
|
||||
|
||||
> **Séquence** : le préfixe de la séquence 18 caractères a été corrigé de
|
||||
> `800000` à `800` en revue de code (cf. [LIM-14](https://easywmsfrance.atlassian.net/browse/LIM-14)).
|
||||
|
||||
#### Écran - Validation du collage des étiquettes (V2)
|
||||
|
||||
> Ajout V2 (LIM-96), affiché après impression pour les réceptions de type
|
||||
> **Autres**.
|
||||
|
||||
Dialogue : « Confirmez-vous avoir collé toutes les étiquettes ? Oui
|
||||
entraînera la récupération des palettes par les AGV » avec un bouton
|
||||
**Oui** et un bouton de **réimpression** (`CST_Reception_DockStage_ConfirmLabels`).
|
||||
|
||||
À la confirmation (Oui) :
|
||||
|
||||
- Le `CstAtt12` (« Conteneur étiqueté ») de **toutes les palettes
|
||||
virtuelles** de la réception est mis à `true` - **y compris** les
|
||||
palettes qui n'ont pas besoin d'étiquette (Production / Pile)
|
||||
- Ce flag conditionne la prise en charge par le **job AGV
|
||||
[LIM-71](https://easywmsfrance.atlassian.net/browse/LIM-71)** : les
|
||||
palettes ne sont **déplacées que si `CstAtt12 = true`** (« on ne bouge
|
||||
pas les palettes s'il n'y a pas d'étiquettes »)
|
||||
|
||||
> ⚠️ **À réconcilier avec LIM-71** : la page
|
||||
> [Job réception production](../05-agv/job-reception-production.md) indique
|
||||
> que la condition `CstAtt12` avait été **retirée** du job (palettes
|
||||
> production / piles sans étiquette). LIM-96 réintroduit un contrôle
|
||||
> `CstAtt12 = true` comme **gate de prise AGV** en le posant pour *toutes*
|
||||
> les palettes à cet écran. Confirmer la logique effective côté job LIM-71
|
||||
> (voir [Questions ouvertes](../08-transverse/questions-ouvertes.md)).
|
||||
|
||||
### Attributs de support renseignés
|
||||
|
||||
Chaque palette virtuelle créée porte des CustomAttributes exploités en aval,
|
||||
affichés dans la vue des supports (`ContainerVList`) :
|
||||
|
||||
| Attribut | Contenu | Libellé vue support |
|
||||
|----------|---------|---------------------|
|
||||
| `CustomAttribute1` | Réception big-bag | Reception big-bag [CST 1] |
|
||||
| `CustomAttribute4` | Réception ASN | Reception ASN [CST 4] |
|
||||
| `CustomAttribute8` | Code de la réception | Reception [CST 8] |
|
||||
| `CustomAttribute13` | Code de l'ordre d'entrée (posé à l'écran déclaration OE, V2) | Ordre d'entrée [CST 13] |
|
||||
| `CustomAttribute12` | Conteneur étiqueté (posé à `true` à l'écran collage étiquettes, V2) | - |
|
||||
|
||||
Le `CstAtt08` (code réception) sert notamment à compter les palettes déjà
|
||||
déclarées pour une réception. Le `CstAtt13` (ordre d'entrée) est désormais
|
||||
posé **dès l'image de quai** (écran déclaration OE), et non plus seulement
|
||||
au PK. La vue `ContainerVList` affiche les CstAtt 1, 4, 8 et 13.
|
||||
|
||||
> **Distinction big-bag (confirmée V2)** : le `CstAtt01` du support virtuel
|
||||
> (« Réception big-bag ») est le flag **au niveau réception** saisi à l'écran
|
||||
> big-bag de la déclaration image de quai. Le flag big-bag **par support**
|
||||
> (posé au poste de travail réception) est porté par le `CstAtt02` (cf.
|
||||
> glossaire). Les deux coexistent : réception vs support.
|
||||
|
||||
### Compteur de palettes déjà déclarées
|
||||
|
||||
L'écran de données de réception affiche le **nombre de supports déjà déclarés**
|
||||
pour la réception en cours, à côté du « Nombre de supports prévus ». Ce nombre
|
||||
est calculé en comptant les conteneurs dont le `CustomAttribute8` = code de la
|
||||
réception (query `CST_Reception_NumDeclaredContainers`).
|
||||
|
||||
### Réimpression d'étiquette
|
||||
|
||||
Un bouton de **réimpression** est disponible depuis la vue des supports
|
||||
(`ContainerVList`). Il n'est visible que pour un **support fictif** (code
|
||||
commençant par `800`) et **actif** (`IsActive`). Une seule impression regroupe
|
||||
toutes les étiquettes demandées. Un message d'erreur est levé si aucune
|
||||
imprimante n'est configurée.
|
||||
|
||||
### Mode « Pile de palettes » (palettes bois)
|
||||
|
||||
Un mode de réception **pile de palettes** a été ajouté (Justine, 16/04/2026) :
|
||||
le stock créé utilise un produit dédié de type `PALETTES BOIS`, récupéré via la
|
||||
query `CST_GetPileProduct`.
|
||||
|
||||
### KPI - conteneurs par type de réception (LIM-102)
|
||||
|
||||
> Statut : préprod, revue de code validée le 03/06/2026 (Maxime Halgand),
|
||||
> commit [`5a7d213d48`](https://msscode.mecalux.com/Proyectos_SW/EASYWMS_11351_LIMAGRAIN/commit/5a7d213d48bcfa4aa78cca511ce172cb226e9883).
|
||||
|
||||
Pour tracer le **nombre de conteneurs créés par type de réception**, chaque
|
||||
conteneur créé par le process de réception custom (LIM-96) génère une
|
||||
transaction **`CON.CREATE.RECEP`** (catalogue :
|
||||
[Paramètres projet](../07-admin/parametres-projet.md#transactions-customs)).
|
||||
|
||||
| Champ | Contenu |
|
||||
|-------|---------|
|
||||
| `TransactionTypeCode` | `CON.CREATE.RECEP` |
|
||||
| `LocationCode` | Emplacement du conteneur |
|
||||
| `ContainerCode` | Code conteneur |
|
||||
| `Document1` | **Type de réception** (dimension du KPI) |
|
||||
| `IdOrig` | Id du conteneur |
|
||||
|
||||
Le `Document1` prend l'une des valeurs suivantes :
|
||||
|
||||
- `PALETTE BOIS` (mode pile de palettes) ;
|
||||
- `PRODUCTION` ;
|
||||
- pour une réception de type **AUTRES** : le `InboundClassCode` de la réception.
|
||||
|
||||
Le WF `CST_Reception_DockStage_UI` récupère le `InboundClassCode` de la
|
||||
réception, et `CST_Reception_DockStage_CreateContainers_PR` crée la transaction.
|
||||
|
||||
### Implémentation technique (LIM-64 V1 → LIM-96 V2)
|
||||
|
||||
| Élément AD | Type | Rôle |
|
||||
|-----------|------|------|
|
||||
| `CST_Reception_DockStage_UI` | Workflow | Process principal : ordre V2 (image de quai → nombre → sous-emplacement), déclaration OE, confirmation collage ; gère le mode pile de palettes ; récupère le `InboundClassCode` de la réception pour le KPI (LIM-102) |
|
||||
| `CST_Reception_DockStage_CreateContainers_PR` | Workflow | Création des conteneurs (code via séquence) ; crée la transaction `CON.CREATE.RECEP` avec `Document1` = type de réception (KPI, LIM-102) |
|
||||
| `CST_Reception_DockStage_PrintLabels` | Workflow | Impression des étiquettes des conteneurs créés (V2) |
|
||||
| `CST_DockStageReception_SelectStage` | Dialog | Sélection de l'image de quai (renommé depuis `CST_DockStageReception_GetStage`, V2) |
|
||||
| `CST_DockStageReception_ConfirmStage` | Dialog | Confirmation de l'image de quai sélectionnée (V2) |
|
||||
| `CST_DockStageReception_BigBag` | Dialog | Sélection présence big-bag |
|
||||
| `CST_DockStageReception_Validation` | Dialog | Récapitulatif et validation |
|
||||
| `CST_Reception_DockStage_ConfirmLabels` | Dialog | Confirmation du collage des étiquettes + bouton réimpression (V2) |
|
||||
| `CST_DockStageStations_WithoutAssignation` | Query | Poumons disponibles (renommé depuis `CST_DockStageStations_WithoutOutbound`, supprimée ; ajout de conditions sur réceptions / OS / routes assignés). Ne renvoie que les **stages physiques**, pas les stages virtuels d'expédition |
|
||||
| `CST_Receptions_PendingAndReceiving_WithDockStageAssigned` | Query | Clone de `Receptions_PendingAndReceiving` avec condition sur le quai et le stage associé (V2) |
|
||||
| `CST_Reception_NumDeclaredContainers` | Query | Nombre de conteneurs d'une réception (via `CstAtt08`) |
|
||||
| `CST_GetPileProduct` | Query | Produit `PALETTES BOIS` (mode pile de palettes) |
|
||||
| `StageWF.CST_GreatestOccupiedPosition` | Champ (Record) | Position X la plus haute occupée sur l'image de quai |
|
||||
| `CST_RPT_DOCKSTAGERECEPTION_VIRTUAL_CONTAINER_LABEL` | Report | Étiquette support virtuel (impression multiple simultanée) |
|
||||
| `ContainerVList` | View | Bouton réimpression + colonnes CstAtt 1, 4, 8, 13 |
|
||||
| `VAssistReceptionAssignDock` / `VAssistOutboundOrderAssignDock` / `VAssistRouteAssignDock` | Vue | Conditions sur les stages proposés lors de l'assignation SmartUI (V2) |
|
||||
| Routes dock → stage virtuel | Layout | Ajoutées pour l'assignation de l'image de quai côté SmartUI (V2) |
|
||||
|
||||
Ressources i18n V2 : `CST_Reception_DockStage_ConfirmPrinting`,
|
||||
`CST_Reception_DockStage_NoInboundOrder`, `CST_View_InboundOrder`
|
||||
(« Ordre d'entrée [CST 13] »), `CST_InboundOrder_Asociated_1`,
|
||||
`CST_InboundOrderSelection_End`, `CST_NextOrder`.
|
||||
|
||||
Commit V2 : [`1b2570b164`](https://msscode.mecalux.com/Proyectos_SW/EASYWMS_11351_LIMAGRAIN/commit/1b2570b16429102b93d1f1d860f6fa807ee5ede8)
|
||||
(migration sélection image de quai vers SmartUI).
|
||||
|
||||
## Étiquette support image de quai (LIM-65)
|
||||
|
||||
Format **A5 paysage**. Imprimée pour chaque palette de type "Autres"
|
||||
(pas pour la production).
|
||||
> **Statut Jira (16/07/2026)** : En cours de test client (pré-production).
|
||||
> Revue de code validée le 25/06/2026.
|
||||
|
||||
Format **A5 paysage**. Imprimée pour chaque palette d'une réception qui n'est
|
||||
**pas de type PRODUCTION** (impression déclenchée par le workflow de LIM-96).
|
||||
|
||||
| Champ | Contenu |
|
||||
|-------|---------|
|
||||
@@ -263,7 +524,29 @@ Format **A5 paysage**. Imprimée pour chaque palette de type "Autres"
|
||||
| RECEPTION | Code de la réception |
|
||||
| DATE | Date d'impression |
|
||||
| EMPL. | Sous-emplacement du poumon |
|
||||
| QR Code | Code du support |
|
||||
| OE | Code de l'ordre d'entrée (ajouté 06/2026 - en texte sous la réception) |
|
||||
| QR Code | Code support + code OE au format GS1 |
|
||||
|
||||
### QR Code GS1
|
||||
|
||||
Le QR Code encode deux données au format GS1 :
|
||||
|
||||
- AI `00` → code du support (SSCC)
|
||||
- AI `91` → code de l'ordre d'entrée
|
||||
|
||||
Exemple : `#00800000000000000001#91804565206`
|
||||
|
||||
Ce label GS1 est réutilisé dans le **flux retour fournisseur** : le scan permet
|
||||
de récupérer à la fois le support et l'OE.
|
||||
|
||||
### Implémentation technique (LIM-65)
|
||||
|
||||
| Élément AD | Type | Rôle |
|
||||
|-----------|------|------|
|
||||
| `CST_RPT_DOCKSTAGERECEPTION_VIRTUAL_CONTAINER_LABEL` | Report | Étiquette support virtuel - ajout du code OE + QR Code (support + OE) |
|
||||
| `ParsedContainerLabelWF` | Record | Ajout du champ code d'ordre d'entrée |
|
||||
| `ParseContainerLabel` | Workflow | Parse de l'identifiant GS1 `#91` → code OE |
|
||||
| `CST_Reception_Return_ATH214_CheckData_UI` | Workflow | Parse container sur le dialog du code OE (scan QR) - flux retour |
|
||||
|
||||
## Implémentation technique (AD customs)
|
||||
|
||||
@@ -283,9 +566,16 @@ Format **A5 paysage**. Imprimée pour chaque palette de type "Autres"
|
||||
|
||||
| Vue | Modification |
|
||||
|-----|-------------|
|
||||
| `ReceptionVList` | ViewDetailPanel `CST_Docks_Workload` (Column Span = 2) — occupation quais |
|
||||
| `VAssistCreateReceptionOE` | Exception steps 2 et 3 — blocage classes OE différentes |
|
||||
| `VAssistReceptionAssignDock` | Step 1 : entité `CST_DockStationsWorkloadForView` remplace `Station` |
|
||||
| `ReceptionVList` | ViewDetailPanel `CST_Docks_Workload` (Column Span = 2) - occupation quais |
|
||||
| `VAssistCreateReceptionOE` | Exception steps 2 et 3 - blocage classes OE différentes |
|
||||
| `VAssistCreateReceptionOEFromReceptions` | Mêmes conditions sur les classes d'OE - blocage à la création de réception depuis la vue des ordres d'entrées (LIM-97) |
|
||||
| `VAssistReceptionAssignDock` | Step 1 : entité `CST_DockStationsWorkloadForView` remplace `Station` ; assignation du quai réel + du faux stage (image de quai en unité) |
|
||||
|
||||
### Élément AD - faux stages (LIM-97)
|
||||
|
||||
| Élément AD | Type | Rôle |
|
||||
|-----------|------|------|
|
||||
| Faux stages `A` à `K` | Station fictive | Une par image de quai ; sélectionnable comme unité à l'assignation SmartUI (voir [Mécanisme faux stage / vrai stage](#mécanisme-faux-stage--vrai-stage-v2)). Nouveau, à formaliser dans l'AD |
|
||||
|
||||
### Ressources i18n
|
||||
|
||||
@@ -293,24 +583,30 @@ Format **A5 paysage**. Imprimée pour chaque palette de type "Autres"
|
||||
|------|----|----|
|
||||
| `CST_Reception_MultiClassError` | Impossible de créer une réception avec des ordres d'entrée ayant des classes de préavis de réception différentes | Can't create reception with inbound orders with different inbound order class |
|
||||
| `CST_Prop_Reception_Document` | Camion | Truck |
|
||||
| `CST_Prop_Station_Workload` | Assignations / Camions | Assignations / Trucks |
|
||||
| `CST_ViewField_VAssistantCreateReceptionOE_Truck` | #KEY#[CST_Prop_Reception_Document, PARAMS[]] | #KEY#[CST_Prop_Reception_Document, PARAMS[]] |
|
||||
| `CST_Prop_Station_Workload` | Réceptions / Camions | Receptions / Trucks |
|
||||
| `CST_Reception_DockWorkload_Panel_Title` | Occupation des quais | Docks workload |
|
||||
|
||||
> **Note** : toutes les ressources custom sont préfixées `CST_` (convention
|
||||
> Mecalux France validée lors de la revue de code).
|
||||
|
||||
> **Divergence de libellé (LIM-97 §8.4)** : `CST_Prop_Station_Workload` a été
|
||||
> commentée « Assignations / Camions » (Vincent, 05/03) puis « Réceptions /
|
||||
> Camions » en revue de code (Nicolas, 06/03) - valeur retenue par défaut,
|
||||
> alignée sur le tableau d'occupation ci-dessus. À confirmer.
|
||||
|
||||
### Revue de code
|
||||
|
||||
- **05/03/2026** — Vincent Charvet : implémentation initiale
|
||||
- **05/03/2026** - Vincent Charvet : implémentation initiale
|
||||
([`1d2acc3e6e`](https://msscode.mecalux.com/Proyectos_SW/EASYWMS_11351_LIMAGRAIN/commit/1d2acc3e6efef09df3e2a760574e35afd30ca166))
|
||||
- **06/03/2026** — Nicolas Chabanis : revue non valide (préfixes ressources,
|
||||
- **06/03/2026** - Nicolas Chabanis : revue non valide (préfixes ressources,
|
||||
commentaire `//Custom end` manquant, Column Span, titre colonne)
|
||||
- **09/03/2026** — Nicolas Chabanis : **revue validée**
|
||||
- **09/03/2026** - Nicolas Chabanis : **revue validée**
|
||||
|
||||
## Points d'attention
|
||||
|
||||
- La plaque du camion n'est **pas obligatoire** à la création de la réception
|
||||
— elle peut être renseignée après coup (confirmé 09/03/2026)
|
||||
- elle peut être renseignée après coup (confirmé 09/03/2026)
|
||||
- Le déchargement doit respecter l'ordre : emplacement le plus éloigné
|
||||
d'abord, sinon les AGV ne peuvent pas identifier correctement les positions
|
||||
occupées
|
||||
@@ -320,29 +616,60 @@ Format **A5 paysage**. Imprimée pour chaque palette de type "Autres"
|
||||
- Le double-check de disponibilité du poumon au moment du choix est
|
||||
**critique** pour éviter les collisions entre opérateurs simultanés
|
||||
- Les séquences de supports virtuels commencent par `8` et font 18 caractères
|
||||
— ne pas confondre avec les séquences SSCC standard
|
||||
- ne pas confondre avec les séquences SSCC standard
|
||||
- **V2 (LIM-97)** : la tâche générée vise le **faux stage**, pas un emplacement
|
||||
réel du poumon ; un custom (fin d'ordre au PS) doit rediriger la destination
|
||||
vers le bon emplacement du vrai stage, et la **route vers le quai
|
||||
d'expédition** doit être préservée pour le chargement camion
|
||||
- **V2 (LIM-97)** : une **27e palette** ne tient pas sur l'image de quai
|
||||
(capacité 26) ni dans le camion ; sans traitement, le process plante
|
||||
- **V2 (LIM-97)** : la **dépose AGV** sur des positions serrées de l'image de
|
||||
quai peut se bloquer si l'ordre de dépose n'est pas respecté (un AGV en
|
||||
position 26 avant un AGV en position 23)
|
||||
|
||||
## Questions ouvertes
|
||||
|
||||
- [ ] Gestion TRF si AGV pas prêts au démarrage — lié aussi à la déclaration
|
||||
- ❓ Gestion TRF si AGV pas prêts au démarrage - lié aussi à la déclaration
|
||||
image de quai (@Théo)
|
||||
- [ ] Position étiquette image de quai (devant/côté palette) — à valider
|
||||
- ❓ Position étiquette image de quai (devant/côté palette) - à valider
|
||||
avec le client (@Justine)
|
||||
- [ ] Faut-il rendre la saisie du camion (plaque) obligatoire pour garantir
|
||||
- ❓ Faut-il rendre la saisie du camion (plaque) obligatoire pour garantir
|
||||
la cohérence de l'affichage chauffeur ? (@Justine)
|
||||
- Routage de la tâche faux stage → emplacement du vrai stage → quai
|
||||
d'expédition (LIM-97 §8.1) : proposition = custom sur la fin d'ordre au PS
|
||||
qui redirige la destination, logique différenciée par `locationType` (buffer
|
||||
vs DockStage). Risque de rollback en boucle (mouvement généré à la fin
|
||||
d'ordre au PS) ; cadencement AGV à reconfirmer avec Still (@Vincent / @Still)
|
||||
- Débordement au-delà de 26 palettes sur l'image de quai (27e palette,
|
||||
LIM-97 §8.2) : à arbitrer (ne pas générer la tâche tant qu'aucune place ne
|
||||
se libère, ou maintenir la palette en zone tampon ASRS) (@Justine)
|
||||
- Ordonnancement de la dépose AGV sur l'image de quai (positions serrées,
|
||||
LIM-97 §8.3) : dépose sans position précise (l'AGV choisit l'emplacement
|
||||
libre le plus proche puis le remonte au WMS) ou respect strict de l'ordre
|
||||
des STOP (LIM-88) ; à valider en réunion technique dédiée (@Théo / @Still)
|
||||
|
||||
## Historique des modifications
|
||||
|
||||
| Date | Auteur | Modification |
|
||||
|------|--------|-------------|
|
||||
| 2026-05-06 | Arthur | Création initiale depuis LIM-62, LIM-63, LIM-64, LIM-65 |
|
||||
| 2026-07-16 | Arthur | Mise à jour statut LIM-62 : V1 clôturée/annulée, validée fonctionnellement (Justine 27/05), suite en LIM-97 (V2) |
|
||||
| 2026-07-16 | Arthur | LIM-63 : ajout implémentation technique (station `CST_Workstation_Docks`, workflow, dialog, champ `CST_LicencePlates`) + statut pré-production |
|
||||
| 2026-07-16 | Arthur | LIM-64 : statut V1 annulée → LIM-96 (V2) ; ajout attributs support (CstAtt01/04/08), compteur palettes déclarées, réimpression, mode pile de palettes, éléments AD |
|
||||
| 2026-07-16 | Arthur | LIM-65 : ajout champ OE sur l'étiquette + QR Code GS1 (AI 00 support / AI 91 OE) réutilisé flux retour fournisseur, éléments AD parsing ; statut pré-production |
|
||||
| 2026-07-17 | Arthur | Intégration LIM-96 V2 (préprod, revue de code validée 25/06) : étape 4 réécrite (statut V1→V2), sélection image de quai côté SmartUI (dialogues `CST_DockStageReception_SelectStage`/`ConfirmStage`, `VAssistReceptionAssignDock`, routes dock→stage virtuel), écran **Déclaration des OE** (CstAtt13 posé dès l'image de quai), écran **Validation collage étiquettes** (CstAtt12=true, gate job LIM-71 + caveat réconciliation), workflow d'écrans V2, attributs support (+CstAtt12/CstAtt13), table AD V2 (query renommée `CST_DockStageStations_WithoutAssignation`, clone `CST_Receptions_PendingAndReceiving_WithDockStageAssigned`, WF `CST_Reception_DockStage_PrintLabels`, ressources, commit `1b2570b164`), distinction big-bag CstAtt01/CstAtt02 confirmée ; front matter sources/last_updated |
|
||||
| 2026-07-20 | Arthur | Intégration LIM-97 (Gestion camions V2, préprod, validé Vincent 02/07) : étape 2 réécrite (assignation quai + image de quai, **mécanisme faux stage A-K / vrai stage**, effet de bord routage) ; ajout vue `VAssistCreateReceptionOEFromReceptions` + ressource `CST_ViewField_VAssistantCreateReceptionOE_Truck` + Élément AD faux stages A-K ; libellé `CST_Prop_Station_Workload` corrigé (Réceptions / Camions + caveat §8.4) ; 3 points d'attention V2 (débordement 27e palette, ordonnancement dépose AGV, routage à préserver) ; 3 questions ouvertes (routage §8.1, débordement §8.2, ordonnancement §8.3) ; front matter sources/last_updated |
|
||||
| 2026-07-20 | Arthur | Intégration LIM-102 (KPI conteneurs par type de réception, préprod, revue validée 03/06) : nouvelle sous-section KPI (transaction `CON.CREATE.RECEP`, `Document1` = type de réception : PALETTE BOIS / PRODUCTION / InboundClassCode) ; enrichissement des WF `CST_Reception_DockStage_UI` (récupération InboundClassCode) et `CST_Reception_DockStage_CreateContainers_PR` (création transaction) ; jira_refs +LIM-102 |
|
||||
|
||||
## Références
|
||||
|
||||
| Source | Type | Date |
|
||||
|--------|------|------|
|
||||
| [LIM-62](https://easywmsfrance.atlassian.net/browse/LIM-62) | Ticket Jira | 18/02/2026 |
|
||||
| [LIM-63](https://easywmsfrance.atlassian.net/browse/LIM-63) | Ticket Jira | 2026 |
|
||||
| [LIM-64](https://easywmsfrance.atlassian.net/browse/LIM-64) | Ticket Jira | 2026 |
|
||||
| [LIM-65](https://easywmsfrance.atlassian.net/browse/LIM-65) | Ticket Jira | 2026 |
|
||||
| [LIM-62](https://easywmsfrance.atlassian.net/browse/LIM-62) | Ticket Jira (V1 - Annulé, suite LIM-97) | 18/02/2026 |
|
||||
| [LIM-97](https://easywmsfrance.atlassian.net/browse/LIM-97) | Ticket Jira (Gestion camions V2 - préprod, validé Vincent 02/07/2026, faux stages A-K, commit `1d2acc3e6e`) | 2026 |
|
||||
| [LIM-63](https://easywmsfrance.atlassian.net/browse/LIM-63) | Ticket Jira (affichage chauffeurs - pré-production) | 2026 |
|
||||
| [LIM-64](https://easywmsfrance.atlassian.net/browse/LIM-64) | Ticket Jira (V1 - Annulé, suite LIM-96) | 18/02/2026 |
|
||||
| [LIM-96](https://easywmsfrance.atlassian.net/browse/LIM-96) | Ticket Jira (déclaration image de quai V2 - préprod, revue de code validée 25/06, commit `1b2570b164`) | 2026-06 → 07 |
|
||||
| [LIM-65](https://easywmsfrance.atlassian.net/browse/LIM-65) | Ticket Jira (étiquette support - pré-production) | 2026 |
|
||||
| [LIM-102](https://easywmsfrance.atlassian.net/browse/LIM-102) | Ticket Jira (KPI conteneurs par type de réception - préprod, revue validée 03/06, commit `5a7d213d48`) | 2026 |
|
||||
| [LIM-14](https://easywmsfrance.atlassian.net/browse/LIM-14) | Ticket Jira (séquences supports) | 2026 |
|
||||
|
||||
Reference in New Issue
Block a user