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:
@@ -3,10 +3,10 @@ title: "Réception retour commandes clients"
|
||||
tags: [inbound, réception, retour, client, API, lot]
|
||||
status: draft
|
||||
standard_ref: concepts/reception.md
|
||||
jira_refs: [LIM-72, LIM-67, LIM-68, LIM-66, LIM-64, LIM-70, LIM-73]
|
||||
jira_refs: [LIM-93, LIM-72, LIM-67, LIM-68, LIM-66, LIM-64, LIM-70, LIM-73, LIM-90]
|
||||
confluence_refs: []
|
||||
sources: [FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5.docx, "Réception - LIMAGRAIN - DEV - Confluence.md", "LIM-72 LOT1.3 [RETOUR] Flux complet PK.md", "LIM-73 - LOT1.3 [RECEPTION] Fermetures, REF et gestion retours.md", "recap_session_LIM-72_13-05-2026.md"]
|
||||
last_updated: 2026-05-13
|
||||
sources: [FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5.docx, "Réception - LIMAGRAIN - DEV - Confluence.md", "LIM-72 LOT1.3 [RETOUR] Flux complet PK.md", "LIM-73 - LOT1.3 [RECEPTION] Fermetures, REF et gestion retours.md", "Jira LIM-93 (V2, préprod, revue de code en cours 2026-07-17)", "Jira LIM-73 (revue de code validée 2026-06-02, relecture 2026-07-17)", "Jira LIM-90 (revue de code terminée 2026-06-03)", "recap_session_LIM-72_13-05-2026.md"]
|
||||
last_updated: 2026-07-17
|
||||
author: Arthur
|
||||
---
|
||||
|
||||
@@ -19,16 +19,30 @@ author: Arthur
|
||||
> **Standard EasyWMS** : → voir [Reception](../../concepts/reception.md)
|
||||
> Ce qui suit documente les **spécificités Limagrain** par rapport au standard.
|
||||
|
||||
> ⚠️ **V1 annulé → V2 (LIM-93) intégré** : le ticket
|
||||
> [LIM-72](https://easywmsfrance.atlassian.net/browse/LIM-72) « Flux complet
|
||||
> PK V1 » est **Annulé(e)**. Le traitement retour au PK est repris et livré
|
||||
> par [LIM-93](https://easywmsfrance.atlassian.net/browse/LIM-93) (V2,
|
||||
> **En cours de test client / préprod**). Le contenu ci-dessous reflète la
|
||||
> version définitive V2 (description + revue de code, relecture
|
||||
> 2026-07-17). Différences majeures V2 vs V1 : appel ATH214
|
||||
> **systématique** (plus de branche « lot connu »), champ `ZDEPLOY`
|
||||
> confirmé, nouveaux champs `ET_BATCH`, sélection du statut de stock en
|
||||
> **étape dédiée** avant la quantité (statut fictif « Stock conforme »),
|
||||
> étiquette = **RFID LIM-68 enrichie** (A5 Zebra, pas de rapport séparé),
|
||||
> rejet PIE **renvoyé au PK** pour recomptage (placeholder, solution
|
||||
> technique à définir).
|
||||
|
||||
## Contexte projet
|
||||
|
||||
Les retours client suivent un flux similaire aux réceptions extérieures
|
||||
(passage poste de travail obligatoire) mais avec des particularités :
|
||||
|
||||
- `InboundType = 1` (Return) — vs 0 (Standard) pour les autres flux
|
||||
- `InboundType = 1` (Return) - vs 0 (Standard) pour les autres flux
|
||||
- Création de lignes autorisée (article non attendu possible)
|
||||
- Tolérance illimitée : profil de réception par défaut configuré en
|
||||
« illimité » sur tous les articles
|
||||
- `ReceiveLessAllowed = true` — réception partielle toujours autorisée
|
||||
- `ReceiveLessAllowed = true` - réception partielle toujours autorisée
|
||||
- Interrogation API SAP pour valider le lot officiel
|
||||
- `AccountCode` = code client SAP (le client doit exister dans EasyWMS)
|
||||
|
||||
@@ -38,12 +52,12 @@ Les retours client suivent un flux similaire aux réceptions extérieures
|
||||
|-------|-------------|--------|
|
||||
| 1 | Déclaration sur l'image de quai | [LIM-64](https://easywmsfrance.atlassian.net/browse/LIM-64) |
|
||||
| 2 | Déplacement AGV → poste de travail | [LIM-70](https://easywmsfrance.atlassian.net/browse/LIM-70) |
|
||||
| 3 | **Traitement au poste de travail** | [LIM-72](https://easywmsfrance.atlassian.net/browse/LIM-72) |
|
||||
| 4 | Déplacement AGV → table d'entrée (+ filmage si demandé) | — |
|
||||
| 3 | **Traitement au poste de travail** | [LIM-72](https://easywmsfrance.atlassian.net/browse/LIM-72) (V1 annulé) → [LIM-93](https://easywmsfrance.atlassian.net/browse/LIM-93) (V2) |
|
||||
| 4 | Déplacement AGV → table d'entrée (+ filmage si demandé) | - |
|
||||
| 5 | Passage PIE | [LIM-66](https://easywmsfrance.atlassian.net/browse/LIM-66) |
|
||||
| 6 | Stockage ou rejet | — |
|
||||
| 7 | Clôture de la réception | — |
|
||||
| 8 | Libération quai / image de quai | — |
|
||||
| 6 | Stockage ou rejet | - |
|
||||
| 7 | Clôture de la réception | - |
|
||||
| 8 | Libération quai / image de quai | - |
|
||||
|
||||
Voir [Réception fournisseur](reception-fournisseur.md) pour le détail
|
||||
du déchargement camion et des déclarations initiales
|
||||
@@ -57,17 +71,24 @@ Message ROR de SAP (type ORDRSP) avec :
|
||||
- Numéro de réception
|
||||
- Articles / Lots / Quantités attendues
|
||||
- Codes articles **génériques** (codes uniques avec nomenclature
|
||||
précise, pas réutilisables — assure la traçabilité)
|
||||
précise, pas réutilisables - assure la traçabilité)
|
||||
|
||||
**Différence clé** : cette réception **autorise la création de lignes**.
|
||||
Limagrain peut recevoir un article non présent dans le ROR initial.
|
||||
Un article inconnu de la base EasyWMS = ROR refusé. Un article connu
|
||||
mais non prévu dans le retour = accepté (tolérance illimitée).
|
||||
|
||||
## [CUSTOM] Identification lot — Interrogation API SAP
|
||||
## [CUSTOM] Identification lot - Interrogation API SAP
|
||||
|
||||
Lors du scan du lot officiel sur le poste de travail, le WMS vérifie
|
||||
d'abord si le lot est connu localement. Si oui, pas d'appel API. Sinon :
|
||||
Lors du scan du lot officiel sur le poste de travail, le WMS appelle
|
||||
**systématiquement** l'API SAP ATH214, que le lot soit déjà connu en
|
||||
base ou non.
|
||||
|
||||
> **Changement V2 (confirmation Vincent Goyet, 13/05)** : l'appel ATH214
|
||||
> est désormais systématique. Il n'y a plus de branche « lot connu → pas
|
||||
> d'appel ». La vérification « vendu par Limagrain » (flag `ZDEPLOY`)
|
||||
> passe toujours par SAP. Cela ferme le trou fonctionnel A4 (lots connus
|
||||
> non re-vérifiés).
|
||||
|
||||
### Rappel : structure des articles chez Limagrain
|
||||
|
||||
@@ -85,24 +106,26 @@ SAP d'envoyer la fiche article complète.
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[Scan / saisie lot officiel] --> B{Lot officiel connu du WMS ?<br/>= alias article existant ?}
|
||||
B -- Oui --> C{Vendu par Limagrain ?}
|
||||
B -- Non --> D[Appel API SAP]
|
||||
D --> E[Écran attente<br/>refresh 5s / timeout 1 min]
|
||||
E --> F{ITM reçu via API WMS ?}
|
||||
F -- Oui --> C
|
||||
A[Scan / saisie lot officiel] --> D[Appel API SAP ATH214<br/>SYSTÉMATIQUE<br/>IV_BATCH_OFF + IV_RETURN]
|
||||
D --> R{EV_RETURN = X ?}
|
||||
R -- Non --> Z[Erreur SAP<br/>afficher ET_RETURN]
|
||||
R -- Oui --> C{Au moins un<br/>ZDEPLOY = X ?}
|
||||
C -- Non --> K[Erreur : lot non vendu<br/>par Limagrain]
|
||||
C -- Oui --> B{Article déjà en base ?<br/>= alias existant ?}
|
||||
B -- Non --> E[SAP pousse l'ITM<br/>via ATH002/ITM01<br/>Écran attente refresh 5s / timeout 1 min]
|
||||
E --> F{Alias trouvé en base ?}
|
||||
F -- Non / Timeout --> G{Tentative < 5 ?}
|
||||
G -- Oui --> H[Bouton Réessayer]
|
||||
H --> D
|
||||
G -- Non --> I[Erreur finale :<br/>contacter responsable]
|
||||
C -- Oui --> J{Plusieurs articles ?}
|
||||
C -- Non --> K[Erreur : lot non vendu<br/>par Limagrain]
|
||||
F -- Oui --> J
|
||||
B -- Oui --> J{Plusieurs lots<br/>ZDEPLOY = X ?}
|
||||
J -- Non --> L[Sélection automatique<br/>→ déclaration contenu]
|
||||
J -- Oui --> M[Dialogue choix article<br/>par pays d'origine]
|
||||
J -- Oui --> M[Dialogue choix lot SAP<br/>Variété - Trt commercial - Destination code]
|
||||
M --> L
|
||||
```
|
||||
|
||||
### Appel API SAP — Vérification du lot officiel (ATH214)
|
||||
### Appel API SAP - Vérification du lot officiel (ATH214)
|
||||
|
||||
L'appel API REST est fait **directement depuis le workflow** (pas via
|
||||
GNA). Il sert à notifier SAP que le WMS a besoin de la fiche article.
|
||||
@@ -176,7 +199,7 @@ GET /http/ATHInboundMessage
|
||||
| `IV_BATCH_OFF` | CHAR 30 | Lot officiel scanné sur le sac |
|
||||
| `IV_RETURN` | CHAR 10 | Numéro du document de retour (code OE) |
|
||||
|
||||
> ⚠️ **Méthode HTTP** : `GET` avec body JSON — spécifique SAP CPI.
|
||||
> ⚠️ **Méthode HTTP** : `GET` avec body JSON - spécifique SAP CPI.
|
||||
> Header `Connection: keep-alive` requis.
|
||||
|
||||
**Payload de réponse :**
|
||||
@@ -190,7 +213,12 @@ GET /http/ATHInboundMessage
|
||||
"MATNR": "000000000000020955",
|
||||
"CHARG": "2023293649",
|
||||
"BATCH_OFF": "F0964D002488",
|
||||
"EV_DEPLOY": "X"
|
||||
"DESCRIPTION": "Tournesol variété XYZ",
|
||||
"DESTINATION": "FR",
|
||||
"OWNER": "LFS",
|
||||
"ZDEPLOY": "X",
|
||||
"VAR_DESC": "LG50459 SX",
|
||||
"COM_TRT_DESC": "Korit"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -203,7 +231,12 @@ GET /http/ATHInboundMessage
|
||||
| `ET_BATCH[].MATNR` | CHAR 40 | Code lot WMS = product code SAP |
|
||||
| `ET_BATCH[].CHARG` | CHAR 10 | Code article WMS = lot SAP |
|
||||
| `ET_BATCH[].BATCH_OFF` | CHAR 30 | Lot officiel |
|
||||
| `ET_BATCH[].EV_DEPLOY` | CHAR 1 | `"X"` = déployé/vendu, `""` = non |
|
||||
| `ET_BATCH[].DESCRIPTION` | CHAR 40 | Description article SAP |
|
||||
| `ET_BATCH[].DESTINATION` | CHAR 18 | Pays de destination |
|
||||
| `ET_BATCH[].OWNER` | CHAR 10 | Propriétaire Limagrain |
|
||||
| `ET_BATCH[].ZDEPLOY` | CHAR 1 | `"X"` = déployé/vendu, `""` = non |
|
||||
| `ET_BATCH[].VAR_DESC` | - | Variété (ajout Justine 08/07) |
|
||||
| `ET_BATCH[].COM_TRT_DESC` | - | Traitement commercial (ajout Justine 08/07) |
|
||||
|
||||
> ⚠️ **Mapping inversé CHARG / MATNR** : contrairement à la
|
||||
> nomenclature SAP standard, `MATNR` (Material Number) porte ici le
|
||||
@@ -211,14 +244,16 @@ GET /http/ATHInboundMessage
|
||||
> **code article WMS** (= lot SAP). Ce mapping est confirmé par Michael
|
||||
> Chaudier et Vincent Goyet (avril 2026).
|
||||
|
||||
> ⚠️ **À confirmer** : le nom du champ de déploiement est ambigu dans
|
||||
> les échanges — `EV_DEPLOY` ou `ZDEPLOY` ? En attente de clarification
|
||||
> (question A2 dans
|
||||
> [Questions ouvertes](../08-transverse/questions-ouvertes.md)).
|
||||
**Traitement de la réponse (V2) :**
|
||||
|
||||
Si `EV_RETURN = "X"`, on récupère dans `ET_BATCH` tous les
|
||||
`BATCH_OFF` dont `EV_DEPLOY = "X"` — ce sont les lots autorisés
|
||||
pour l'opérateur.
|
||||
1. Si `EV_RETURN = ""` → afficher le message d'erreur de `ET_RETURN`
|
||||
à l'opérateur
|
||||
2. Si `EV_RETURN = "X"` → filtrer `ET_BATCH` pour ne garder que les
|
||||
entrées avec `ZDEPLOY = "X"` (lots déployés/vendus)
|
||||
3. Si aucune entrée `ZDEPLOY = "X"` → erreur « le lot n'a pas été vendu
|
||||
par Limagrain »
|
||||
4. Sinon → vérifier l'existence des articles en base (voir écran
|
||||
d'attente ITM), puis sélection automatique ou dialogue multi-lot
|
||||
|
||||
### Écran d'attente pendant la réception de l'ITM
|
||||
|
||||
@@ -240,20 +275,30 @@ l'ITM. Pendant cette attente :
|
||||
### Choix du code lot (multi-résultat)
|
||||
|
||||
Si l'API a renvoyé **plusieurs résultats** dans `ET_BATCH` (plusieurs
|
||||
`BATCH_OFF` avec `EV_DEPLOY = "X"`), un dialogue de sélection est
|
||||
affiché avec la liste des codes lots disponibles. L'opérateur en choisit
|
||||
un (filtrage par pays d'origine).
|
||||
entrées avec `ZDEPLOY = "X"`), le dialogue `CST_EtBatchSelector` est
|
||||
affiché avec la liste des lots SAP disponibles. L'opérateur en choisit un.
|
||||
|
||||
Si un **seul résultat** → sélection automatique, pas de dialogue.
|
||||
**Format d'affichage d'une ligne (revu Justine, 08/07)** :
|
||||
|
||||
**Pourquoi le choix article ?** Un lot SAP peut être associé à plusieurs
|
||||
articles (dépend du pays d'origine). L'opérateur doit choisir l'article
|
||||
physiquement présent sur la palette.
|
||||
```text
|
||||
VAR_DESC - COM_TRT_DESC - DESTINATION (MATNR)
|
||||
```
|
||||
|
||||
soit `Variété - Traitement commercial - Pays destination (product code)`.
|
||||
Ce format remplace l'affichage d'origine `CHARG / BATCH_OFF / DESCRIPTION
|
||||
/ DESTINATION / OWNER`.
|
||||
|
||||
Si un **seul résultat** `ZDEPLOY = "X"` → sélection automatique, pas de
|
||||
dialogue.
|
||||
|
||||
**Pourquoi le choix article ?** Un lot officiel peut correspondre à
|
||||
plusieurs lots SAP (dépend notamment de la destination). L'opérateur doit
|
||||
choisir le lot physiquement présent sur la palette.
|
||||
|
||||
**Gestion dans le REF :** le code générique envoyé dans le ROR est
|
||||
remplacé par le vrai code lot dans le REF (custom).
|
||||
|
||||
## Déclaration au poste de travail (LIM-72)
|
||||
## Déclaration au poste de travail (LIM-93)
|
||||
|
||||
Le traitement au PK reprend les mêmes étapes que le flux fournisseur
|
||||
([LIM-67](https://easywmsfrance.atlassian.net/browse/LIM-67)) avec des
|
||||
@@ -263,28 +308,74 @@ différences :
|
||||
| # | Étape | Différence vs fournisseur (LIM-67) |
|
||||
|---|-------|------------------------------------|
|
||||
| 1 | Sélection de la réception | Affichage "**Client: CODE - NOM**" (au lieu de "Fournisseur") sur tous les écrans |
|
||||
| 2 | Big bag (CstAtt02) | Identique — toggle ON/OFF |
|
||||
| 3 | Scan lot officiel + vérification | **+ Vérification API SAP** (voir section ci-dessus) |
|
||||
| 4 | Déclaration quantité | Identique — affichage qté attendue + UdM, prompt non pré-rempli |
|
||||
| 4bis | Flag big-bag (bouton custom) | Identique (CstAtt02) |
|
||||
| 5 | Statut de stock | **Modifiable** — boutons visibles (masqués dans LIM-67) |
|
||||
| 6 | Flag "À anoxier" | Identique (CstAtt03 = true) |
|
||||
| 7 | Programme de filmage | Identique (paramètre FILMAGES → CstAtt05) |
|
||||
| 8 | Impression étiquette RFID | Identique ([LIM-68](https://easywmsfrance.atlassian.net/browse/LIM-68)) |
|
||||
| 9 | Validation → évacuation AGV | Identique |
|
||||
| 2 | Big bag (CstAtt02) | Identique - toggle ON/OFF |
|
||||
| 3 | Scan lot officiel + vérification | **+ Vérification API SAP systématique** (voir section ci-dessus) |
|
||||
| 4 | Statut de stock | **Étape dédiée AVANT la quantité** (V2) - dialogue avec statut fictif « Stock conforme » en tête (voir ci-dessous) |
|
||||
| 5 | Déclaration quantité | Identique - affichage qté attendue + UdM, prompt non pré-rempli. Bouton statut supprimé (ESC renvoie au dialogue statut) |
|
||||
| 5bis | Flag big-bag (bouton custom) | Identique (CstAtt02) |
|
||||
| 6 | Attributs logistiques | **Auto-validés si présents/uniques dans le ROR**, sinon demandés (voir ci-dessous) |
|
||||
| 7 | Flag "À anoxier" | Identique (CstAtt03 = true) |
|
||||
| 8 | Programme de filmage | Identique (paramètre FILMAGES → CstAtt05) |
|
||||
| 9 | Impression étiquette RFID | **Enrichie** - RFID [LIM-68](https://easywmsfrance.atlassian.net/browse/LIM-68) + code produit / lots SAP / lot officiel, format A5 Zebra (voir ci-dessous) |
|
||||
| 10 | Validation → évacuation AGV | Identique |
|
||||
|
||||
### Statut de stock — Modifiable
|
||||
### Statut de stock - Modifiable, en étape dédiée (V2)
|
||||
|
||||
Contrairement au flux fournisseur (LIM-67) où le statut de stock est
|
||||
verrouillé (boutons masqués), dans le flux retour client :
|
||||
verrouillé (boutons masqués), dans le flux retour client l'opérateur
|
||||
peut **choisir** le statut. Le choix se fait désormais dans une **étape
|
||||
dédiée, avant la saisie de la quantité** (et non plus via un bouton sur
|
||||
l'écran quantité).
|
||||
|
||||
- Les **boutons de changement de statut sont visibles** et fonctionnels
|
||||
- L'opérateur peut modifier le statut (ex : Conforme, Sac sale,
|
||||
Non conforme, etc.)
|
||||
- Un dialogue liste les statuts autorisés en retour
|
||||
(query `CST_StockStatus_AllowedForReturn`, CstAtt1 = applicable en
|
||||
réception)
|
||||
- En **position 0** de la liste : un statut fictif « **Stock
|
||||
conforme** » qui, s'il est choisi, **n'applique aucun statut**
|
||||
(paramètre `RECEPTION_CONFORM_STOCK_STATUS`). Cela permet à
|
||||
« n'avoir aucun statut » d'être un vrai choix explicite (demande
|
||||
client 09/06)
|
||||
- Le bouton « statut » de l'écran quantité est **supprimé** ; la touche
|
||||
**ESC** depuis l'écran quantité **renvoie au dialogue des statuts**
|
||||
- Les écrans de **date de fin de statut** et **commentaire** suivent
|
||||
le comportement standard (non skippés contrairement au fournisseur)
|
||||
- Un message d'avertissement s'affiche si « Stock conforme » est
|
||||
sélectionné pour une ligne qui ne demande pas de statut
|
||||
- [CUSTOM] Statuts spécifiques retour : **F9** (sacs sales), **B6**
|
||||
(non conforme) — assignables uniquement dans ce processus
|
||||
(non conforme) - assignables uniquement dans ce processus.
|
||||
Catalogue complet des 8 statuts et remontée REF : voir
|
||||
[Statuts de stock retour et remontée REF (LIM-90)](#statuts-de-stock-retour-et-remontée-ref-lim-90)
|
||||
|
||||
### Attributs logistiques - Auto-validation (V2)
|
||||
|
||||
Les attributs logistiques (lot officiel, etc.) sont **validés
|
||||
automatiquement** s'ils sont renseignés dans le ROR **et uniques** pour
|
||||
l'article. Sinon :
|
||||
|
||||
- Un attribut manquant → **demandé à l'opérateur**
|
||||
- Le ROR possède **plusieurs lignes avec le même lot SAP mais des
|
||||
attributs logistiques différents** → l'attribut est demandé
|
||||
(EasyWMS ne peut pas deviner à quelle ligne la réception se rattache)
|
||||
|
||||
### Étiquette RFID enrichie (V2)
|
||||
|
||||
Il n'y a **pas de rapport d'étiquette stock séparé**. L'étiquette
|
||||
imprimée automatiquement après validation du filmage est l'**étiquette
|
||||
HU/RFID de [LIM-68](https://easywmsfrance.atlassian.net/browse/LIM-68)**,
|
||||
enrichie de champs supplémentaires. Elle est glissée entre les sacs de
|
||||
la palette.
|
||||
|
||||
Champs ajoutés (en plus du contenu standard LIM-68) :
|
||||
|
||||
- Code produit (`MATNR` / product code SAP)
|
||||
- Lot SAP (`CHARG` / code article WMS)
|
||||
- Lot officiel (`BATCH_OFF` / alias)
|
||||
|
||||
Format : **A5 Zebra** (pas A6). Imprimante : **dédiée au PK**.
|
||||
|
||||
> **Impact LIM-68** : la tâche
|
||||
> [LIM-68](https://easywmsfrance.atlassian.net/browse/LIM-68) devra
|
||||
> intégrer ces champs supplémentaires et le format A5 Zebra.
|
||||
|
||||
### Tolérance illimitée
|
||||
|
||||
@@ -295,7 +386,7 @@ verrouillé (boutons masqués), dans le flux retour client :
|
||||
manuellement)
|
||||
|
||||
> Le prompt type de poste (3 ou 6 TP) prévu initialement est
|
||||
> **abandonné** — remplacé par un message d'avertissement si le poste
|
||||
> **abandonné** - remplacé par un message d'avertissement si le poste
|
||||
> adjacent est déjà ouvert (voir
|
||||
> [Stations picking](../03-picking/stations-picking.md)).
|
||||
|
||||
@@ -315,18 +406,40 @@ prorata, mêmes contrôles). Voir
|
||||
|
||||
**Différences pour les retours client :**
|
||||
|
||||
- Verrou si écart poids : **« Écart inventaire »** (vs « Réception »
|
||||
pour les autres flux) — verrou posé sur le **support** (pas sur
|
||||
- Verrou si écart poids : **« ECART RETOUR »** (vs « HORS TOLERANCE »
|
||||
pour les autres flux) - verrou posé sur le **support** (pas sur
|
||||
le stock)
|
||||
- Action requise en cas d'écart : **recomptage du nombre de sacs**
|
||||
- Rejet PIE : dirigé vers **poumon au sol** + notification SmartUI
|
||||
(ancienne approche de renvoi au PK abandonnée)
|
||||
|
||||
## Clôture — Spécificités retour client (LIM-73)
|
||||
### Flux de rejet PIE (⚠️ placeholder V2 - solution technique à définir)
|
||||
|
||||
> **Changement V2 (confirmation Leila Chajjaoui, 13/05)** : le client
|
||||
> souhaite que les palettes retour rejetées au PIE (verrou ECART RETOUR)
|
||||
> **retournent au PK pour recomptage immédiat**. L'approche V1 (poumon de
|
||||
> rejet au sol + notification SmartUI) **ne correspond pas** au besoin et
|
||||
> est abandonnée.
|
||||
|
||||
Points à résoudre avant implémentation :
|
||||
|
||||
- Routage AGV retour **PIE → PK** : comment EasyS gère-t-il le renvoi
|
||||
vers un PK ?
|
||||
- Relance du workflow de déclaration sur la même palette : peut-on
|
||||
ré-ouvrir la palette au PK sans perdre les données déjà déclarées, ou
|
||||
faut-il repartir de zéro ?
|
||||
- Gestion du verrou ECART RETOUR : levé automatiquement au retour au PK,
|
||||
ou levé manuellement par le responsable ?
|
||||
- Impact sur la clôture : une palette en boucle PIE ↔ PK bloque-t-elle
|
||||
indéfiniment la clôture ?
|
||||
|
||||
Cette section sera complétée une fois la solution technique définie
|
||||
(question B2 dans
|
||||
[Questions ouvertes](../08-transverse/questions-ouvertes.md)).
|
||||
|
||||
## Clôture - Spécificités retour client (LIM-73)
|
||||
|
||||
Le mécanisme général de clôture (déclenchement auto-close, tolérance par
|
||||
ligne, CstAtt01 OE hors tolérance, clôture OE) est documenté dans
|
||||
[Réception fournisseur — Clôture](reception-fournisseur.md). Cette
|
||||
[Réception fournisseur - Clôture](reception-fournisseur.md). Cette
|
||||
section décrit le **delta retour client** : le REF est conditionné au
|
||||
rangement ASRS complet.
|
||||
|
||||
@@ -341,9 +454,10 @@ Pour les autres types de réception (fournisseur / intersite), le REF est
|
||||
émis à la clôture de la réception, quelle que soit la position des
|
||||
supports.
|
||||
|
||||
### CstAtt11 — Marqueur de rangement ASRS
|
||||
### CstAtt11 - Marqueur de rangement ASRS
|
||||
|
||||
À chaque fin de tâche de rangement dans l'ASRS :
|
||||
À chaque fin de tâche de rangement dans l'ASRS
|
||||
(WF `Container_MovedEventHandler_Warehouse_PR`, sur fin de tâche APS) :
|
||||
|
||||
- Vérifier si le support provient d'une réception de type **retour**
|
||||
- Si oui → `CstAtt11 = true` sur le support
|
||||
@@ -367,7 +481,7 @@ Dans la vue des réceptions, le statut visuel est piloté par le
|
||||
Pour les réceptions non-retour, CstAtt01 de la réception n'est pas
|
||||
utilisé (affichage standard).
|
||||
|
||||
### Adaptation Reception_Close_PR_V2 — Partie A (retours)
|
||||
### Adaptation Reception_Close_PR_V2 - Partie A (retours)
|
||||
|
||||
- **Si non-retour** → clôture immédiate, génération REF (standard)
|
||||
- **Si retour** :
|
||||
@@ -391,57 +505,177 @@ en ASRS → la valeur sera toujours une zone réelle (jamais "NON RANGEE").
|
||||
|
||||
| CstAtt | Entité | Rôle |
|
||||
|--------|--------|------|
|
||||
| CstAtt08 | Palette fictive | Code réception — détecte l'absence de palettes fictives restantes (§ auto-close) |
|
||||
| CstAtt10 | Palette réelle au PK | `true` pendant traitement PK — détecte qu'aucune palette n'est en cours de traitement |
|
||||
| CstAtt11 | Palette réelle | `true` quand rangée en ASRS — condition de clôture retour |
|
||||
| CstAtt08 | Palette fictive | Code réception - détecte l'absence de palettes fictives restantes (§ auto-close) |
|
||||
| CstAtt10 | Palette réelle au PK | `true` pendant traitement PK - détecte qu'aucune palette n'est en cours de traitement |
|
||||
| CstAtt11 | Palette réelle | `true` quand rangée en ASRS - condition de clôture retour |
|
||||
| CstAtt01 | Réception | `true` = clôture en attente de rangement ASRS (affichage jaune) |
|
||||
|
||||
## État du développement LIM-72
|
||||
### [CUSTOM] Détection du mode retour (revue de code validée 2026-06-02)
|
||||
|
||||
### Implémenté (commit 8401f5456d, 28/04/2026)
|
||||
Éléments techniques propres au flux retour issus de la revue de code
|
||||
LIM-73 (le socle clôture / tolérance est dans
|
||||
[Réception fournisseur](reception-fournisseur.md#custom-éléments-techniques-revue-de-code-validée-2026-06-02)) :
|
||||
|
||||
- Entité `CST_StockStatus` : CstAtt 1 applicable en retour, CstAtt 2 =
|
||||
ZLOG, CstAtt 3 = ZINCO
|
||||
- Query `CST_StockStatus_AllowedForReturn` : filtre statuts autorisés
|
||||
- Workflow `CST_Return_Stock_GetStatus_UI` : sélection statut simplifié
|
||||
- Workflow `Reception_FilterLinesByProductAndContainer_UI_V1` : retrait
|
||||
filtre quantité (tolérance illimitée)
|
||||
- Dialog `CST_GetProductQuantity_Prompt` : option SelectStatus ajoutée
|
||||
| Élément | Type | Rôle |
|
||||
|---------|------|------|
|
||||
| `CST_Reception_GetReceptionFromContainer` | WF | Si aucune réception trouvée pour le conteneur, recherche un **retour** au code correspondant ; si trouvé → `returnMode = true` |
|
||||
| `Reception_Supplier_ChooseReception_UI` | WF/UI | Ajout du paramètre formel `CST_ReturnMode` |
|
||||
| `WorkStation_Reception_Supplier_UI` | WF/UI | Ajout de l'attribut `CST_ReturnMode` |
|
||||
| `WorkStation_Reception_Supplier_ConfirmReceivedStock_UI` | WF/UI | Si retour → création du stock via une **commande différente** |
|
||||
| `CST_View_WaitForFullPutaway` | Ressource | Libellé du statut « Clôture en cours » : FR « En attente de rangement [CST 1] », EN « Waiting for full putaway [CST 1] » |
|
||||
|
||||
### Reste à développer
|
||||
## Statuts de stock retour et remontée REF (LIM-90)
|
||||
|
||||
- Appel API SAP ATH214 + gestion token OAuth 2.0
|
||||
- Écran d'attente ITM (polling alias 5s, timeout 1 min, 5 tentatives)
|
||||
- Dialogue choix multi-lot (quand ET_BATCH contient plusieurs articles)
|
||||
- Impression étiquette stock retour client (rapport custom à créer)
|
||||
- Configuration flux de rejet PIE retours (verrou ECART RETOUR,
|
||||
destination, notification)
|
||||
> **Statut** : préprod / test client. Revue de code terminée (03/06,
|
||||
> après une première itération NOK 02/06 : commentaires `// Custom`
|
||||
> manquants sur `REF01.boo` / `REF01Observer.boo`).
|
||||
|
||||
Custom du message REF + GNA pour remonter à SAP le **statut de stock**
|
||||
(codes SAP ZLOG/ZINCO) et le **lot officiel** lors des réceptions retour
|
||||
client. Réutilise la détermination retour/fournisseur de
|
||||
[LIM-89](../06-erp-interface/gna-sap-cpi.md) : les balises ZLOG/ZINCO ne
|
||||
sont posées que si la réception est de **type retour**.
|
||||
|
||||
Le STC étant désactivé (décision 30/04), le REF est le seul canal de
|
||||
remontée des statuts pour les retours.
|
||||
|
||||
### Catalogue des 8 statuts (master data)
|
||||
|
||||
`F2` (« Conforme sac propre ») = **absence de statut** dans le WMS : rien
|
||||
à créer. SAP interprète l'absence de statut comme F2 (ZLOG `0002` /
|
||||
ZINCO `0001`).
|
||||
|
||||
| Libellé statut WMS | ZLOG (CstAtt2) | ZINCO (CstAtt3) | Bloque picking | Bloque shipping |
|
||||
|---|---|---|---|---|
|
||||
| (F9) Conforme sac sale | 0002 | 0091 | Non | Non |
|
||||
| (B6) Non conforme - Sacs ouverts | 0001 | 0002 | Oui | Oui |
|
||||
| (B6) Non conforme - Lot de l'année précédente | 0001 | 0003 | Oui | Oui |
|
||||
| (B6) Non conforme - Certificat absent | 0001 | 0004 | Oui | Oui |
|
||||
| (B6) Non conforme - Anomalie couture | 0001 | 0005 | Oui | Oui |
|
||||
| (B6) Non conforme - Article externe - Hors LMG | 0001 | 0006 | Oui | Oui |
|
||||
| (B6) Non conforme - Article non prévu | 0001 | 0007 | Oui | Oui |
|
||||
| (B6) Non conforme - Sac ouvert / endommagé | 0001 | 0008 | Oui | Oui |
|
||||
|
||||
> ⚠️ Les blocages picking/shipping par statut sont **à confirmer avec
|
||||
> le client** (proposition ci-dessus : F9 ne bloque rien, tous les B6
|
||||
> bloquent picking et shipping).
|
||||
|
||||
### Balises REF ajoutées (par ligne de stock)
|
||||
|
||||
| Balise | Contenu | Cas F2 (sans statut) |
|
||||
|---|---|---|
|
||||
| `LneStockStatus` | Libellé du statut (ex. « (B6) Non conforme - Sacs ouverts ») | vide |
|
||||
| `LneStockZLOG` | Valeur CstAtt2 du statut | vide |
|
||||
| `LneStockZINCO` | Valeur CstAtt3 du statut | vide |
|
||||
| `LneStockOfficialLot` | Alias de l'article WMS = lot officiel SAP (1er alias dont la valeur diffère du code article), ajouté sous `LneItemCode` | vide/absent si pas d'alias |
|
||||
|
||||
### Implémentation GNA (revue de code)
|
||||
|
||||
| Fichier | Rôle |
|
||||
|---|---|
|
||||
| `REF01.boo` | Ajout du header du message REF (nouvelles données) |
|
||||
| `REF01Observer.boo` | Cœur : récupère l'alias selon le code produit ; récupère les CstAtt du statut de stock et les pose **uniquement si la réception est de type retour** |
|
||||
| `REF01.xsd` | Structure du message REF avec les données custom |
|
||||
|
||||
Entité `CST_StockStatus` (déjà cataloguée, CstAtt2 = ZLOG, CstAtt3 =
|
||||
ZINCO) : voir [AD Customs](../07-admin/ad-customs.md).
|
||||
|
||||
> Un REF **non-retour** (fournisseur / intersite) ne porte pas de
|
||||
> ZLOG/ZINCO ; le lot officiel reste présent si l'article a un alias.
|
||||
|
||||
> Prérequis : le REF retour est conditionné au **rangement ASRS complet**
|
||||
> (LIM-73, CstAtt11).
|
||||
|
||||
## [CUSTOM] Éléments techniques (LIM-93, revue de code)
|
||||
|
||||
> **Statut** : LIM-93 « En cours de test client (préprod) ». Le socle
|
||||
> statut de stock a une revue de code validée (26/06) ; la partie API
|
||||
> ATH214 est en cours de revue (voir caveat plus bas).
|
||||
|
||||
### Statut de stock - sélection en étape dédiée
|
||||
|
||||
Implémentation (commits `5b36a4c5a3` 11/06, `55f8ced13f` 12/06 ; revue
|
||||
de code validée 26/06) :
|
||||
|
||||
| Élément | Type | Rôle |
|
||||
|---------|------|------|
|
||||
| `CST_StockStatus` | Entité | CstAtt1 = applicable en réception, CstAtt2 = ZLOG, CstAtt3 = ZINCO |
|
||||
| `CST_StockStatus_AllowedForReturn` | Query | Statuts sélectionnables en réception retour (CstAtt1) |
|
||||
| `CST_StockStatus_ForView` | Query | Query de la vue `StockStatusVList` |
|
||||
| `StockStatusVList` | Vue | Affichage des CstAtt 1, 2 et 3 |
|
||||
| `CST_Return_Stock_GetStatus_UI` | WF | Clone simplifié de `Stock_GetStatus_UI` pour le retour ; ajoute le statut fictif « Stock conforme » en tête (paramètre `RECEPTION_CONFORM_STOCK_STATUS`) |
|
||||
| `Reception_GetQuantityAndUom_UI` | WF | Suppression du bouton de sélection de statut sur l'écran quantité |
|
||||
| `WorkStation_Reception_Supplier_UI` | WF | Déplacement de la sélection du statut **avant** la quantité |
|
||||
| `Reception_FilterLinesByProductAndContainer_UI_V1` | WF | Retrait du filtre qui exclut les lignes déjà réceptionnées → autorise la réception en excès (tolérance illimitée) |
|
||||
| `Reception_Supplier_CheckReceptionStatus_UI_V1` | WF | Autorise la création de ligne pour les réceptions de type retour |
|
||||
| `CST_GetProductQuantity_Prompt` | Dialog | Suppression de l'option de sélection de statut |
|
||||
| `RECEPTION_CONFORM_STOCK_STATUS` | Paramètre | Nom du statut fictif « Stock conforme » |
|
||||
|
||||
### API ATH214 - vérification lot
|
||||
|
||||
Implémentation (commit `d33037da72` 25/05 ; champs VAR_DESC/COM_TRT_DESC
|
||||
`fa5f2f863d` 08/07 ; auto-validation attributs `02364f440f` 07/07) :
|
||||
|
||||
| Élément | Type | Rôle |
|
||||
|---------|------|------|
|
||||
| `CST_Reception_Return_ATH214_Request_UI` | WF | Gère la requête ATH214 vers SAP CPI et renvoie la liste `ET_BATCH` |
|
||||
| `CST_Reception_Return_ATH214_CheckData_UI` | WF | Process réception classe « Retour » : demande le code OE et la sélection du lot parmi ceux renvoyés par SAP |
|
||||
| `CST_Reception_Return_ATH214_CheckData_Product_UI` | WF | Vérifie l'existence du produit en base et gère l'attente de l'ITM (ATH002) |
|
||||
| `CaptureProductLotAttributeForReception_UI` | WF | Réutilise le lot sélectionné dans `CST_Reception_Return_ATH214_CheckData_UI` |
|
||||
| `GetReceptionProductByIA` | WF | En classe « Retour », permet de sélectionner un article/alias qui n'existe pas encore |
|
||||
| `CST_EtBatch` | Record | Modèle de données d'une entrée `ET_BATCH` (+ champs VarDesc, ComTrtDesc) |
|
||||
| `CST_EtBatchList` | List | Liste de `CST_EtBatch` |
|
||||
| `CST_EtBatchSelector` | Dialog | Sélecteur multi-lot (`VAR_DESC - COM_TRT_DESC - DESTINATION (MATNR)`) |
|
||||
| `CST_Reception_Return_API_TimeoutOption` | Dialog | Options en cas d'échec de communication selon le nombre de timeouts |
|
||||
| `CST_LogWebServiceCommunication` | Toggle | Active le logging de la communication API ATH214 |
|
||||
|
||||
Ressources principales : `CST_Reception_Return_API_SelectLot`,
|
||||
`..._Error`, `..._MultiLot`, `..._NoDeployedLot`, `..._Timeout`,
|
||||
`..._TimeoutExceededTry_1`, `..._WaitingResponse`,
|
||||
`CST_Reception_Return_Prompt_InboundOrderCode`,
|
||||
`CST_Reception_Return_API_LotSelectionColumnHeader`.
|
||||
|
||||
> ⚠️ **Caveat revue de code (Maxime Halgand 16/07 → Vincent Charvet
|
||||
> 17/07)** : sur `CST_Reception_Return_ATH214_Request_UI`, l'appel est
|
||||
> lancé en tâche `async` (`Task.Factory.StartNew`) pour afficher les
|
||||
> écrans sans attendre ; `callResult` est mis à jour dans la tâche. Le
|
||||
> timeout vient du `HttpClient` (100 s par défaut, soit ~200 s max :
|
||||
> token + data). **Seul cas de boucle infinie résiduel** : si
|
||||
> `LogManager.GetLogger` lève une exception (hors try/catch),
|
||||
> `callResult` n'est jamais mis à jour → à corriger avant validation.
|
||||
|
||||
## Points d'attention
|
||||
|
||||
⚠️ Le paramètre `SAP_LOT_VERIFY_URL` doit pointer vers l'endpoint CPI
|
||||
unique `/http/ATHInboundMessage`, pas vers `/api/v1/lot/verify`.
|
||||
⚠️ Endpoint CPI unique `/http/ATHInboundMessage` avec `MessageType =
|
||||
"ATH214"` dans l'enveloppe JSON. Les paramètres V1 `SAP_LOT_VERIFY_*`
|
||||
sont **remplacés** par `SAP_CPI_TOKEN_URL`, `SAP_CPI_ENDPOINT_URL`,
|
||||
`SAP_ATH214_TIMEOUT` (60 s), `SAP_ATH214_MAX_RETRIES` (5),
|
||||
`SAP_ATH214_REFRESH_INTERVAL` (5000 ms) - voir
|
||||
[Paramètres projet](../07-admin/parametres-projet.md).
|
||||
|
||||
⚠️ Le `MessageType` doit être `"ATH214"` dans l'enveloppe JSON.
|
||||
|
||||
⚠️ Pour les lots **déjà connus** en base WMS, le flag "déployé" n'est
|
||||
pas vérifié dans le design actuel — trou fonctionnel identifié (question
|
||||
A4 dans [Questions ouvertes](../08-transverse/questions-ouvertes.md)).
|
||||
⚠️ La vérification « déployé » (`ZDEPLOY`) des lots **déjà connus** en
|
||||
base est désormais assurée par l'appel ATH214 **systématique** (V2). Le
|
||||
trou fonctionnel A4 est fermé.
|
||||
|
||||
## Questions ouvertes
|
||||
|
||||
- [ ] Champs manquants ET_BATCH : description article, pays destination,
|
||||
propriétaire (@Vincent Goyet) — A1
|
||||
- [ ] Nom final champ déploiement : EV_DEPLOY ou ZDEPLOY ?
|
||||
(@Vincent Goyet) — A2
|
||||
- [ ] Délai ATH214 → push ITM dimensionnement polling
|
||||
(@Vincent Goyet) — A3
|
||||
- [ ] Vérification "déployé" pour lots déjà connus sans ATH214
|
||||
(@Vincent Goyet) — A4
|
||||
- [ ] Étiquette stock retour : format, champs, imprimante
|
||||
(@Leila / @Antoine) — B1
|
||||
- [ ] Flux rejet PIE retour : destination, notification, actions
|
||||
(@Leila / @Antoine) — B2
|
||||
- [x] ~~Champs manquants ET_BATCH : description article, pays destination,
|
||||
propriétaire - A1~~ → Résolu : `DESCRIPTION`, `DESTINATION`, `OWNER`
|
||||
ajoutés, plus `VAR_DESC` (variété) et `COM_TRT_DESC` (traitement
|
||||
commercial)
|
||||
- [x] ~~Nom final champ déploiement : EV_DEPLOY ou ZDEPLOY ? - A2~~ →
|
||||
Résolu : `ZDEPLOY` (confirmé V2)
|
||||
- [x] ~~Délai ATH214 → push ITM dimensionnement polling - A3~~ → Résolu :
|
||||
polling 5000 ms, timeout 60 s, 5 tentatives (paramétrés)
|
||||
- [x] ~~Vérification "déployé" pour lots déjà connus sans ATH214 - A4~~ →
|
||||
Résolu : appel ATH214 systématique
|
||||
- [x] ~~Étiquette stock retour : format, champs, imprimante - B1~~ →
|
||||
Résolu : pas de rapport séparé, RFID LIM-68 enrichie (A5 Zebra,
|
||||
imprimante dédiée PK)
|
||||
- Flux rejet PIE retour (B2) : le client veut un **renvoi au PK pour
|
||||
recomptage** (approche poumon abandonnée). Routage AGV PIE → PK, relance
|
||||
du workflow sur la même palette, levée du verrou ECART RETOUR, impact
|
||||
clôture - **solution technique à définir** (@Leila / @Antoine)
|
||||
|
||||
## Historique des modifications
|
||||
|
||||
@@ -452,15 +686,22 @@ A4 dans [Questions ouvertes](../08-transverse/questions-ouvertes.md)).
|
||||
| 2026-05-12 | Arthur | Intégration LIM-72 (process complet 8 étapes, API SAP, CstAtt) |
|
||||
| 2026-05-12 | Arthur | Intégration LIM-73 (clôture retour, CstAtt11, REF conditionné) |
|
||||
| 2026-05-13 | Arthur | Correction API : endpoint CPI unique + ATH214, auth OAuth 2.0, mapping CHARG/MATNR, état dev, questions ouvertes |
|
||||
| 2026-07-17 | Arthur | LIM-72 confirmé Annulé(e) (V1) → repris par LIM-93 (V2) : notes de supersession ajoutées (résumé, table process, état dev) ; contenu V1 conservé comme référence à valider. Détail définitif différé à la relecture de LIM-93 |
|
||||
| 2026-07-17 | Arthur | Relecture revue de code LIM-73 (validée 02/06, préprod) : sous-section « Détection du mode retour » (WF returnMode, `Container_MovedEventHandler_Warehouse_PR` pour CstAtt11, ressource `CST_View_WaitForFullPutaway`) |
|
||||
| 2026-07-17 | Arthur | Intégration LIM-90 (revue de code terminée 03/06, préprod) : section « Statuts de stock retour et remontée REF » (catalogue 8 statuts ZLOG/ZINCO + blocage picking/shipping, F2 = absence de statut, balises `LneStockStatus`/`LneStockZLOG`/`LneStockZINCO`/`LneStockOfficialLot`, GNA `REF01.boo`/`REF01Observer.boo`/`REF01.xsd`, réutilise détermination retour LIM-89) |
|
||||
| 2026-07-17 | Arthur | Intégration LIM-93 V2 (préprod, revue de code en cours) : appel ATH214 **systématique** (résout A4), champs `ET_BATCH` `DESCRIPTION`/`DESTINATION`/`OWNER`/`ZDEPLOY`/`VAR_DESC`/`COM_TRT_DESC` (résout A1/A2), dialogue multi-lot reformaté, statut de stock en **étape dédiée** + statut fictif « Stock conforme » (`RECEPTION_CONFORM_STOCK_STATUS`), auto-validation attributs logistiques, **étiquette RFID enrichie** A5 Zebra (résout B1, impact LIM-68), rejet PIE **renvoi au PK** placeholder (B2), section « Éléments techniques » (WF/dialogs/records ATH214 + caveat boucle infinie), verrou PIE renommé « ECART RETOUR » |
|
||||
|
||||
## Références
|
||||
|
||||
| Source | Type | Date |
|
||||
|--------|------|------|
|
||||
| Jira LIM-72 | Ticket | 2025 |
|
||||
| Jira LIM-73 | Ticket | 2025 |
|
||||
| [LIM-72](https://easywmsfrance.atlassian.net/browse/LIM-72) | Ticket Jira (V1, Annulé) | 2026 |
|
||||
| [LIM-93](https://easywmsfrance.atlassian.net/browse/LIM-93) | Ticket Jira (V2 - description + revue de code, préprod) | 2026-07-17 |
|
||||
| Commits LIM-93 : `d33037da72` (API ATH214), `5b36a4c5a3` / `55f8ced13f` (statut de stock), `02364f440f` (auto-validation attributs), `fa5f2f863d` (VAR_DESC/COM_TRT_DESC) | Git | 2026-05/07 |
|
||||
| [LIM-73](https://easywmsfrance.atlassian.net/browse/LIM-73) | Ticket Jira (clôture/REF retour) - revue de code validée, préprod | 2026-06-02 |
|
||||
| [LIM-90](https://easywmsfrance.atlassian.net/browse/LIM-90) | Ticket Jira (statuts ZLOG/ZINCO + lot officiel) - revue de code terminée, préprod | 2026-06-03 |
|
||||
| Jira LIM-14 | Ticket (CstAtt) | 2025 |
|
||||
| Athenzat SAP-CPI Webservices Documentation v1.0 | PDF | 2026-04-24 |
|
||||
| Mail Michael Chaudier ↔ Vincent Goyet | Échange | 2026-04-07/10 |
|
||||
| Mail Justine ↔ Leila ↔ Vincent Goyet ↔ Maxime Tourrette | Échange | 2026-04-24/29 |
|
||||
| recap_session_LIM-72_13-05-2026.md | Récap session | 2026-05-13 |
|
||||
| recap_session_LIM-72_13-05-2026.md | Récap session | 2026-05-13 |
|
||||
|
||||
Reference in New Issue
Block a user