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

@@ -50,9 +50,11 @@ interface FournisseurRow {
dernierSqlStatut: string | null;
dernierSqlLignes: number | null;
dernierSqlMs: number | null;
dernierSqlErreur: string | null;
dernierQlikAt: string | null;
dernierQlikStatut: string | null;
dernierQlikCodes: number | null;
dernierQlikErreur: string | null;
}
interface Resume {
@@ -357,9 +359,23 @@ export function SynchronisationClient() {
{
id: "remarque",
header: "Remarque",
cell: (r) => (r.desactiveMotif
? <span className="text-[13px] text-[var(--text-secondary)]">{r.desactiveMotif}</span>
: null),
// Le badge « Échec » seul ne dit pas quoi corriger : on affiche le
// message enregistré par la dernière tentative.
cell: (r) => {
const erreurs = [
r.dernierSqlStatut === "echec" && r.dernierSqlErreur ? `${VENTES} : ${r.dernierSqlErreur}` : null,
r.dernierQlikStatut === "echec" && r.dernierQlikErreur ? `${RESEAU} : ${r.dernierQlikErreur}` : null,
].filter((e): e is string => e !== null);
if (!r.desactiveMotif && erreurs.length === 0) return null;
return (
<div className="max-w-[480px] space-y-1 text-[13px]">
{r.desactiveMotif && <div className="text-[var(--text-secondary)]">{r.desactiveMotif}</div>}
{erreurs.map((e) => (
<div key={e} className="break-words text-[var(--accent-error)]">{e}</div>
))}
</div>
);
},
},
];