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é
|
||||
|
||||
| Proposition | Raison |
|
||||
|
||||
Reference in New Issue
Block a user