L4.2 : paramètre application sur les outils AD et workflow (D26)
L'application venait de WMS_APPLICATION (partagée par tous les profils) : le MCP n'interrogeait que EasyWMS, alors que CustomApp porte le spécifique client (153 workflows CST_ sur ce tenant) et que 9 applications sont déclarées par Application/GetAll. Paramètre application (défaut : l'application du profil, comportement inchangé sans lui) sur get_ad_elements, search_ad_elements, get_ad_element_details, search_workflows, get_workflow_details, list_workflow_categories. Clés de cache : ad-service passe par (application, type), workflow-service par application — sans quoi un appel CustomApp polluerait le cache EasyWMS. L'invalidation reste l'abonnement onSwitch (D8), le chargement reste paresseux (aucun préchargement des 9 applications, D10). list_workflow_categories s'adosse à Application/GetAll (liste allégée en cache : le blob data de chaque application pèse ~100 Ko) ; get_application_summary regroupe par application et ne détaille que les entrées en cache (D24), workflows compris. Acté en D26 ; CLAUDE.md mis à jour (Caches, AD), L4.2 retiré de la ROADMAP. Vérifications rejouées via le protocole (LIMAGRAIN / LIMAGRAI2512), requêtes séquentielles : - search_workflows(CST_, application:CustomApp) -> 5 objets peuplés dont CST_SendRejectContainersToPK ([Workflow] Successfully cached 153 workflows for "CustomApp"). - get_ad_elements(Workflow, application:CustomApp) -> count 153, éléments CST_* ([AD] Successfully cached 153 CustomApp::Workflow). - Séquence EasyWMS -> CustomApp -> EasyWMS sur search_workflows : 4012 vs 153, retour en cache hit ([Workflow] Using cached data for "EasyWMS"), aucune pollution ; get_application_summary montre les deux caches (workflowCachesByApplication EasyWMS 4012 / CustomApp 153). - Sans paramètre application -> comportement inchangé (W1 = W3). - switch_wms_profile EUROTRAFIC puis retour -> [Workflow] Cache cleared, [AD] All caches invalidated, [EntityResolver] Cache cleared ; summary vide. - list_workflow_categories -> 9 applications, comptes réels des applications chargées. Baseline : tools/list 23 (les 23 noms répondent), resources 6, rejet D23 d'un paramètre inconnu OK (search_workflows/applikation), npm test 4/4 exit 0. Anomalie hors périmètre consignée dans ROADMAP.md : get_workflow_details peut dépasser le seuil de rejet client (~101 800 caractères mesurés sur CST_SendRejectContainersToPK), comportement antérieur au lot. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -170,13 +170,18 @@ disponibles : c'est ainsi que Claude sait appeler `switch_wms_profile`.
|
||||
|
||||
## Caches
|
||||
|
||||
Deux caches, TTL commun `WORKFLOW_CACHE_TTL` (3 600 000 ms), chargement
|
||||
paresseux, vidés à chaque bascule de profil (D10).
|
||||
TTL commun `WORKFLOW_CACHE_TTL` (3 600 000 ms), chargement paresseux, vidés à
|
||||
chaque bascule de profil (D10). Les outils AD et workflow acceptent un
|
||||
paramètre **`application`** (défaut : l'application du profil) — les clés de
|
||||
cache incluent l'application pour éviter toute pollution croisée (D26).
|
||||
|
||||
| Cache | Granularité | Pagination |
|
||||
|---|---|---|
|
||||
| `workflow-service` | global (~3 700 workflows) | `WORKFLOW_PAGE_SIZE`, 5000 |
|
||||
| `ad-service` | **un par type** (20 types) | `AD_ELEMENT_TYPES` : `View` 200, `Workflow` 5000, `Resource` 15000, autres 100000 |
|
||||
| `workflow-service` | **un par application** (~4 000 EasyWMS, 153 CustomApp) + liste allégée d'`Application/GetAll` | `WORKFLOW_PAGE_SIZE`, 5000 |
|
||||
| `ad-service` | **un par (application, type)** (20 types) | `AD_ELEMENT_TYPES` : `View` 200, `Workflow` 5000, `Resource` 15000, autres 100000 |
|
||||
|
||||
**Ne préchargez jamais les 9 applications** : seule l'application demandée est
|
||||
chargée (D26).
|
||||
|
||||
Les tailles de page par type viennent de l'observation des timeouts serveur —
|
||||
ne les augmentez pas à l'aveugle.
|
||||
@@ -235,11 +240,13 @@ pluriel), `Tasks`, `Stocks`, `ProductLocations`, `InboundOrders`, `Receptions`,
|
||||
confondues) s'obtient par `get_entity_metadata` (API Metadata) — le catalogue
|
||||
de la resource `wms://entities` est un raccourci de confort, pas la référence.
|
||||
|
||||
**Application Dictionary** : 20 types, ~38 800 éléments. `Resource` (29 374) est
|
||||
de loin le plus lourd ; 3 types sont valides mais vides (`Dashboard`,
|
||||
`TimelineTemplate`, `Toggle`). `WorkflowAction` et `WritingModel` ont été
|
||||
retirés — 404 (D17). Détail :
|
||||
[docs/ad-api-validation.md](docs/ad-api-validation.md).
|
||||
**Application Dictionary** : 20 types, ~38 800 éléments (sur `EasyWMS`).
|
||||
`Resource` (29 374) est de loin le plus lourd ; 3 types sont valides mais vides
|
||||
(`Dashboard`, `TimelineTemplate`, `Toggle`). `WorkflowAction` et `WritingModel`
|
||||
ont été retirés — 404 (D17). Détail :
|
||||
[docs/ad-api-validation.md](docs/ad-api-validation.md). 9 applications AD sont
|
||||
déclarées ; **`CustomApp` porte le spécifique client** (workflows `CST_*`) et
|
||||
s'interroge via le paramètre `application` des outils AD et workflow (D26).
|
||||
|
||||
**Paramètres système** : pas d'entité `CommandParameterData`. La configuration
|
||||
se lit dans `Parameter` (+ `DefaultValue`) et `ParamValue` (surcharges par
|
||||
|
||||
Reference in New Issue
Block a user