diff --git a/ROADMAP.md b/ROADMAP.md index a68d3cd..29c51a0 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -151,6 +151,68 @@ que la cause réelle est l'absence de signal. --- +## Lot 4 — Modèle de données et applications + +Deux angles morts constatés le 24/08/2026, plus larges que les lots 1 à 3. Les +chiffres ci-dessous sont mesurés sur le tenant `LIMAGRAI2512`. + +### L4.1 — Le modèle Writing est inatteignable + +`QueryType` est figé à `0` (Reading) en dur dans `api-service.js` +(`executeQuery` et `executeScalarQuery`). Aucun outil ne permet d'interroger le +modèle **Writing**. + +Ce n'est pas une limite de l'API : `{"Application":"EasyWMS","QueryType":1, +"Expression":"Context.Products.OrderBy(z => z.Id)","Take":1}` répond +correctement. Il manque simplement le paramètre. + +Attention en l'exposant : D3 reste vrai — en `QueryType: 1` les champs de statut +sont des **énumérations**, donc les comparaisons par chaîne (`== "Release"`) +échouent. Le défaut doit rester `0`, et la bascule être un choix explicite et +documenté, pas une option qu'on active au hasard. + +### L4.2 — Une seule application sur neuf est visible + +`Application` vient de `WMS_APPLICATION` dans `.env`, **partagé par tous les +profils**, sans surcharge par appel ni paramètre d'outil. Le MCP n'interroge donc +jamais que `EasyWMS`. + +`POST /AD/api/Application/GetAll` en déclare **9** : + +| Application | Workflows | Queries | Entities | +|---|---:|---:|---:| +| EasyWMS | 4012 | 2239 | 338 | +| **CustomApp** | **153** | **54** | **11** | +| AGV | 71 | 14 | 5 | +| Notifications | 26 | 35 | 24 | +| GalileoFaults | 9 | 20 | 24 | +| Common | 1 | 7 | 25 | +| SmartUI, User, WarehouseWebDesigner | 0 | 0–8 | 0 | + +**CustomApp porte le spécifique client** — ses workflows sont préfixés `CST_` +(`CST_SendRejectContainersToPK`, `CST_Task`, `CST_Container`…). C'est +précisément ce qu'on cherche en debug, et c'est aujourd'hui invisible. Au total +**260 workflows et ~130 queries** hors périmètre. + +Deux chantiers de difficulté très différentes : + +**API AD — simple.** L'application est un champ du payload +(`[application, tenant, pageSize, offset]`). Vérifié : `["CustomApp", tenant, +5, 0]` sur `/Workflow/GetByApplication` renvoie bien les workflows `CST_`. Il +suffit d'un paramètre `application` sur les outils AD et workflow, avec une clé +de cache incluant l'application (sinon un cache pollué mélange les +applications). + +**QueryExecute — non résolu, à investiguer.** Passer `Application: "CustomApp"` +ne change **pas** le contexte de lecture : l'erreur reste +`ApplicationReadingContext ne contient pas de définition pour …`. Les 11 entités +`CST_` ne sont atteignables ni au singulier ni au pluriel, et **aucune** n'est +présente dans les 232 entités du Metadata `EasyWMS` (vérifié). Elles sont +définies dans EasyBuilder (`FromMetadata: false`) — reste à déterminer si elles +sont interrogeables, et sous quel nom. Ne rien promettre avant d'avoir tranché. + +--- + ## Écarté | Proposition | Raison |