Synchro Qlik : message d'échec visible et journal des extractions de nuit

La page Synchronisation n'affichait qu'un badge « Échec » alors que l'erreur
est enregistrée par fournisseur : elle apparaît désormais dans la colonne
Remarque. Sur la Grille, l'erreur du bouton réseau reste affichée jusqu'à la
tentative suivante (elle s'effaçait après 4 s et était masquée hors très
grands écrans). L'extraction Qlik de nuit ouvre un journal téléchargeable
dans Paramètres, comme la synchro manuelle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NjmvaJ5VTadoufBQ8a57no
This commit is contained in:
Claude committed 2026-10-14 13:51:35 +00:00
1 parent a80a6e724c
commit c98c71dc92
4 files changed
+38 -11

No files matched your search

+9
View File
@@ -260,6 +260,10 @@ async fn traiter_qlik(code: &str, nom: &Option<String>) {
e.fournisseur_courant = Some(libelle(code, nom));
e.etape = Some("qlik");
}
// Journal téléchargeable depuis Paramètres, comme la synchro manuelle : la
// sortie du conteneur ne garde pas les milliers de lignes d'une extraction.
let journal = format!("sync-nuit_qlik_{}_{}", code, Local::now().format("%Y%m%d-%H%M%S"));
crate::logcapture::start_capture(&journal, Some(&format!("synchro de nuit Qlik fournisseur={}", libelle(code, nom))));
let res: anyhow::Result<Option<usize>> = async {
let articles = crate::ff::pg::pg_get_articles_by_fournisseur(code).await?;
let mut vus = HashSet::new();
@@ -276,6 +280,11 @@ async fn traiter_qlik(code: &str, nom: &Option<String>) {
Ok(Some(n))
}
.await;
let pied = match &res {
Ok(_) => "statut final=success".to_string(),
Err(e) => format!("statut final=error — {e:#}"),
};
crate::logcapture::stop_capture(&journal, Some(&pied));
let ms = t0.elapsed().as_millis() as i32;
let Ok(pool) = crate::db::pool() else { return };
match res {