--- 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: [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", "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 > **Résumé** : 4 types d'ordres de sortie chez Limagrain, avec des > comportements de libération, d'assignation et de préparation distincts. > **Standard EasyWMS** : → voir [Order Outbound](../../concepts/order-outbound.md) > Ce qui suit documente les **spécificités Limagrain** par rapport au standard. ## Contexte projet L'expédition chez Limagrain couvre des flux variés : commandes clients (palettes et messagerie), approvisionnement production (OF), et re-certification. Le message d'entrée diffère selon le type. ## Types d'ordres de sortie | Type | Message ERP | Passage poste travail | Destination | |------|-------------|----------------------|-------------| | Commande client | RUT « Client » | Si picking nécessaire | Image de quai | | Messagerie palette | RUT « Client » | Si picking nécessaire | Image de quai | | Conso OF hors recertification | SOR « Production » | Non | Image de quai direct | | Conso OF avec recertification | SOR « Recertification » | Oui | Route virtuelle → réception ASN | | Messagerie carton | RUT « Messagerie » | Oui | Emplacement au sol dédié | ## Classification (OutboundClassCode) | OutboundClassCode | Usage | AccountCode | |-------------------|-------|-------------| | PRODUCTION | Flux vers l'ancien magasin / M2I | PRODUCTION | | RECERTIFICATION | Flux vers postes de travail SRS | PRODUCTION | | CLIENT | Commandes clients | CLIENT | ## Structure RUT / SOR - **RUT** = image camion, peut contenir **plusieurs OS** (même camion). Un seul message contenant : Route → SorList → Lignes (pas de fichiers RUT + SOR séparés) - **SOR** = commande de sortie de marchandise (1 ou plusieurs palettes) - 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 | |-----------|--------|-------------| | OutboundType | 0 (Customer) | Même pour production | | Priorité par défaut | 3 (Basse) | Échelle : 0=Urgente → 4=Très basse | | AutoReleaseDate | PlannedShippingDate - 48h | Si < 48h → date passée = libération immédiate | | TransactionalLineList | true | Tout ou rien (refus total si erreur) | | 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 | - | ## Gestion des ruptures SOR Production SAP ne connaît pas la répartition stock entre ASRS et autres entrepôts. Beaucoup de lignes seront en rupture (affichage rouge = **normal et attendu**). Le WMS prépare ce qu'il peut, SAP supprime le résiduel 3-4 jours plus tard via un DELETE complet du SOR. Pas de SOF en phase 1 pour la production. Détection des manquants = mode manuel. ## Quai recertification > **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 ### Libération automatique (mode principal) La date/heure de libération est descendue dans l'interface SOR ou RUT. EasyWMS vérifie périodiquement et libère quand la date est atteinte. Séquence : 1. Vérification date → date atteinte 2. Statut → « Libéré » 3. Assignation stock par ligne 4. Génération tâches expédition/prélèvement 5. Statut → « En préparation » ou « En rupture de stock » ### Libération manuelle Depuis l'écran « Ordres de sortie » → sélection → « Libérer ». Possible uniquement si statut « En attente », « En préparation » ou « En rupture ». ### Priorité - Priorité définie à la création (dans le SOR/RUT) - Modifiable dans EasyWMS avant libération (si libération manuelle) - Par défaut : ordre de réception (FIFO de création) ## Assignation de stock ### Sélection du stock valide Filtres appliqués : 1. Article (lot SAP) + attributs logistiques (article Limagrain, propriétaire Limagrain, statut de stock) correspondent à la ligne demandée 2. Stock **et** conteneur sans verrou empêchant l'expédition 3. Stock pas dans une allée bloquée 4. Emplacement sans erreur d'extraction/dépose 5. Stock non déjà assigné à un autre OS 6. Stock sans tâche d'un autre processus ### Stratégie d'assignation 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** 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 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) > ⚠️ **Attention unités** : certains semi-finis calibrés (ZSIZ) sont gérés > en kilos, d'autres en big bags. Vérifier que la quantité complète est > cohérente avec l'unité de réception. À valider avec le client. ## Comportement post-assignation par type ### Commande client / Messagerie palette - Palettes complètes / picking terminées → [CUSTOM] tâche de **défragmentation** vers zone de stockage d'expédition dans l'ASRS. Ne se déclenche que si **toutes** les palettes clientes sont « terminées » (palettes de picking retournées dans l'ASRS) ET qu'aucun quai n'est associé à l'OS. - Palettes picking → **pas de tâche** tant qu'un poste de travail n'est pas assigné - Voir [Zones stockage](../02-stockage/zones-stockage.md) > **Explication du CUSTOM défrag** : en standard, le mode « Expédition > uniquement » ne reloc pas les palettes de picking (ordonnancement STOP > faux). Le mode « Picking et expédition » reloc toutes les palettes y > compris celles à picker, ce qui casse l'ordonnancement quand on les > ressort. Le custom attend que toutes les palettes de picking soient > pickées et rangées dans l'ASRS avant de lancer les relocs par STOP. > **Note** : si un quai est déjà assigné et l'OS libéré, le WMS peut > sortir les palettes dans le bon ordre des STOP sans défragmentation > préalable, via de la reloc standard. ### Consommation OF hors recertification - `AllowAssignStockExcess` à `true` dans la SOR.Line - [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 poste de travail - Ruptures de stock ne bloquent pas l'expédition. Le client utilise `isCritical` / `isRequired` au niveau SOR.Line si besoin. - Voir [Flux spécifiques expédition](flux-expedition.md#consommation-of-hors-recertification) ### Consommation OF avec recertification - 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 [Re-certification](flux-expedition.md#re-certification) ### Messagerie carton - Stock assigné mais aucune tâche tant que poste non assigné - 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 - [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) ## Gestion des reliquats Si stock insuffisant pour une ligne : - Ligne → statut « rupture de stock » (affichage rouge) - Reste de la commande peut être expédié (expédition partielle) - Clôture manuelle de la commande obligatoire - Si stock redevient disponible avant clôture → peut être préparé ## Création manuelle d'OS Possible depuis EasyWMS avec choix de destination : - Table de préparation sur un poste de travail - Image de quai ## Points d'attention ⚠️ 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 ». ⚠️ 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. ⚠️ Les palettes d'expédition sont stockées dans la zone défrag avec si 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 - c'est le développement clé du flux outbound. ## Historique des modifications | Date | Auteur | Modification | |------|--------|--------------| | 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 | Source | Type | Date | |--------|------|------| | 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 |