15 KiB
État des lieux - Flux retour client Limagrain (LIM-72)
Date : 13/05/2026 Auteur : Arthur Ria Objectif : Contexte complet pour mise à jour du wiki Limagrain et reprise de session
1. Contexte de la session
Analyse v2 du ticket LIM-72 (#LOT1.3 [RETOUR] Flux complet PK) pour lever tous les points ouverts avant finalisation du développement. Sources exploitées :
- Ticket Jira LIM-72 (description + 2 commentaires)
- Ticket Jira LIM-64 (déclaration image de quai)
- Ticket Jira LIM-14 (CstAtt, séquences, paramètres)
- Wiki EasyWMS :
reception-retour.md,controle-qualite-reception.md,gestion-camions.md,labels.md - Échange mail du 07-10/04/2026 : Michael Chaudier ↔ Vincent Goyet (clarification API ATH214)
- Échange mail du 24-29/04/2026 : Justine ↔ Leila ↔ Vincent Goyet ↔ Maxime Tourrette (doc connexion WS SAP CPI)
- Document PDF : Athenzat SAP-CPI Webservices Documentation v1.0 (Maxime Tourrette, 24/04/2026)
2. État du développement LIM-72
Ce qui est implémenté (commit Vincent Charvet 8401f5456d, 28/04/2026)
- Entité
CST_StockStatus: modification des custom attributes (CstAtt 1 = applicable en réception retour, CstAtt 2 = ZLOG, CstAtt 3 = ZINCO) - Query
CST_StockStatus_AllowedForReturn: filtre les statuts autorisés en retour - Workflow
CST_Return_Stock_GetStatus_UI: clone deStock_GetStatus_UIsimplifié pour les retours - Workflow
Reception_FilterLinesByProductAndContainer_UI_V1: retrait du filtre quantité pour autoriser la réception en excès (tolérance illimitée) - Workflow
WorkStation_Reception_Supplier_UI: sélection du statut de stock après sélection du lot - Workflow
Reception_GetQuantityAndUom_UI: ajout du choix de modification de statut - Workflow
Reception_Supplier_CheckReceptionStatus_UI_V1: autorisation de création de lignes pour les retours - Dialog
CST_GetProductQuantity_Prompt: ajout de l'option SelectStatus
Ce qui reste à développer
- Appel API SAP ATH214 (vérification lot officiel) + gestion du token OAuth 2.0
- Écran d'attente ITM (polling alias en base toutes les 5s, timeout 1 min, 5 tentatives max)
- Dialogue de choix multi-lot (quand ET_BATCH contient plusieurs articles)
- Impression étiquette stock retour client (rapport custom à créer)
- Configuration du flux de rejet PIE pour les retours (verrou ECART RETOUR, destination, notification)
3. Découvertes techniques clés
3.1. Architecture API SAP CPI
Source : Athenzat SAP-CPI Webservices Documentation v1.0
- Authentification : OAuth 2.0 client_credentials
- URL token TEST :
https://vilm-cpi-test-73ltxp48.authentication.eu30.hana.ondemand.com/oauth/token - URL token PROD : à définir
- Body :
x-www-form-urlencodedavecgrant_type=client_credentials,client_id,client_secret,addTokenTo=header - Expiration du token gérée côté client (WMS)
- URL token TEST :
- Endpoint unique pour tous les flux WMS → SAP :
- URL TEST :
https://vilm-cpi-test-73ltxp48.it-cpi020-rt.cfapps.eu30.hana.ondemand.com/http/ATHInboundMessage - URL PROD : à définir
- Méthode : GET avec body JSON (spécifique SAP CPI)
- Headers :
Authorization: Bearer <token>,Connection: keep-alive - Body JSON :
{ "MessageType": "<code_flux>", "data": { ... } }
- URL TEST :
- Conséquence pour LIM-72 : le paramètre
SAP_LOT_VERIFY_URLdu ticket doit pointer vers l'endpoint CPI unique, pas vers/api/v1/lot/verify. LeMessageTypesera"ATH214". Le format d'enveloppe JSON doit inclure les structuresMessageType+data.
3.2. API ATH214 - Check Batch (détail)
Source : échanges mails Vincent Goyet (08/04 - 28/04/2026)
Payload de requête :
{
"MessageType": "ATH214",
"data": {
"IV_LGNUM": "WF02",
"IV_MATNR": "",
"IV_CHARG": "",
"IV_BATCH_OFF": "<lot officiel scanné>",
"IV_RETURN": "<code OE retour>"
}
}
IV_LGNUM(CHAR 4) : toujours "WF02"IV_MATNR(CHAR 40) : OPTIONAL - code lot WMS (= product code SAP)IV_CHARG(CHAR 10) : OPTIONAL - code article WMS (= lot SAP)IV_BATCH_OFF(CHAR 30) : lot officiel scanné sur le sacIV_RETURN(CHAR 10) : numéro du document de retour (code OE)
Payload de réponse :
{
"EV_RETURN": "X",
"ET_RETURN": [ { "TYPE": "...", "MESSAGE": "...", ... } ],
"ET_BATCH": [
{
"MATNR": "000000000000020955",
"CHARG": "2023293649",
"BATCH_OFF": "F0964D002488",
"EV_DEPLOY": "X"
}
]
}
EV_RETURN: "X" = aucune erreur, vide = erreurET_RETURN: messages d'erreur ou de succès SAPET_BATCH: lots/articles trouvésMATNR(CHAR 40) : code lot WMS = product code SAP (mapping contre-intuitif)CHARG(CHAR 10) : code article WMS = lot SAP (mapping contre-intuitif)BATCH_OFF(CHAR 30) : lot officielEV_DEPLOYouZDEPLOY(CHAR 1) : "X" = déployé/vendu, "" = non (nom ambigu dans les échanges - à confirmer)
Séquence d'échange :
- WMS appelle ATH214 avec lot officiel + code retour
- SAP répond immédiatement avec
EV_RETURN+ET_BATCH - Si OK : SAP pousse en parallèle les ITM via ATH002/ITM01 (automatique, pas d'appel supplémentaire WMS)
- WMS poll toutes les 5s pour vérifier si l'alias (lot officiel) est apparu en base
- Si trouvé → continue ; si timeout (1 min) → propose "Réessayer" (5 tentatives max)
3.3. Cartographie complète des interfaces Athenzat
Source : diagramme dans la doc CPI + mail S15 de Justine
| Code | Direction | Type SAP | Type Easy | Description |
|---|---|---|---|---|
| ATH002 | SAP → Easy | BATMAS | ITM01 | Fiche article (Item) |
| ATH103A | SAP → Easy | DELIVRY07 | ROR01 | Ordre de réception (Inbound delivery) |
| ATH108 | SAP → Easy | ORDRSP | ROR01 | Ordre de réception retour (Return delivery) |
| ATH103B | SAP → Easy | SHPUNT7 | RUT | Ordre de sortie (Outbound delivery) |
| ATH102BOM | SAP → Easy | LOIPRO | SOR | Ordre d'expédition (Shipping order) |
| ATH111 | SAP → Easy | ZSTKATH11 | ASN / STR | HU à recevoir / HU change |
| ATH302 | SAP → Easy | ZQMINSPLOT | COR | Tâche inventaire/échantillon |
| ATH214 | Easy → SAP | Z_IAT214 | Z_IATH214 | Check Batch (vérification lot retour) |
| ATH215 | Easy → SAP | Z_IAT215 | REF | Bon de réception retour / achat |
| ATH217 | Easy → SAP | Z_IAT217 | ROF | Bon de réception achat |
| ATH201 | Easy → SAP | Z_IAT201 | LOC / STV | Mouvement stock (rangement ASRS, mvt HU, prep mix, customer flag, stock adjust) |
| ATH202 | Easy → SAP | Z_IAT202 | LOF | Chargement (Loading / Goods Issue) |
3.4. Glossaire - Mapping articles Limagrain
Source : confirmation Michael Chaudier (09/04) + Vincent Goyet (10/04)
| Terme métier | Signification | Entité WMS | Champ WMS | Champ ATH214 |
|---|---|---|---|---|
| Lot SAP | ID unique lot dans SAP = code article WMS | Item |
Item.Code |
CHARG (CHAR 10) |
| Lot officiel | N° sur le sac physique (QR code) = alias article WMS | ItemAlias |
ItemAlias.Code |
BATCH_OFF (CHAR 30) |
| Product code SAP | Code produit générique = CstAtt du stock | StockLine |
StockLine.CstAtt (à préciser) |
MATNR (CHAR 40) |
| Code retour | N° document de retour = code OE | InboundOrder |
InboundOrder.Code |
IV_RETURN (CHAR 10) |
| Déployé/vendu | Flag vente Limagrain | — | — | EV_DEPLOY (CHAR 1) |
Attention : le mapping CHARG/MATNR est inversé par rapport à la nomenclature SAP standard. MATNR (normalement Material Number = code article) porte ici le product code, et CHARG (normalement Charge/Batch = lot) porte le code article WMS.
3.5. CstAtt Container - Mapping complet
Source : LIM-14
| CstAtt | Donnée | Type | Tâche | Statut |
|---|---|---|---|---|
| 01 | Big-bag potentiel (réception contient big-bag) | bool | LIM-64 | Utilisé |
| 02 | Contient big-bag | bool | LIM-67 | Utilisé |
| 03 | À anoxier | bool | LIM-67 | Utilisé |
| 04 | Support ASN | bool | LIM-64 | Utilisé |
| 05 | Programme de filmage | int | LIM-67 | Utilisé |
| 06 | Code PK assigné | string | LIM-70 | Utilisé |
| 07 | Date fin d'anoxie | datetime | — | Utilisé |
| 08 | Code réception (conteneur virtuel) | string | — | Utilisé |
| 09 | CERTIFICATION (fausse palette) | string | — | Utilisé |
| 10 | Réception en cours au PK | bool | — | Utilisé |
| 11 | Rangé ASRS après réception | bool | LIM-73 | Utilisé |
| 12-20 | — | — | — | Libres |
Proposition : utiliser CstAtt12 pour stocker le code OE (association palette ↔ ordre d'entrée dès l'image de quai).
3.6. Contrôle qualité PIE - Retours clients
Source : wiki controle-qualite-reception.md
| Verrou | Flux | Comportement post-PIE |
|---|---|---|
| HORS TOLERANCE | Tous sauf retour | Palette entre dans l'ASRS malgré le verrou |
| ECART RETOUR | Retour client uniquement | Palette refusée, envoyée vers poumon de rejet |
- Le rejet dirige vers un "poumon au sol" avec notification SmartUI
- L'ancienne approche de renvoi au PK pour recomptage est abandonnée
- Impact clôture : une palette sans
CstAtt11 = truebloque la clôture. Le client doit supprimer la palette du WMS pour débloquer.
4. Points ouverts - Mail envoyé le 13/05/2026
Mail envoyé à : Justine, Leila Chajjaoui, Antoine Martin, Vincent Goyet, Pierre Gaudy, Maxime Tourrette, Vincent Charvet, Michael Chaudier.
Questions techniques SAP (Vincent Goyet / Pierre Gaudy)
| # | Question | Criticité | Statut |
|---|---|---|---|
| A1 | Champs manquants dans ET_BATCH : description article, pays de destination, propriétaire Limagrain | BLOQUANT - sans pays d'origine, le dialogue de choix multi-lot ne peut pas fonctionner | En attente |
| A2 | Nom final du champ de déploiement : EV_DEPLOY ou ZDEPLOY ? |
Mineur mais source de bugs | En attente |
| A3 | Délai typique entre réponse ATH214 et push ITM via ATH002 (dimensionnement du polling 5s / timeout 1 min) | Important | En attente |
| A4 | Vérification "déployé" pour les lots déjà connus en base WMS (pas d'appel ATH214) : info dans l'ITM ou appel systématique ? | IMPORTANT - trou fonctionnel dans le design actuel | En attente |
Questions fonctionnelles client (Leila / Antoine)
| # | Question | Criticité | Statut |
|---|---|---|---|
| B1 | Étiquette stock retour : en complément de RFID ? Quels champs ? Format A6 ? Imprimante dédiée ? | Important | En attente |
| B2 | Flux de rejet PIE : destination, notification, actions, retour PK abandonné ?, notification SAP ?, suppression palette | IMPORTANT | En attente |
Point en suspens (hors mail)
| # | Sujet | Décision | Statut |
|---|---|---|---|
| PS | Association palette ↔ OE dès l'image de quai (modification LIM-64) | Arthur propose de valider les points précédents d'abord. CstAtt12 proposé pour stocker le code OE. Faisable techniquement, impact planning à évaluer. | Reporté - à traiter après réponses |
5. Actions à mener à réception des réponses
5.1. Mise à jour du ticket LIM-72
À intégrer dans la description v2 :
- Corriger le format d'appel API : endpoint CPI unique + MessageType "ATH214" (pas
/api/v1/lot/verify) - Ajouter la gestion OAuth 2.0 (token endpoint, client_credentials, gestion expiration)
- Corriger le nom du champ de déploiement selon la réponse A2
- Préciser le comportement pour les lots déjà connus (selon réponse A4)
- Ajouter les champs manquants dans le dialogue multi-lot (selon réponse A1)
- Spécifier le rapport d'étiquette stock retour (selon réponse B1)
- Documenter le flux de rejet PIE (selon réponse B2)
- Ajouter les nouveaux cas de tests (42 à 49 proposés dans l'analyse v2)
- Mettre à jour les paramètres :
SAP_LOT_VERIFY_URL→ URL endpoint CPI + paramètres d'auth
5.2. Mise à jour des tâches liées pour l'association palette ↔ OE
Si GO sur l'informatisation de l'association palette ↔ OE, les tâches suivantes devront être modifiées :
| Tâche | Modification |
|---|---|
| LIM-14 | Ajouter CstAtt12 Container = "Code OE associé" (string) |
| LIM-64 | Modifier le workflow TRF : après déclaration nb palettes + emplacement de départ, foreach sur chaque emplacement pour demander l'OE associé. Stocker dans CstAtt12. Gestion Échap avec rollback. Impression groupée. Écran de validation collage. |
| LIM-65 | Ajouter le code OE sur l'étiquette support image de quai |
| LIM-70 | Le routage AGV pourra exploiter CstAtt12 pour diriger la palette vers le bon PK (optimisation optionnelle) |
| LIM-72 | L'étape de sélection de la réception au PK peut être pré-remplie via CstAtt12 |
5.3. Mise à jour du wiki Limagrain
Pages wiki à mettre à jour :
| Page | Modifications |
|---|---|
limagrain/01-inbound/reception-retour.md |
Intégrer les détails auth OAuth 2.0, corriger le format d'appel CPI (endpoint unique + MessageType), corriger EV_DEPLOY/ZDEPLOY, ajouter le flux de rejet PIE, ajouter l'étiquette stock |
limagrain/01-inbound/gestion-camions.md |
Si GO sur l'association OE : documenter le nouveau flux TRF avec foreach + CstAtt12 |
limagrain/01-inbound/controle-qualite-reception.md |
Compléter le flux de rejet PIE pour les retours (destination, notification, actions) |
limagrain/06-erp-interface/ (à créer ou mettre à jour) |
Documenter l'architecture CPI (endpoint unique, auth, MessageType), la cartographie complète des interfaces ATH, et le détail de chaque flux |
6. Documents produits pendant la session
| Document | Chemin | Description |
|---|---|---|
| Analyse v2 LIM-72 | LIM-72_v2_analyse_retour_client.md |
Analyse complète avec réponses aux 4 questions, glossaire, plan d'action |
| Ce récap | recap_session_LIM-72_13-05-2026.md |
État des lieux pour reprise de contexte |
7. Contacts projet
| Nom | Rôle | Organisation |
|---|---|---|
| Arthur Ria | CDP / Intégrateur WMS | Mecalux France |
| Justine Beutin | Chef de projets IT | Mecalux France |
| Michael Chaudier | Directeur des opérations WMS | Mecalux France |
| Vincent Charvet | Développeur WMS | Mecalux France |
| Leila Chajjaoui | Domain Leader Supply Chain | Limagrain Europe |
| Antoine Martin | Référent projet côté client | Limagrain |
| Vincent Goyet | Consultant SAP / Développeur interfaces | 1465 Conseil (prestataire Limagrain) |
| Pierre Gaudy | Consultant SAP | 1465 Conseil (prestataire Limagrain) |
| Maxime Tourrette | Développeur IT Expert (SAP CPI) | Limagrain Europe |