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
+98 -17
View File
@@ -1,16 +1,16 @@
---
title: "Ordres de sortie Types et libération"
title: "Ordres de sortie - Types et libération"
tags: [outbound, OS, SOR, RUT, libération, assignation, FIFO, LOC]
status: draft
standard_ref: concepts/order-outbound.md
jira_refs: []
jira_refs: [LIM-109, LIM-110]
confluence_refs: ["Expédition - LIMAGRAIN - DEV"]
sources: [FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5.docx, "Expédition - LIMAGRAIN - DEV - Confluence.md", "CR CONSOLIDES REU ERP LIMAGRAIN V1 - CR.md"]
last_updated: 2026-05-06
sources: [FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5.docx, "Expédition - LIMAGRAIN - DEV - Confluence.md", "CR CONSOLIDES REU ERP LIMAGRAIN V1 - CR.md", "Jira LIM-109 (lecture directe 2026-07-20)", "Jira LIM-110 (lecture directe 2026-07-20)"]
last_updated: 2026-07-20
author: Arthur
---
# Ordres de sortie Types et libération
# Ordres de sortie - Types et libération
> **Résumé** : 4 types d'ordres de sortie chez Limagrain, avec des
> comportements de libération, d'assignation et de préparation distincts.
@@ -51,6 +51,29 @@ re-certification. Le message d'entrée diffère selon le type.
- Chaque OS peut avoir plusieurs **lignes** (article + quantité)
- Chaque palette est étiquetée et ordonnancée par **n° STOP**
## [CUSTOM] Lot obligatoire sur les lignes d'OS (LIM-109)
> **Statut (LIM-109)** : dev terminé, en attente de déploiement pour test.
> Revue de code validée (Maxime, 29/06/2026).
La création d'un ordre de sortie ou d'une **ligne d'OS** est **interdite si
l'attribut logistique lot n'est pas renseigné**. Le lot est indispensable à
l'assignation de stock (critère « article/lot SAP », voir
[Assignation de stock](#assignation-de-stock)) : une ligne sans lot ne
pourrait jamais être servie.
Le contrôle est posé par une **subscription en Preview** sur l'event de
création de ligne d'OS, qui lève une **exception** si le lot est vide. Combiné
à `TransactionalLineList = true` (voir
[Paramètres ERP](#paramètres-erp-des-sorrut)), le refus est **total** : tout
l'import de l'OS est rejeté.
| Élément AD | Type | Rôle |
|------------|------|------|
| `CST_OutboundOrderLineCreated_CheckLotRequired_PRE` | Subscription | En **Preview** sur l'event de création de ligne d'OS ; appelle le WF de contrôle. |
| `CST_OutboundOrderLineCreated_CheckLotRequired_PRE_PR` | Workflow | Lève une exception si le lot n'est pas renseigné sur la ligne. |
| `CST_OutboundOrderLineCreation_MissingLot` | Ressource i18n | Message d'erreur « lot manquant ». |
## Paramètres ERP des SOR/RUT
| Paramètre | Valeur | Commentaire |
@@ -62,7 +85,7 @@ re-certification. Le message d'entrée diffère selon le type.
| CompleteSorList (RUT) | true | SOR absents de la RUT = supprimés |
| AllowAssignStockExcess | true | Palettes pleines, jamais de picking partiel |
| Limite d'annulation | Statut "Chargé" | Avant = OK, après = refusé |
| IgnoreNulls (RUT) | false | |
| IgnoreNulls (RUT) | false | - |
## Gestion des ruptures SOR Production
@@ -76,9 +99,63 @@ manuel.
## Quai recertification
Pour les SOR de type recertification :
`AssignedDockStationCode = "QUAI_RECERTIFICATION"` (quai fictif, renseigné
par Limagrain dans le SOR).
> **Statut (LIM-110)** : en cours de test client (pré-production). Revue de
> code validée (Maxime, 03/07/2026).
Le quai de recertification (`QUAI_RECERTIFICATION`, code porté par le
paramètre `RECERTIFICATION_CODE_QUAI`) est **assigné automatiquement** par le
WMS :
- à la **création** d'un OS de classe RECERTIFICATION
(`OutboundOrder_OutboundOrderCreatedEventHandler_PR`) ;
- à l'**édition** d'un OS auquel on ajoute la classe RECERTIFICATION (ajout
Vincent 09/07/2026).
Ce quai est **réservé à ce process**. Le **changement manuel** du quai
(assignation ou dé-assignation) est **empêché** : les boutons correspondants
sont masqués dans la vue `OutboundOrderVList` pour les OS de recertification.
> **Évolution vs V1** : le quai fictif `QUAI_RECERTIFICATION` était auparavant
> renseigné par Limagrain **dans le SOR**. Il est désormais posé
> **automatiquement** par le WMS (LIM-110).
Ce quai n'est **pas** géré par le job d'assignation des images de quai X_EXP
(LIM-94), qui **exclut** la classe Recertification (voir
[Assignation image de quai](assignation-image-quai.md)).
### Stratégie d'assignation de stock RECERTIFICATION (LIM-110)
Une stratégie d'assignation de stock spécifique, **« expédition uniquement des
supports complets »**, est forcée pour les OS de classe RECERTIFICATION :
- La stratégie (code `RECERTIFICATION`) est **toujours désactivée** en
configuration : elle n'est jamais choisie par le mécanisme standard.
- Lors de l'assignation de stock d'un OS de recertification, le choix est
**forcé** sur cette stratégie
(`StockAssignProcess_GetStockAssignStrategies_PR`).
- Le flag `AllowPick` est **forcé à `false`**
(`StockAssignProcess_GetStockToAssignForStrategy_PR`) : supports complets
uniquement, pas de picking.
- La stratégie est identifiée par une **balise `[XXX]`** dans son code, avec
`XXX = RECERTIFICATION_CODE_QUAI` ; la query
`CST_StockAssignStrategyV2_Recertification` récupère les stratégies portant
ce tag.
> ⚠️ La description du ticket indique que `RECERTIFICATION_CODE_QUAI` sert
> aussi à **identifier les OS de classe recertification** ; à relier au
> paramètre `RECERTIFICATION_CODE_CLASSE` (LIM-105) qui porte déjà ce rôle -
> voir [questions ouvertes](../08-transverse/questions-ouvertes.md).
| Élément AD | Type | Rôle |
|------------|------|------|
| `OutboundOrder_OutboundOrderCreatedEventHandler_PR` | Workflow | À la création d'un OS de recertification, assigne automatiquement le quai (paramètre `RECERTIFICATION_CODE_QUAI`). |
| `StockAssignProcess_GetStockAssignStrategies_PR` | Workflow | Filtre les stratégies d'assignation de stock à appliquer pour les OS de recertification. |
| `StockAssignProcess_GetLockAndUpdateDetail_PR` | Workflow | Récupère l'`OutboundClassCode`. |
| `StockAssignProcess_GetStockToAssignForStrategy_PR` | Workflow | Force `AllowPick = false` pour les ordres de recertification. |
| `OutboundOrderVList` | Vue | Masque les boutons d'assignation / dé-assignation de quai pour les OS de recertification. |
| `CST_StockAssignStrategyV2_Recertification` | Query | Récupère les stratégies dont le code contient le tag `[code classe recertification]`. |
| `OutboundOrder_CreatedEvent` | Subscription | Ajout du paramètre `OutboundClassCode`. |
| `RECERTIFICATION_CODE_QUAI` | Paramètre | Code du quai recertification / balise `[XXX]` de la stratégie. Voir [Paramètres projet](../07-admin/parametres-projet.md). |
## Libération
@@ -125,12 +202,12 @@ Filtres appliqués :
Dans l'ordre de priorité :
1. **Article/lot SAP + attributs logistiques** spécifiés dans le SOR/RUT
2. **Économie de mouvement** (minimum de mouvements) **prioritaire**
2. **Économie de mouvement** (minimum de mouvements) - **prioritaire**
3. **FIFO sur 24h** : standard confirmé. Les palettes reçues le même jour
ont le même FIFO (heures/minutes ignorées), ce qui permet de prendre
la palette la plus accessible dans un canal. Pas de FIFO strict
infra-journalier.
4. **Pas de FEFO** la proposition initiale de faire du FEFO sur du stock
4. **Pas de FEFO** - la proposition initiale de faire du FEFO sur du stock
sans DLC est **abandonnée**. Il n'y a pas de date d'expiration sur les
produits. Le FIFO journalier est retenu.
5. **Maximum palettes complètes** puis palettes incomplètes (avec picking)
@@ -169,7 +246,7 @@ Dans l'ordre de priorité :
- [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 aucun passage
- Stock assigné directement déposé sur l'image de quai - aucun passage
poste de travail
- Ruptures de stock ne bloquent pas l'expédition. Le client utilise
`isCritical` / `isRequired` au niveau SOR.Line si besoin.
@@ -179,7 +256,7 @@ Dans l'ordre de priorité :
- Stock assigné mais **aucune tâche** tant que poste de travail non assigné
- Le PK doit être passé en **mode recertif** (par le manager)
- Flux détaillé en 11 étapes voir
- Flux détaillé en 11 étapes - voir
[Re-certification](flux-expedition.md#re-certification)
### Messagerie carton
@@ -188,7 +265,7 @@ Dans l'ordre de priorité :
- Tous les OS de la RUT préparés **simultanément** sur un seul poste
- Tri par transporteur (l'opérateur ne dépose que sur une seule palette)
- Consolidation sur palette unique avec supports carton identifiés
- Pas d'image de quai emplacement au sol dédié par transporteur
- Pas d'image de quai - emplacement au sol dédié par transporteur
- [CUSTOM] À l'import du SOR, vérification combo shipping class code +
transporteur → si OK, poumon associé automatiquement
- Voir [Messagerie carton](flux-expedition.md#messagerie-carton)
@@ -211,11 +288,11 @@ Possible depuis EasyWMS avec choix de destination :
## Points d'attention
⚠️ La libération automatique est le mode principal la date est dans le
⚠️ La libération automatique est le mode principal - la date est dans le
message ERP.
⚠️ L'assignation spécifie **toujours** les 4 critères (article, lot SAP,
propriétaire, statut) pas d'assignation « ouverte ».
propriétaire, statut) - pas d'assignation « ouverte ».
⚠️ Le FIFO est à la **journée** (palettes du même jour = même rang FIFO),
avec l'**économie de mouvement** prioritaire sur le FIFO. Pas de FEFO.
@@ -224,7 +301,7 @@ avec l'**économie de mouvement** prioritaire sur le FIFO. Pas de FEFO.
possible **un canal dédié par route/STOP**.
⚠️ Le custom de défragmentation attend que toutes les palettes de picking
soient terminées et retournées dans l'ASRS avant de lancer les relocs
soient terminées et retournées dans l'ASRS avant de lancer les relocs -
c'est le développement clé du flux outbound.
## Historique des modifications
@@ -234,6 +311,8 @@ c'est le développement clé du flux outbound.
| 2026-05-05 | Arthur | Création initiale depuis AF V1.5 |
| 2026-05-05 | Arthur | Enrichissement : 5 types OS, FIFO 24h, pas de FEFO, custom défrag, conso OF détaillé, messagerie carton |
| 2026-05-06 | Arthur | Ajout classifications, paramètres ERP, ruptures production, quai recertif (CR consolidé) |
| 2026-07-20 | Arthur | LIM-109 (lecture directe, attente déploiement test, revue validée 29/06) : section [CUSTOM] Lot obligatoire sur les lignes d'OS (subscription Preview `CST_OutboundOrderLineCreated_CheckLotRequired_PRE` → WF exception si lot vide, ressource `CST_OutboundOrderLineCreation_MissingLot`, refus total via TransactionalLineList) ; front matter jira_refs/sources/last_updated |
| 2026-07-20 | Arthur | LIM-110 (lecture directe, pré-production, revue validée 03/07) : refonte section Quai recertification (assignation auto du quai à la création ET à l'édition d'un OS recertif, blocage du changement manuel via OutboundOrderVList, param `RECERTIFICATION_CODE_QUAI`, évolution vs V1 renseigné dans le SOR, exclusion LIM-94) + sous-section Stratégie d'assignation de stock RECERTIFICATION (supports complets uniquement, forcée, toujours désactivée, AllowPick=false, tag `[XXX]`, query `CST_StockAssignStrategyV2_Recertification`) ; table AD ; caveat param QUAI vs CLASSE |
## Références
@@ -242,3 +321,5 @@ c'est le développement clé du flux outbound.
| FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5 | Analyse fonctionnelle | 28/11/2025 |
| Expédition - LIMAGRAIN - DEV - Confluence | Page ateliers DEV | 2026 |
| CR CONSOLIDES REU ERP LIMAGRAIN V1 | CR ateliers interfaçage | 23/02/2026 |
| [LIM-109](https://easywmsfrance.atlassian.net/browse/LIM-109) | Ticket Jira (interdire lignes d'OS sans lot - attente déploiement test) | 2026 |
| [LIM-110](https://easywmsfrance.atlassian.net/browse/LIM-110) | Ticket Jira (quai recertification auto + stratégie assignation stock - pré-production) | 2026 |