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:
2026-07-20 12:56:42 +02:00
parent 23eb3f3c84
commit 7496aafe64
59 changed files with 6457 additions and 2023 deletions
+175 -50
View File
@@ -1,16 +1,16 @@
---
title: "Flux expédition Processus complet"
title: "Flux expédition - Processus complet"
tags: [outbound, expédition, défragmentation, étiquetage, chargement, recertification, messagerie, litiges, AGV]
status: draft
standard_ref: concepts/shipping.md
jira_refs: []
jira_refs: [LIM-105, LIM-107, LIM-111]
confluence_refs: ["Expédition - LIMAGRAIN - DEV"]
sources: [FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5.docx, "Expédition - LIMAGRAIN - DEV - Confluence.md"]
last_updated: 2026-05-13
sources: [FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5.docx, "Expédition - LIMAGRAIN - DEV - Confluence.md", "Jira LIM-105 (lecture directe 2026-07-20)", "Jira LIM-107 (lecture directe 2026-07-20)", "Jira LIM-111 (lecture directe 2026-07-20)"]
last_updated: 2026-07-20
author: Arthur
---
# Flux expédition Processus complet
# Flux expédition - Processus complet
> **Résumé** : processus d'expédition de bout en bout en 12 étapes, de la
> réception de l'OS jusqu'à la libération du quai, incluant les flux
@@ -63,7 +63,7 @@ ordonnancés par n° de STOP). Voir [Ordres de sortie](shipping-orders.md).
### 3. Assignation du stock
Voir [Ordres de sortie Assignation](shipping-orders.md#assignation-de-stock)
Voir [Ordres de sortie - Assignation](shipping-orders.md#assignation-de-stock)
pour les stratégies détaillées (FIFO 24h, économie de mouvement, pas de
FEFO, max palettes complètes).
@@ -71,12 +71,12 @@ FEFO, max palettes complètes).
| Type de palette | Action |
|-----------------|--------|
| Palettes complètes / picking terminées | [CUSTOM] Tâche de défragmentation (reloc) vers zone d'expédition ASRS. Ne se déclenche que si **toutes** les palettes clientes sont « terminées » et qu'aucun quai n'est associé à l'OS. Voir [Défragmentation custom](../02-stockage/defragmentation.md#custom-défrag-client-par-tournée--quai-non-assigné-lim-87). |
| Palettes complètes / picking terminées | [CUSTOM] Tâche de défragmentation (reloc) vers zone d'expédition ASRS. Ne se déclenche que si **toutes** les palettes clientes sont « terminées » et qu'aucun quai n'est associé à l'OS. Voir [Défragmentation custom](../02-stockage/defragmentation.md#custom-défrag-client-par-tournée---quai-non-assigné-lim-87). |
| Palettes picking | Aucune tâche tant qu'un poste de travail n'est pas assigné |
> **Règle générale** : on n'envoie aucune palette sur l'image de quai tant
> que le picking n'est pas terminé (et que les palettes sont revenues à
> l'ASRS) sauf si le stop précédent est fini.
> l'ASRS) - sauf si le stop précédent est fini.
>
> **Deux customs complémentaires** gèrent l'ordonnancement par STOP :
> quai non assigné → [Défragmentation custom](../02-stockage/defragmentation.md),
@@ -126,7 +126,7 @@ workflow `StackerCrane_SortTasks_PR`.
| Règle | Détail |
|-------|--------|
| Picking négatif | **Deux conditions cumulatives** (réu. 11/05/2026) : seuil fiche article (défaut **55%**, pas 50%) ET poids unitaire sac **≥ 7 kg**. Si l'une des deux n'est pas remplie → picking direct classique. Voir [Picking combinatoire](../03-picking/picking-combinatoire.md#custom-règle-du-picking-négatif). |
| ~~Traitement commercial~~ | ~~Articles avec/sans traitement sur palettes filles séparées~~ **SUPPRIMÉ** (réu. 11/05/2026, `CONTROLE_TRAITEMENT_COMMERCIAL = false`). L'entrepôt ne fait pas de bio. |
| ~~Traitement commercial~~ | ~~Articles avec/sans traitement sur palettes filles séparées~~ - **SUPPRIMÉ** (réu. 11/05/2026, `CONTROLE_TRAITEMENT_COMMERCIAL = false`). L'entrepôt ne fait pas de bio. |
| Verrou « HORS TOLERANCE » | Si présent → recomptage avant picking. Si stock restant suffisant après inventaire → assignation maintenue. Sinon → réassignation ailleurs + retrait verrou. |
#### Algorithme de répartition des palettes sur les TP
@@ -135,7 +135,7 @@ workflow `StackerCrane_SortTasks_PR`.
enchaînements, ordonnancement par espèce, terminer une palette pleine
avant d'en entamer une autre, cadencement des buffers, pas de mélange
traitement commercial, contrainte opérateur (pas de déplacement de sacs
d'une table à l'autre sacs lourds).
d'une table à l'autre - sacs lourds).
**Table du milieu** : toujours occupée soit par une palette de picking
négatif, soit par une palette vide de dépôt. Palette vide remise
@@ -154,12 +154,16 @@ classe de commande.
#### Message MOV
~~À chaque déplacement de stock durant le picking, un message MOV est
envoyé à SAP.~~ **ANNULÉ** vu en réunion client, jugé inutile.
envoyé à SAP.~~ **ANNULÉ** - vu en réunion client, jugé inutile.
#### Filmage
Avant chaque évacuation, l'opérateur choisit le programme de filmage
(CstData transmis à Galileo). Possibilité de choisir « pas de filmage ».
(stocké dans `CstAtt05`, transmis à Galileo). Possibilité de choisir « pas
de filmage ». Le mécanisme de transmission (event `MovementCreated` sur
source PIE_02 → CustomData de la tâche) est décrit dans
[Configuration Galileo - Transmission du filmage](../02-stockage/galileo-config.md#transmission-du-programme-de-filmage-à-la-filmeuse-lim-115)
(LIM-115).
**Programmes de filmage disponibles** :
@@ -264,47 +268,90 @@ deuxième chargement est recréé automatiquement pour le reliquat.
| Élément | Mode de libération |
|---------|-------------------|
| Image de quai | **Automatique** dernière palette chargée |
| Quai | **Manuel** départ du camion |
| Image de quai | **Automatique** - dernière palette chargée |
| Quai | **Manuel** - départ du camion |
## Étiqueteuse automatique
> **Statut** : le **mécanisme d'intégration Galileo** est spécifié dans
> **LIM-111** (Ouvert) ; le **contenu des rapports** relève de **LIM-107** ;
> la **pose initiale du flag `CstAtt14` au PK** relève de **LIM-91**. Cette
> section documente le fonctionnement au poste de sortie TK.
### Principe
Deux étiqueteuses au niveau des deux postes de sortie TK, pouvant imprimer
une ou plusieurs étiquettes selon le processus.
Deux étiqueteuses automatiques, **LBLM_01** et **LBLM_02** (stations de type
**ET**), équipent les deux postes de sortie de l'ASRS, sur les convoyeurs
allant vers les images de quai. Elles servent **uniquement** aux supports
qui sortent de l'ASRS pour aller **directement sur une image de quai** dans
un flux d'expédition. Elles peuvent poser une ou deux étiquettes selon le
processus. Le WMS envoie un *print command* avec l'un des rapports (mono ou
multiréférence) - voir
[Étiquette support RFID](../01-inbound/etiquette-rfid.md).
Positionnement dans la chaîne : sortie TK (ordonnancée par n° STOP, voir
[Séquençage shipping par STOP](sequencage-shipping-stop.md)) → table de
sortie TK → **étiqueteuse ET** → poste de sortie PS → AGV Still → image de
quai → chargement camion.
### Étiquetage au picking (étiqueteuse auto)
100% des palettes passant par le picking sont étiquetées (étiquette
d'expédition) directement au PK. Un `CstAtt` est positionné à `true` sur
la palette pour indiquer qu'elle a déjà été étiquetée.
100% des palettes passant par le picking sont étiquetées (étiquette de
picking HU RFID) directement au PK. Le flag `CstAtt14` est positionné à
`true` sur la palette (LIM-91) pour indiquer qu'elle a déjà été étiquetée.
### Comportement à la sortie TK
### Comportement à la sortie TK - décision d'impression (LIM-111)
L'étiqueteuse **n'imprime pas** si :
Deux étiquettes **distinctes** peuvent être posées, avec des règles
**séparées**. Le flag **`CstAtt14`** (Container, String - voir
[AD Customs](../07-admin/ad-customs.md#cstatt-support-container--palette)) ne conditionne
que la **2e** (étiquette de picking), pas l'étiquette d'expédition.
- `CstAtt` = `true` (palette déjà étiquetée au picking)
- OU hauteur palette trop faible (PLC height type = 1)
| Étiquette | Rapport | Condition d'impression |
|-----------|---------|------------------------|
| Expédition (client / production) | LIM-107 | **Toujours**, sauf palette trop basse (PLC Height Type = 1). Indépendante de `CstAtt14`. |
| Picking (HU RFID mono/multiréférence) | LIM-68 | Uniquement si `CstAtt14` = `false`/vide **et** PLC Height Type ≠ 1. Non imprimée si `CstAtt14` = `true` (déjà étiquetée au PK) ou palette trop basse. |
L'étiqueteuse **imprime** si :
**Cas d'usage de la 2e étiquette** : une palette complète sortie
directement de l'ASRS vers l'image de quai **sans passer par un poste de
picking** n'a pas ses étiquettes HU RFID → `CstAtt14` vide → l'étiqueteuse
les pose (monoref ou multiref RFID selon le nombre de lignes de stock).
- `CstAtt` = `false` ET PLC height type ≠ 1
- Si impression réussie → `CstAtt` passe à `true`
- Si impression échouée → `CstAtt` passe à `error`
**Mise à jour du flag** après passage à l'étiqueteuse :
### Mode dégradé — Chargement camion
- Impression OK → `CstAtt14` passe à `true`
- Impression échouée → `CstAtt14` passe à `error` (voir Gestion des pannes)
Si l'opérateur scanne une palette sans étiquette (`CstAtt` = `false` ou
`error`, PLC height type ≠ 1) au chargement camion → impression
automatique sur une imprimante proche du quai.
> ⚠️ La condition « PLC Height Type ≠ 1 » sur l'étiquette d'expédition
> reste **à vérifier** avec le fournisseur (LIM-111 §4.2).
### Communication Galileo
### Mode dégradé - Chargement camion
On envoie un **custom data** à Galileo (pas de changement de
destination/route). Galileo, en recevant le custom data avec le bon
tracking de palette, arrête les rouleaux et lance l'impression. Un seul
chemin — l'arrêt est piloté par le custom data.
Si l'opérateur scanne une palette sans étiquette (`CstAtt14` = `false` ou
`error`, PLC height type ≠ 1) au chargement camion → le WMS propose de
réimprimer le rapport d'expédition (LIM-107), avec prompt du code
imprimante. Réimpression via imprimante proche du quai (menu TRF dédié).
### Communication Galileo (LIM-111)
Pilotage **par custom data**, sans changement de destination ni de route
(un seul chemin physique). Même principe que le filmage (CstAtt05 → custom
data, voir LIM-91).
Points d'insertion :
- **Subscription sur l'event `MovementCreated`** : si la destination est
une étiqueteuse (`LBLM_01`/`LBLM_02`), le WMS met à jour le **CustomData
de la tâche** avec le **nombre d'étiquettes** à imprimer. Ce nombre est
essentiel : il indique au **bras articulé** s'il y a une ou deux
positions de collage.
- Galileo, en recevant le custom data avec le bon tracking de palette,
**arrête les rouleaux**.
- À la **fin d'ordre** (event = palette arrivée à l'étiqueteuse), le WMS
lance le **`printerCommand`**. Le contenu du rapport est envoyé
directement à l'imprimante par EasyWMS via le **`printerService`**.
- Galileo gère l'impression et le **collage**, puis la **relance des
rouleaux**.
### Multi-étiquettes (2 étiquettes)
@@ -321,10 +368,68 @@ la palette (positions à définir avec Théo).
- [CUSTOM Galileo] Communication HS imprimante → mise en défaut ET à
documenter dans le document TMS
### Contenu des étiquettes d'expédition par type (LIM-107)
> **Statut (LIM-107)** : en revue de code.
Dès qu'une palette sort de l'installation pour expédition, un rapport est
imprimé **selon le type d'expédition** (classe de l'OS). Format **A5**. Le
type est déterminé par la classe de l'OS via les paramètres
`EXPEDITION_CLASSE_CLIENT` / `EXPEDITION_CLASSE_PRODUCTION` (voir
[Paramètres projet](../07-admin/parametres-projet.md)).
Où l'étiquette est imprimée (arbitrage Justine 02/07/2026) :
- **Client** et **Production** → sur les **étiqueteuses automatiques**
d'expédition (sortie TK).
- **Échantillonnage** → sur les **étiqueteuses des postes de travail**, via
le flux inventaire COR/COF. Contenu détaillé dans
[Échantillonnage - Étiquette d'échantillonnage](../03-picking/echantillonnage.md#étiquette-déchantillonnage-lim-107).
Étiquette **CLIENT** (report `CST_RPT_OUTBOUND_CLIENT`) :
| # | Champ |
|---|-------|
| 1 | Code de la tournée |
| 2 | Code de l'OS |
| 3 | Code du transporteur de l'OS |
| 4 | Adresse de livraison de l'OS |
Étiquette **PRODUCTION** (report `CST_RPT_OUTBOUND_PRODUCTION`) :
| # | Champ |
|---|-------|
| 1 | Code de l'OS |
| 2 | Code-barre 128 du code de l'OS |
| 3 | `SOR.Document` |
Une **impression manuelle** est aussi disponible depuis la vue conteneurs
(`ContainerVList`) via deux boutons (« Imprimer étiquette d'expédition
client / production »), affichés sous condition que le conteneur soit un
conteneur client ou d'expédition de la bonne classe d'OS.
| Élément AD | Type | Rôle |
|------------|------|------|
| `EXPEDITION_CLASSE_CLIENT` / `EXPEDITION_CLASSE_PRODUCTION` | Paramètre | Classe d'OS identifiant le type d'expédition (client / production). |
| `CST_RPT_OUTBOUND_CLIENT` | Report | Étiquette d'expédition client. |
| `CST_RPT_OUTBOUND_PRODUCTION` | Report | Étiquette d'expédition production. |
| `CST_RPT_ECHANTILLONAGE` | Report | Étiquette d'échantillonnage (voir [Échantillonnage](../03-picking/echantillonnage.md)). |
| `CST_VSearchPrintShippingClientContainerLabel` | Vue | Génération de l'étiquette d'expédition client. |
| `CST_VSearchPrintShippingProductionContainerLabel` | Vue | Génération de l'étiquette d'expédition production. |
| `ContainerVList` | Vue | Ajout des 2 boutons de génération d'étiquette (sous condition de classe d'OS). |
| `CST_ContainerVList_Action_PrintShippingClientLabel` / `...ProductionLabel` | Ressource i18n | Libellés des boutons d'impression. |
| `CST_ShippingClientContainerLabel` (client + production) | Ressource i18n | Libellés « Générer étiquette expédition client / production ». |
## Flux spécifiques
### Re-certification
> **Workstation LIM-105** : le **process opérateur détaillé au poste de
> picking** (scan ancienne/nouvelle étiquette, vérification ASN via
> `SAP_ATH111_*`, échange de conteneur, filmage, éléments AD) est documenté
> dans [Recertification - Workstation au poste de picking](../03-picking/recertification.md).
> La section ci-dessous décrit le **flux outbound** de bout en bout.
La re-certification consiste à ré-étiqueter une palette existante pour
lui donner une nouvelle identité (nouvelle HU) sans déplacer physiquement
le stock. C'est une **sortie administrative** suivie d'une **réception
@@ -343,7 +448,7 @@ manager), ce qui bloque le PK pour les autres types de tâches.
(ex: PK02) dans un CstAtt de la palette
5. **Route virtuelle** : la palette est déplacée informatiquement du PK
vers QUAI_RECERTIF
6. [CUSTOM] **Event sur le déplacement vers QUAI_RECERTIF** 3 actions :
6. [CUSTOM] **Event sur le déplacement vers QUAI_RECERTIF** - 3 actions :
- Récupération du CstAtt (code PK d'origine)
- Fermeture de la commande → expédition du stock → génération du SOF
- Création d'une **palette vide** sur le PK d'origine (pour maintenir
@@ -426,7 +531,7 @@ SOR.Line si besoin.
- S'il reste du stock dispo : assignation maintenue (workflow
`OnStockAdjust` recalcule uniquement si nécessaire)
- Si plus assez de stock → réassignation ailleurs
3. Autre problème le support n'est pas ok (90% du stock a un problème) :
3. Autre problème - le support n'est pas ok (90% du stock a un problème) :
- **Verrou de support** interdisant le picking (bouton « mettre sous
révision » en standard, à configurer)
- Tâche créée pour que l'AGV dépose la palette sur un **emplacement
@@ -464,20 +569,26 @@ documentés pour chaque process.
## Questions ouvertes
- [ ] Ordonnancement des palettes dans le canal du poumon d'expé du
magasin automatique géré par le WMS ou naturellement via l'ordre
- Ordonnancement des palettes dans le canal du poumon d'expé du
magasin automatique - géré par le WMS ou naturellement via l'ordre
de stockage ? (@Nicolas)
- [ ] Fermeture auto OS si chargement complet standard ou custom ?
- Fermeture auto OS si chargement complet - standard ou custom ?
(@Nicolas)
- [ ] Comportement du reliquat chargement camion avec fichier RUT
- Comportement du reliquat chargement camion avec fichier RUT -
à paramétrer et tester (@Fabien)
- [ ] Positions des 2 étiquettes articulées sur la palette (@Théo)
- [ ] Custom Galileo : communication HS imprimante → mise en défaut ET
à documenter dans le TMS (@Théo)
- [ ] Combien de commandes messagerie en parallèle sur un poste ? (@Justine)
- [ ] Emplacement au sol buffer litige — localisation exacte (@Théo)
- [ ] Emplacement au sol messagerie carton par transporteur (@Théo)
- [ ] Réunion technique avec Still pour valider le problème de dépose
- Positions des 2 étiquettes articulées sur la palette (@Théo)
- Custom Galileo : communication HS imprimante → mise en défaut ET
- à documenter dans le TMS (@Théo)
- Étiqueteuse auto (LIM-111) : mécanisme de remontée d'une erreur
d'impression par les automates au WMS à définir - nécessaire pour que
le mode dégradé TRF sache si l'impression a réussi (@Vincent)
- Étiqueteuse auto (LIM-111) : palette à l'arrêt en cas de problème
d'impression - intervention opérateur (laquelle ?) et procédure de
redémarrage de la palette à définir (@Théo / @Vincent)
- ❓ Combien de commandes messagerie en parallèle sur un poste ? (@Justine)
- ❓ Emplacement au sol buffer litige - localisation exacte (@Théo)
- ❓ Emplacement au sol messagerie carton par transporteur (@Théo)
- ❓ Réunion technique avec Still pour valider le problème de dépose
AGV sur image de quai (@Théo)
## Historique des modifications
@@ -486,4 +597,18 @@ documentés pour chaque process.
|------|--------|--------------|
| 2026-05-05 | Arthur | Création initiale depuis AF V1.5 |
| 2026-05-05 | Arthur | Réécriture complète depuis ateliers DEV expédition |
| 2026-05-13 | Arthur | Correction seuil picking négatif 50% → 55% + poids ≥ 7 kg, suppression règle traitement commercial |
| 2026-05-13 | Arthur | Correction seuil picking négatif 50% → 55% + poids ≥ 7 kg, suppression règle traitement commercial |
| 2026-07-20 | Arthur | Renvoi vers la nouvelle page [Recertification workstation](../03-picking/recertification.md) (LIM-105) depuis la section Re-certification ; front matter jira_refs/sources/last_updated |
| 2026-07-20 | Arthur | LIM-107 (lecture directe, en revue de code) : sous-section « Contenu des étiquettes d'expédition par type » sous Étiqueteuse automatique (format A5 ; Client/Production sur étiqueteuses auto, Échantillonnage sur poste via COR/COF ; contenu étiquettes Client 4 champs + Production 3 champs ; params EXPEDITION_CLASSE_CLIENT/PRODUCTION ; reports/vues/ContainerVList/ressources ; impression manuelle via 2 boutons ContainerVList) ; front matter jira_refs +LIM-107/sources |
| 2026-07-20 | Arthur | LIM-111 (lecture directe, Ouvert) : formalisation de l'intégration Galileo de l'étiqueteuse (noms de stations LBLM_01/LBLM_02 type ET ; refonte « Comportement à la sortie TK » en logique 2 étiquettes distinctes - expédition LIM-107 toujours sauf palette basse, picking LIM-68 conditionnée par CstAtt14 ; mécanisme Galileo subscription MovementCreated → CustomData nombre d'étiquettes → printerCommand/printerService ; CstAtt14 nommé) ; front matter jira_refs +LIM-111/sources ; 2 questions ouvertes (remontée erreur impression, palette à l'arrêt) |
| 2026-07-20 | Arthur | Lint : ajout section Références ; correction ancres et liens |
## Références
| Source | Type | Date |
|--------|------|------|
| FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5 | AF (docx) | 2026 |
| "Expédition - LIMAGRAIN - DEV" Confluence | Page | 2026 |
| [LIM-105](https://easywmsfrance.atlassian.net/browse/LIM-105) | Ticket Jira (lecture directe) | 2026-07-20 |
| [LIM-107](https://easywmsfrance.atlassian.net/browse/LIM-107) | Ticket Jira (lecture directe) | 2026-07-20 |
| [LIM-111](https://easywmsfrance.atlassian.net/browse/LIM-111) | Ticket Jira (lecture directe) | 2026-07-20 |