mirror of
https://github.com/R0m1k3/CollectFlow.git
synced 2026-10-11 17:26:32 +02:00
Qlik: selection par code fournisseur au lieu de 41 569 codes articles
Le code fournisseur FF de la base SQL/API existe aussi dans Qlik : une seule valeur y designe le meme perimetre que les dizaines de milliers de codes articles. Comme SelectValues sur « Article Code » coute 8 a 100 s par appel et doit etre refait a chaque passe annuelle, la bascule supprime la partie la plus couteuse de la sync. - ETAPE 0 : selectionnerParFournisseur() avant choisirPeriode(). - Essaie QLIK_FIELD_CODE_FOURNISSEUR puis code_fournisseur, Fournisseur, fournisseur_code_centrale. - Verifie la couverture reelle (Article Code visibles vs codes demandes) et n'accepte la bascule qu'au-dela de QLIK_SUPPLIER_MIN_COVERAGE (0.99 par defaut) ; sinon annule la selection et revient aux codes. - Quand la bascule est retenue, plus aucun SelectValues sur Article Code (passes annuelles et agregation par expressions). - La sync fournisseur transmet job.fournisseur ; la sync produit (un seul code centrale) reste inchangee. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DfqUihgixw4K1AmJhizWiu
This commit is contained in:
3 files changed
+208
-14
No files matched your search
@@ -330,6 +330,38 @@ sélection de codes, puis seule la fenêtre de dates change d'un mois à l'autre
|
||||
La sonde de diagnostic de fin de sync a été retirée : elle refaisait une sélection
|
||||
complète des codes et des 365 jours pour rien.
|
||||
|
||||
### Sélection PAR FOURNISSEUR (ÉTAPE 0)
|
||||
|
||||
Le code fournisseur FF présent en base SQL / API (ex. `J009`) existe aussi dans
|
||||
Qlik. Une valeur y désigne le même périmètre que les dizaines de milliers de codes
|
||||
articles — pour un fournisseur de 41 569 références, c'est **un** `SelectValues`
|
||||
trivial au lieu d'un appel de 8 à 100 s **répété à chaque passe annuelle**.
|
||||
|
||||
`selectionnerParFournisseur()` (in-page, avant `choisirPeriode()`) :
|
||||
|
||||
1. essaie chaque champ candidat — `QLIK_FIELD_CODE_FOURNISSEUR`, puis
|
||||
`code_fournisseur`, `Fournisseur`, `fournisseur_code_centrale` ;
|
||||
2. `SelectValues` le code fournisseur (soft lock) ; une valeur inconnue passe au
|
||||
champ suivant ;
|
||||
3. **vérifie la couverture** : lit les Article Code visibles sous cette sélection
|
||||
(cube paginé) et compare aux codes demandés ;
|
||||
4. ne retient la bascule que si la couverture atteint `QLIK_SUPPLIER_MIN_COVERAGE`
|
||||
(défaut **0.99**, borné à [0.5, 1]). Sinon la sélection est annulée et on
|
||||
revient à la sélection par codes.
|
||||
|
||||
Ce contrôle est indispensable : un article rattaché à plusieurs fournisseurs, ou
|
||||
un référencement Qlik différent du référencement FF, doit faire **revenir aux
|
||||
codes** plutôt que perdre silencieusement des articles.
|
||||
|
||||
Quand la bascule est retenue (`parFournisseur = true`), plus **aucun**
|
||||
`SelectValues` sur « Article Code » n'est émis — ni par les passes annuelles, ni
|
||||
par l'agrégation directe par expressions. Le périmètre fournisseur survit aux
|
||||
sélections `Année` et `Date`, qui portent sur d'autres champs. Le repli par lots
|
||||
de codes reste disponible si l'Engine refuse un cube.
|
||||
|
||||
En mode produit (sync d'un seul code centrale), aucun fournisseur n'est transmis :
|
||||
la sélection reste par code.
|
||||
|
||||
### Aucun résultat partiel dans le cache
|
||||
|
||||
Le script in-page conserve des points de contrôle à des fins de diagnostic, mais
|
||||
@@ -396,6 +428,9 @@ QLIK_DIM_CODE_ARTICLE_ID=fcd239e5-288b-4830-a047-0e3d7665d971
|
||||
QLIK_MEAS_CA_ID=43a76088-86fa-402e-a80e-0efd7701b3e1
|
||||
QLIK_MEAS_QTE_ID=7b40caf1-be4b-4811-8d45-50acde33e715
|
||||
QLIK_MEAS_NBMAG_ID=8b63fae5-db2f-4e4c-8618-f3e9d60b6b3b
|
||||
# Sélection par fournisseur (facultatif — auto-détection sinon) :
|
||||
QLIK_FIELD_CODE_FOURNISSEUR= # champ Qlik portant le code fournisseur FF
|
||||
QLIK_SUPPLIER_MIN_COVERAGE=0.99 # couverture minimale exigée pour basculer
|
||||
```
|
||||
|
||||
## RESTE À FAIRE
|
||||
|
||||
Reference in new issue
Block a user