Roadmap : ajoute le lot 4 (modèle de données et applications)
Deux angles morts mesurés sur le tenant LIMAGRAI2512. L4.1 — QueryType est figé à 0 (Reading) en dur dans api-service.js : le modèle Writing est inatteignable. Ce n'est pas une limite de l'API, QueryType 1 répond correctement sur Context.Products — il manque le paramètre. D3 reste vrai en revanche : en Writing les statuts sont des énumérations, donc le défaut doit rester 0. L4.2 — Application vient de WMS_APPLICATION, partagé par tous les profils, sans surcharge possible. Le MCP n'interroge que EasyWMS alors que /AD/api/Application/GetAll en déclare 9. CustomApp porte le spécifique client (153 workflows, 54 queries, 11 entités préfixés CST_) et est entièrement invisible ; avec AGV, Notifications, GalileoFaults et Common, ce sont 260 workflows hors périmètre. Côté API AD le correctif est simple, l'application n'étant qu'un champ du payload — vérifié, ["CustomApp", tenant, 5, 0] renvoie bien les workflows CST_. Il faudra en revanche indexer les caches par application. Côté QueryExecute c'est non résolu : passer Application "CustomApp" ne change pas le contexte de lecture, les entités CST_ ne répondent ni au singulier ni au pluriel et aucune n'apparaît dans les 232 entités du Metadata EasyWMS. Elles sont définies dans EasyBuilder (FromMetadata: false). Consigné comme question ouverte, sans solution promise. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+62
@@ -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é
|
## Écarté
|
||||||
|
|
||||||
| Proposition | Raison |
|
| Proposition | Raison |
|
||||||
|
|||||||
Reference in New Issue
Block a user