Files
mcp-wms-wiki/wiki/limagrain/04-outbound/flux-expedition.md
T
arthur 7496aafe64 lint(limagrain): corrections completes Phase 1+2
- Bloquants: mermaid 03-picking/_index reconstitue (archive 11-05), 13 liens vers pages squelette retires, 2 liens recibles (anoxie, application-dictionary)
- Conventions: 910 em dashes -> tirets simples, 145 checklists -> puces question, 13 questions resolues barrees
- Liens: 9 ancres reparees (slugs GitHub)
- Delta: 12 standard_ref remappes, blocs Standard EasyWMS + sections References ajoutes, front matter complete
- Glossaire: 15 termes standard deplaces en section rappel avec renvoi
- Rapport: limagrain/_lint_report.md (Phase 1 + Phase 2 + re-scan final)
- Inclut les pages des sessions precedentes non commitees + CLAUDE.md et consume.log en l'etat
2026-07-20 12:56:42 +02:00

615 lines
29 KiB
Markdown

---
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: [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", "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
> **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
> spécifiques (re-certification, messagerie carton, consommation OF, litiges).
> **Standard EasyWMS** : → voir [Shipping](../../concepts/shipping.md)
> Ce qui suit documente les **spécificités Limagrain** par rapport au standard.
## Contexte projet
Le processus d'expédition est composé de 12 étapes. Les palettes passent
par une zone de défragmentation client dans l'ASRS avant d'être sorties
vers les poumons. Un custom clé gère l'ordonnancement : la défragmentation
ne se déclenche que quand toutes les palettes de picking sont terminées.
## Processus global
```mermaid
flowchart TD
SOR["1. Réception SOR/RUT"] --> LIB["2. Libération auto/manuelle"]
LIB --> ASSIGN["3. Assignation stock"]
ASSIGN --> GEN["4. Génération tâches"]
GEN -->|Picking requis| PK["5. Assignation poste travail"]
GEN -->|Palettes complètes| DEFRAG["CUSTOM: Défrag → zone client"]
PK --> PICK["6. Préparation au poste"]
PICK --> CADENCE["7. Cadencement tâches"]
CADENCE --> POUMON["8. Assignation poumon/quai"]
DEFRAG --> POUMON
POUMON --> SORT["9. Déplacement + étiquetage auto"]
SORT --> AGV["AGV → dépose poumon"]
AGV --> CHARG["10. Chargement camion"]
CHARG --> SOF["11. Clôture → SOF + LOF"]
SOF --> LIBRE["12. Libération quai/poumon"]
```
## Étapes détaillées
### 1. Réception de l'ordre de sortie
L'ERP envoie une commande d'expédition vers EasyWMS : un **SOR** (commande
de sortie) ou un **RUT** (image camion pouvant contenir plusieurs SOR
ordonnancés par n° de STOP). Voir [Ordres de sortie](shipping-orders.md).
### 2. Libération de l'ordre de sortie
| Mode | Description |
|------|-------------|
| Automatique | Date/heure de libération définie dans le SOR/RUT (mode principal). Par défaut `PlannedShippingDate - 48h`. |
| Manuelle | Depuis l'écran des ordres de sortie dans EasyWMS |
### 3. Assignation du 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).
### 4. Génération des tâches
| 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 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.
>
> **Deux customs complémentaires** gèrent l'ordonnancement par STOP :
> quai non assigné → [Défragmentation custom](../02-stockage/defragmentation.md),
> quai assigné → [Séquençage shipping par STOP](sequencage-shipping-stop.md).
> **Note** : l'information du passage en conteneur client est disponible
> dans le LOC envoyé périodiquement à SAP.
### 5. Assignation du poste de travail
Assignation **automatique** depuis EasyWMS. Modes possibles par poste :
Picking, Réception, Regroupement, Échantillonnage, Recertification, Tous.
**Contrainte** : seuls les postes **P5 et P6** (équipés palan) peuvent
être assignés pour les processus comportant au moins une palette Big-Bag.
**Priorité** : WS PK picking rob en priorité, et si trop limité, utiliser
le **process RF** comme fallback (plus robuste pour picking négatif,
multi-tables, etc.). Le process de réception est déjà plugué au mode
Automatic tasks de la WS (custom) → même mode pour le picking.
Voir [Stations picking](../03-picking/stations-picking.md).
### 6. Préparation au poste de travail
#### Arrivée des palettes (toujours un poste 3 TP)
- Première palette au **centre** si picking négatif proposé, sinon sur un côté
- Si une palette est sur un côté et qu'on propose du picking négatif →
prévenir l'opérateur de déplacer la palette au centre
- La palette client revient **toujours** au centre
- Pas de prépa sur 6 TP en simultané
#### Ordonnancement des prélèvements
1. **Espèce Maïs** toujours en premier (pas la variété)
2. Puis espèce avec la **plus grande quantité** dans la commande
3. Si égalité : **article/lot le plus lourd** en base de palette
**Mapping Espèce → stack (gerbabilité)** : maïs = stack 0 (le plus
lourd/stable, en base). [CUSTOM] Gestion en async sur l'ITM pour calculer
la gerbabilité automatiquement à la création de l'article. Tri via
workflow `StackerCrane_SortTasks_PR`.
#### Règles de picking
| 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. |
| 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
[CUSTOM] Logique combinatoire complète gérant : picking négatif et
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).
**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
manuellement sur pile quand vidée.
#### Étiquetage au picking
**Palettes MII et multi-lots** : 1 étiquette HU RFID pour la palette
physique (HU mère) + 1 étiquette HU sans RFID par ligne de stock
(HU fille / intercalaire). Impression auto à chaque nouvelle palette
(RFID) et à chaque article (intercalaire).
**Autres palettes** : 1 étiquette HU RFID uniquement. Basé sur la
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.
#### Filmage
Avant chaque évacuation, l'opérateur choisit le programme 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** :
| Code | Espèce | Contenant | Mode |
|------|--------|-----------|------|
| A | Tournesol | Sacs | Complet |
| B | Tournesol | Sacs | Réduit |
| C | Tournesol | Big Bag | Complet |
| D | Tournesol | Big Bag | Réduit |
| E | Maïs & Blé | Sacs | Complet |
| F | Maïs & Blé | Sacs | Réduit |
| G | Maïs & Blé | Big Bag | Complet |
| H | Maïs & Blé | Big Bag | Réduit |
Voir [Picking combinatoire](../03-picking/picking-combinatoire.md) pour
les détails du processus de préparation.
### 7. Cadencement des tâches
Séquence pour une commande « classique » :
1. Lancement de la commande (quelques heures/jours avant la prépa réelle)
2. Les tâches de shipping **ne se déclenchent pas** tant que le poumon/quai
n'est pas assigné
3. Les palettes deviennent « client » → information dans le LOC
4. Si la commande n'a pas de poumon assigné, ou si TK dispo (tâche prio
très basse), l'ASRS déplace les palettes de shipping vers une **zone
tampon** du magasin proche des sorties (via défrag en tâche de fond)
5. Si un PK est dispo, les tâches de picking se génèrent → palettes
vont aux PK
6. À chaque palette pickée et terminée :
- Selon classe de commande → retour TK ou non
- Si retour ASRS : tâche AGV (PK → Entrée TK)
- Si messagerie : tâche vers le poumon d'expédition choisi manuellement
- Si aucun poumon choisi → prompt
7. La palette de picking **re-rentre dans le TK directement au bon
endroit** (zone client) avec si possible canal dédié à la route. Pas
de stockage temporaire puis défrag la nuit.
8. Assignation du poumon → génération des tâches de shipping
### 8. Assignation quai / poumon
**Par défaut** : un quai « QUAI_TEMPORAIRE » est assigné, accessible par
toutes les images de quai. Simplement assigner un poumon pour lancer la
livraison.
**À la libération** : le stock va jusqu'à l'image de quai (poumon exp).
Le vrai quai est précisé ultérieurement (affichage chauffeur). Association
commande ↔ quai pour le chargement, camion ↔ quai dans une vue dédiée.
**Dès qu'un poumon est assigné** : les tâches de mouvement vers ce poumon
sont générées, même si aucun quai n'est encore assigné.
Voir [Quais et poumons](consolidation-chargement.md).
### 9. Déplacement et étiquetage automatique
Palettes sortent de la zone défrag → poste de sortie ASRS.
**Étiqueteuse automatique** : deux étiqueteuses au niveau des 2 postes de
sortie TK.
Voir la section [Étiqueteuse automatique](#étiqueteuse-automatique)
ci-dessous pour le fonctionnement détaillé.
Ordonnancement des palettes sur le poumon par **n° STOP** (ordre de
livraison). Les AGV déposent en respectant l'ordre des arrêts.
### 10. Chargement camion
Le chargement camion est créé par le RUT.
1. Vérification que la palette a été étiquetée automatiquement. Si échec :
impression manuelle via imprimante sur les quais.
2. Scan de l'étiquette pour confirmer la prise en charge
3. Dépose de la palette dans le camion
4. Palette suivante jusqu'à fin de chargement
**Fermeture auto** si chargement complet : possibilité de lancer un
CloseCommand sur l'OS pour expédier ce qui est chargé.
### 11. Clôture de l'ordre de sortie
- **Automatique** lorsque tous les conteneurs sont chargés
- Messages **SOF + LOF** envoyés vers SAP
Dans un SOF, les lignes sans quantité expédiée **n'apparaissent pas**
(pas de ligne à 0).
Si un premier chargement est clôturé partiellement → vérifier si un
deuxième chargement est recréé automatiquement pour le reliquat.
> ⚠️ À paramétrer et tester : comportement du reliquat chargement
> camion, notamment avec fichier RUT.
- Le LOF représente l'image exacte du camion (palettes physiquement
chargées)
- Si une commande est expédiée sur 2 camions → 2 LOF distincts
- X SOF par commande si expédition partielle
### 12. Libération quai / image de quai
| Élément | Mode de libération |
|---------|-------------------|
| 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 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 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 - décision d'impression (LIM-111)
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.
| É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. |
**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).
**Mise à jour du flag** après passage à l'étiqueteuse :
- Impression OK → `CstAtt14` passe à `true`
- Impression échouée → `CstAtt14` passe à `error` (voir Gestion des pannes)
> ⚠️ La condition « PLC Height Type ≠ 1 » sur l'étiquette d'expédition
> reste **à vérifier** avec le fournisseur (LIM-111 §4.2).
### Mode dégradé - Chargement camion
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)
2 rapports différents → **2 docs de 1 page** (= 2 demandes d'impression
simultanées). L'étiqueteuse articulée colle à 2 endroits différents sur
la palette (positions à définir avec Théo).
### Gestion des pannes
- Imprimante en échec → erreur envoyée à Galileo → Galileo met en
**défaut la ET (station)** correspondante
- Si une des deux étiqueteuses est HS → Galileo reroute automatiquement
vers l'autre poste de sortie
- [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
administrative**.
**Pré-requis** : le PK doit être passé en **mode recertif** (par le
manager), ce qui bloque le PK pour les autres types de tâches.
**Flux détaillé :**
1. L'ERP envoie un SOR de type « Recertification »
2. Le WMS crée une tâche vers QUAI_RECERTIF. La route passe par le PK
(seul chemin possible)
3. L'AGV amène la palette au PK assigné
4. [CUSTOM] **Event à l'arrivée sur le PK** : on stocke le code du PK
(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 :
- 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
la capacité correcte et empêcher le WMS d'envoyer de nouvelles
palettes sur un PK physiquement occupé)
7. L'ERP reçoit le SOF → mise à jour avec son MII en interne
8. L'opérateur recertifie physiquement la palette, ré-étiquette (hors WMS)
9. L'ERP renvoie un **ASN** avec la nouvelle identité palette
10. [CUSTOM] L'opérateur scanne la palette recertifiée au PK → le WMS
propose de choisir la table (prompt position PK). La palette passe
de ASN au bon emplacement PK. La **palette vide est supprimée**
automatiquement.
11. L'opérateur appuie sur « Ranger support » → AGV vient la chercher →
passage au PIE de réception (standard)
> ⚠️ **Risque** : si l'ASN n'est pas encore arrivé au moment du scan →
> erreur, réessayer plus tard.
> ⚠️ **3 mini-customs identifiés** : event de stockage CstAtt + event
> de fermeture/création palette vide + suppression palette vide au scan ASN.
### Messagerie carton
**Solution recommandée** : **Pick and Pack** (module transporteur). Plus
simple, pas de colisage séparé, impression étiquette directe. **Nécessite
le module transporteur.** Plan B : fusion des lignes comme alternative.
**Sans module transporteur** : custom le picking PK avec un mode
« messagerie carton » :
1. Commandes descendues dans un RUT de type « Messagerie carton » (classe
d'expédition)
2. Tous les OS préparés en simultané sur un seul poste de travail
3. Tri par transporteur (l'opérateur ne peut déposer que sur une seule
palette). Via modèle d'expédition à créer avec le client.
4. Impression étiquette colis à la première tâche de picking
(SOR.Code, SOR.Account, SOR.Delivery, SSCC colis 128)
5. Consolidation sur palette unique
6. Prélèvement dans un carton (support identifié) puis sur palette
7. Indicateur à l'opérateur quand un carton ne recevra plus de stock →
fermer le carton
8. Bouton « Palette pleine » sur la WS :
- Impression SSCC
- Collage par l'opérateur
- Prompt du code
- Remontage des supports « colis » sur la palette
9. Fermeture auto aussi possible si palette n'attend plus de stock
10. AGV récupère la palette vers le quai
**Assignation poumon** : [CUSTOM] à l'import du SOR, vérification combo
shipping class code + transporteur → si OK, poumon associé automatiquement.
L'idée retenue est de **ne pas** utiliser d'image de quai classique (sinon
perte de 25 places) mais un **emplacement au sol par transporteur**
(ex: emplacement « Colissimo », « Chronopost »).
> ⚠️ Custom à prévoir pour que la fermeture fonctionne dans le cas d'un
> support non client possédant des supports clients.
### Consommation OF hors recertification
**Prérequis** :
- `AllowAssignStockExcess` à `true` dans la SOR.Line
- Modèle d'expédition avec une stratégie d'assignation de stock
- [CUSTOM] Stratégie d'assignation excluant les supports multi-lignes
(= mono-ref uniquement). Combiné avec AllowAssignStockExcess → shipping
sans picking.
- Stock assigné directement déposé sur l'image de quai
- Pas de passage par un poste de travail
Pour les SOR de classe Production, les ruptures de stock ne bloquent pas
l'expédition. Le client utilise `isCritical` / `isRequired` au niveau
SOR.Line si besoin.
### Gestion des litiges (sac endommagé)
1. La palette arrive au PK
2. Problème constaté par l'opérateur sur un stock à picker :
- Bouton « Problème » → « Modif quantité »
- 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) :
- **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
au sol buffer litige** (à valider avec le client)
4. Retour au flux classique
## Modes opératoires
Tous les process doivent être pensés en **3 modes** :
| Mode | Description |
|------|-------------|
| Full AGV | Fonctionnement nominal |
| Mixte | AGV + caristes (cas probable en montée en charge) |
| Full TRF (caristes) | Mode dégradé sans AGV |
Le module AGV standard permet la finalisation manuelle (simulation AGV).
4 TRF disponibles sur site. Réunion dédiée à planifier pour les modes
dégradés.
## Points d'attention
⚠️ L'ordonnancement des palettes sur le poumon respecte le n° STOP.
⚠️ Le custom de défragmentation est le développement clé : il attend que
toutes les palettes de picking soient terminées avant de lancer les relocs.
⚠️ La clôture est automatique pour les OS complets mais **manuelle** en
cas d'expédition partielle.
⚠️ Le message MOV est **annulé** (décision réunion client).
⚠️ Les 3 modes opératoires (Full AGV / Mixte / Full TRF) doivent être
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
de stockage ? (@Nicolas)
- ❓ Fermeture auto OS si chargement complet - standard ou custom ?
(@Nicolas)
- ❓ 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)
- É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
| Date | Auteur | Modification |
|------|--------|--------------|
| 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-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 |