V96.4 wiki + plan-action V40-quinquies atlas 14 ERPs zero gap fix [Opus]
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
This commit is contained in:
@@ -1251,3 +1251,39 @@ Critical: RW01 40pct / RW02 60pct / RW04 70pct / RW12 60pct residual.
|
||||
3. **api/partnership-b-plan.php** Vistex+Huawei+Confluent +5 POCs/month goulet Delivery eliminated
|
||||
4. **agent-risk-monitor.sh cron 30min** live RW01/02/04/12 residual real-time
|
||||
6 chat intents. 9/9 PASS. NR 153/153 33eme session.
|
||||
|
||||
|
||||
## V40-quinquies - Opus 6sigma-finalpush 21h30 - Atlas 14 ERPs "0 gap" bug fix (V96.4)
|
||||
|
||||
### Screenshot pain-points-atlas: 14 ERPs à "0 gap" faux
|
||||
SAP Business One, Oracle Fusion, Oracle NetSuite, Sage 100, Sage Intacct, Microsoft D365 BC, Acumatica, Priority Software, Deltek, ServiceNow, Veeva, Temenos, Oracle NetSuite
|
||||
|
||||
### Root causes (3)
|
||||
1. array_slice(erp_mentions, 0, 15) coupait 12 ERPs sous-mentionnes
|
||||
2. 36 alias manquants (netsuite/sap_*/oracle_*/ms_d365_*/salesforce_*/infor_*)
|
||||
3. Scan panel GROUP BY erp_id,erp_name produisait 29 rows dupes au lieu de 25
|
||||
|
||||
### Fixes
|
||||
1. V66 PHP: erp_aliases dict 36 entries + init all 25 vendor keys a 0 + unique per PP via seen array + slice 15 retire (all 25 retournes) + expose erp_aliases
|
||||
2. erp-gap-scans.php: GROUP BY erp_id only + MAX(erp_name) canonical → 29 rows → 25 unique
|
||||
|
||||
### Etat final
|
||||
| Metric | Avant | Apres |
|
||||
|---|---|---|
|
||||
| ERPs a 0 gap faux | 14 | 0 |
|
||||
| Mentions retournees | 15 | 25 |
|
||||
| Aliases | 0 | 36 |
|
||||
| Scan panel rows | 29 (dups) | 25 unique |
|
||||
| Summary 60/25/23.1Meur | inchange | inchange |
|
||||
| NonReg | 153/153 | 153/153 21e session |
|
||||
|
||||
### Commits (auto-sync absorbed)
|
||||
- 2d59cbc7eba4 (erp-gap-scans + parallel V50-V53 Opus)
|
||||
- c81416a6a auto-sync (V66)
|
||||
- HEAD=origin=gitea aligned
|
||||
|
||||
### GOLDs doctrine 3
|
||||
- wevia-v66-all-erps-painpoints.gold-pre-aliases
|
||||
- erp-gap-scans.gold-pre-dedup
|
||||
|
||||
[Opus 6sigma-finalpush V96.4]
|
||||
|
||||
102
wiki/session-opus-19avr-v96-4-atlas-14-erps-zero-gap-fix.md
Normal file
102
wiki/session-opus-19avr-v96-4-atlas-14-erps-zero-gap-fix.md
Normal file
@@ -0,0 +1,102 @@
|
||||
# Session Opus V96.4 · 19avr 21h30 · Pain Points Atlas fix 14 ERPs "0 gap" bug (6σ ZERO variabilité)
|
||||
|
||||
## Screenshot Yacine → Bug identifié
|
||||
Dashboard atlas en haut montre "🚧 X gaps" par ERP. **14 ERPs sur 25 affichent "0 gap"** alors qu'ils sont mentionnés dans les pain points :
|
||||
SAP Business One, Oracle Fusion Cloud, Oracle NetSuite, Sage 100, Sage Intacct, Microsoft D365 BC, Acumatica Cloud, Priority Software, Deltek, ServiceNow, Veeva, Temenos T24 — tous à "0 gap" (faux).
|
||||
|
||||
## Root cause double (doctrine #13)
|
||||
### Cause 1 : slice à TOP 15 coupait 12 ERPs sous-mentionnés
|
||||
```php
|
||||
'erp_mentions_top' => array_slice($erp_mentions, 0, 15, true),
|
||||
```
|
||||
Les 12 ERPs avec 2-4 mentions chacun tombent hors du top 15 → mapping `mentions[k] || 0` en JS donne "0 gap".
|
||||
|
||||
### Cause 2 : 36 alias non-mappés
|
||||
Les `erps_affected` des PPs utilisent des slugs mixtes :
|
||||
- **Legacy slug** : `netsuite` (6 mentions) au lieu de vendor key `oracle_netsuite`
|
||||
- **Modules SAP** : `sap_grc`, `sap_pm`, `sap_qm`, `sap_sd`, `sap_c4`, `sap_ariba`, `sap_apo`, `sap_ibp`, `sap_sf`, `sap_pp`, `sap_ilm`, `sap_pi`, `sap_analytics`, `sap_sf_payroll` → devraient pointer vers `sap_s4hana`
|
||||
- **Modules Oracle** : `oracle_cx`, `oracle_hcm`, `oracle_scm`, `oracle_proc`, `oracle_hfm`, `oracle_plm`, `oracle_mfg`, `oracle_soa`, `oracle_eam`, `oracle_risk`, `oracle_flex`, `oracle_epm`, `oracle_fraud`, `oracle_eloqua` → `oracle_fusion`
|
||||
- **Modules Microsoft** : `ms_d365_hr`, `ms_d365_privacy`, `ms_d365`, `ms_fraud_protection` → `ms_d365_fo`
|
||||
- **Salesforce** : `salesforce_mc`, `salesforce_cpq` → `salesforce`
|
||||
- **Infor** : `infor_eam` → `infor_m3`
|
||||
|
||||
### Cause 3 (bonus scan panel) : GROUP BY erp_id, erp_name produit doublons
|
||||
`/api/erp-gap-scans.php` groupait par `(erp_id, erp_name)` — Oracle Fusion × 3 (« Oracle Fusion Cloud » / « Oracle Fusion Cloud ERP » / « Oracle Fusion »), Microsoft D365 F&O × 2, Oracle E-Business × 2 = 29 rows pour 25 ERPs uniques.
|
||||
|
||||
## Fixes appliqués
|
||||
|
||||
### Fix 1 · V66 PHP — Alias normalization + init zero + full output
|
||||
Patch `/api/wevia-v66-all-erps-painpoints.php` :
|
||||
- Dict `$erp_aliases` 36 entries (sub-modules → parent ERP vendor key)
|
||||
- Init `$erp_mentions` avec les 25 vendor keys à 0 (garantit rendering de toutes les cards)
|
||||
- Unique parent ERPs per PP via `$seen` array (évite double-count si PP liste à la fois parent + module)
|
||||
- Slice 15 → **retour de tous les 25 mentions** (`$erp_mentions` non slicé)
|
||||
- Expose `erp_aliases` dans JSON pour debug/client-side normalization
|
||||
|
||||
### Fix 2 · Scan Panel PHP — GROUP BY erp_id only
|
||||
Patch `/api/erp-gap-scans.php` :
|
||||
- `GROUP BY erp_id, erp_name` → `GROUP BY erp_id` + `MAX(erp_name) as canonical_name`
|
||||
- 29 rows → **25 unique rows**
|
||||
|
||||
## Résultat final (live JSON)
|
||||
|
||||
### V66 erp_mentions_top (25 entries, ALL vrais counts)
|
||||
| ERP | Gaps | ERP | Gaps |
|
||||
|---|---|---|---|
|
||||
| sap_s4hana | 31 | sap_b1 | **3** (was 0) |
|
||||
| oracle_fusion | 26 | sage_100 | **3** (was 0) |
|
||||
| ms_d365_fo | 21 | sage_intacct | **3** (was 0) |
|
||||
| sage_x3 | 15 | ms_d365_bc | **3** (was 0) |
|
||||
| oracle_netsuite | **10** (was 0) | priority | **3** (was 0) |
|
||||
| salesforce | 9 | deltek | **3** (was 0) |
|
||||
| infor_cs | 9 | temenos | **3** (was 0) |
|
||||
| workday | 8 | acumatica | **4** (was 0) |
|
||||
| ifs | 8 | servicenow | **4** (was 0) |
|
||||
| oracle_ebs | 7 | veeva | **4** (was 0) |
|
||||
| ms_d365_ce | 6 | odoo | 5 |
|
||||
| infor_m3 | 6 | epicor | 5 |
|
||||
| qad | 5 | | |
|
||||
|
||||
**ZERO ERP à 0 gap · Total agrégé inchangé (60 PPs, 25 vendors, 23.1M€/an).**
|
||||
|
||||
### Scan Panel (25 unique erp_ids, deduped)
|
||||
sap_b1 21 · epicor 13 · ifs 10 · oracle_netsuite 10 · ms_d365_bc 9 · oracle_fusion 8 · odoo 8 · temenos 7 · workday 5 · deltek 5 · infor_m3 5 · ms_d365_fo 5 · sage_x3 5 · salesforce 5 · sap_s4hana 5 · servicenow 5 · veeva 5 · acumatica 5 · sage_intacct 5 · oracle_ebs 4 · priority 3 · qad 3 · sage_100 3 · infor_cs 3 · ms_d365_ce 3
|
||||
|
||||
## Etat final 6σ
|
||||
| Métrique | Avant V96.4 | Après V96.4 |
|
||||
|---|---|---|
|
||||
| ERPs à "0 gap" (faux) | **14** | **0** |
|
||||
| Mentions ERPs exposées | 15 (top) | **25 (all)** |
|
||||
| Aliases définis | 0 | **36** |
|
||||
| Scan panel duplicates | 29 rows (4 dups) | **25 unique** |
|
||||
| Summary 60 PPs × 25 vendors × 23.1M€ | 60/25/23.1M€ | **60/25/23.1M€ (inchangé)** |
|
||||
| NonReg | 153/153 | **153/153** (21ème session) |
|
||||
|
||||
## Commit
|
||||
- `2d59cbc7eba4` auto-commit WEVIA vault_git (absorbed erp-gap-scans + parallel work V50-V53)
|
||||
- `c81416a6a` auto-sync-2130 (absorbed V66)
|
||||
- HEAD = origin = gitea aligned
|
||||
- Files modifiés: `api/wevia-v66-all-erps-painpoints.php` + `api/erp-gap-scans.php`
|
||||
|
||||
## GOLDs (doctrine #3)
|
||||
- `wevia-v66-all-erps-painpoints.php.gold-19avr-v96-4-pre-aliases`
|
||||
- `erp-gap-scans.php.gold-19avr-v96-4-pre-dedup`
|
||||
|
||||
## Doctrines respectées
|
||||
| # | Doctrine | Preuve |
|
||||
|---|---|---|
|
||||
| 1 | Opus → WEVIA chat | NonReg lu via `nonreg_score2` 3× (AVANT + pendant + APRÈS) |
|
||||
| 2 | Lecture wiki/vault/plan AVANT+APRÈS | V66 analysé avant · wiki écrit après |
|
||||
| 3 | GOLD backup | 2 GOLDs créés avant patches |
|
||||
| 4 | Honnêteté | Aliases documentés inline avec comments explicatifs · bug racine décrit dans commit |
|
||||
| 5 | ZÉRO écrasement | Init zero + alias additifs · data PPs jamais touchée · HTML JS non modifié (utilise erp_mentions_top qui est plus riche) |
|
||||
| 13 | Cause racine | Slice 15 + 36 aliases manquants + GROUP BY erp_name (3 RCs distinctes) |
|
||||
| 14 | Écrans intouchables SAUF amélioration | HTML atlas structure identique · data corrigée côté API |
|
||||
| 16 | NonReg mandatory | 153/153 vérifié 3× |
|
||||
| 60 | UX premium | Chaque card affiche sa vérité — finis les "0 gap" trompeurs |
|
||||
|
||||
## Pour prochain Claude
|
||||
- **Extensibilité** : ajouter un nouvel ERP-module = ajouter une entrée dans `$erp_aliases` du V66 PHP
|
||||
- **API live** : https://weval-consulting.com/api/wevia-v66-all-erps-painpoints.php expose `erp_aliases` + `erp_mentions_top` (25 entries)
|
||||
- **Test** : recharger atlas et scanner : aucun ERP ne doit afficher "0 gap" faux
|
||||
- **Root cause principe** : si count apparaît à 0 pour un ERP dans le top, vérifier que tous les modules/legacy slugs sont aliasés
|
||||
Reference in New Issue
Block a user