Aller au contenu principal

Tableau de bord IT

Le tableau de bord IT est la vue de NomaUBL destinée à l'équipe informatique. Il se lit de haut en bas comme une liste de contrôle : tout fonctionne ? (un bandeau de santé), qu'y a-t-il à faire ? (quatre cartes d'action avec leur traitement en masse), comment se sont passés les traitements des 14 derniers jours ?, qu'est-ce qui s'exécute en ce moment ?, et les erreurs récentes. Les cartes techniques détaillées — système, fichiers, JVM, contrôle de configuration, tables de la base — sont repliées en bas de page et s'ouvrent depuis le bandeau de santé. Il complète le tableau de bord Exploitation, qui suit les factures plutôt que le serveur.

La page fonctionne quel que soit le système source — JD Edwards, SAP, NetSuite ou ERP personnalisé. Les cartes lisent les métriques de l'hôte et le journal de traitement de NomaUBL.


Accès à la page​

  • Menu → Navigation → Tableau de bord IT, après Exploitation.

Vue d'ensemble​

Tableau de bord IT↻ ActualiserTOUT FONCTIONNE ?Application2026.10.25.1démarrée depuis 3 jBase de données4 msDisque38 % libreMémoire41 %heapPlanificateurEn marcheprochaine 14:05Configuration1 problèmeÀ FAIREÉchec d'envoi (9904)Erreurs de remise à la PA3En attente de revueRetenues avant envoi (indicateur W)6À retraiterNon transmises2À retraiter en totalitéÉchec de validation1TRAITEMENTS · 14 DERNIERS JOURSVolumeErreursRelancesDurée par documentDocuments traités par jourTraitésEn erreur techniqueEN CE MOMENTTraitements en coursÉvénements en directPlanificateurSessions activesErreurs récentes▸ Détails techniques — système, fichiers, JVM, contrôle de configuration, tables de la base, liensBandeau de santéune tuile ouvre son détailÀ fairequatre files pour l'ITOnglets sur 14 joursun jour ouvre ses facturesErreurs récentesfin du journal en directTuile Planificateurfait défiler jusqu'à sa carteChaque carteouvre les factures, actionsEn ce momenttraitements, événements, sessionsDétails techniquesrepliés par défaut

Un bouton Actualiser dans l'en-tête de la page recharge toutes les cartes.


Bandeau de santé​

Le bandeau Tout fonctionne ? présente six tuiles, chacune avec une pastille verte, orange ou rouge. Un clic sur une tuile fait défiler la page jusqu'à son détail et, sauf pour Planificateur, ouvre les détails techniques repliés :

TuileAfficheOuvre
ApplicationLa version et démarrée depuis ….Système
Base de donnéesLe ping en ms, ou Injoignable.Système
Disque… % libre sur le disque le plus rempli.Système de fichiers
MémoireL'occupation du heap en %.JVM · threads et GC
PlanificateurEn marche, … en pause ou … tâche(s) en échec, et la prochaine exécution.La carte Planificateur d'En ce moment
ConfigurationAucun problème ou … problème(s).Contrôle de la configuration

À faire​

Quatre cartes comptent les factures qui attendent une action de l'informatique, chacune avec un bouton qui les traite toutes d'un coup dans la fenêtre de progression partagée. La relance manuelle en un clic d'Échec d'envoi et le balayage nocturne planifié de la page Auto-Retry utilisent le même chemin de renvoi.

Échec d'envoi (9904)​

Une seule carte en grand chiffre qui indique combien de factures sont actuellement en Échec d'envoi (statut 9904). Quand le compteur n'est pas à zéro, un bouton Tout renvoyer (N) sous le chiffre rejoue chaque facture concernée vers la Plateforme Agréée. Le clic ouvre la fenêtre de progression partagée — compteurs en direct, bouton Annuler et bouton Continuer en arrière-plan qui masque la fenêtre pendant que le traitement se poursuit côté serveur. Le renvoi est limité à 100 ms par appel pour que la PA reste dans son enveloppe de débit.

ÉlémentComportement
CompteurTotal en direct — rafraîchi par le bouton Actualiser de la page et à chaque montage du tableau de bord. Affiché en rouge quand il n'est pas à zéro.
Bouton Tout renvoyer (N)Désactivé quand le compteur est à zéro. Un clic rejoue chaque facture au statut 9904 ; la fenêtre de progression s'ouvre.
Fenêtre de progressionCompteurs en direct (traitées / réussies / échecs), bouton Annuler et bouton Continuer en arrière-plan — même composant que pour chaque traitement long de la plateforme.
Limitation de débit100 ms entre deux appels — fixé dans le code, non paramétrable ici par l'opérateur. La planification Reprise auto propose sa propre limite pour l'équivalent planifié.

Le bouton manuel sert à un renvoi ponctuel en pleine journée (une coupure PA passagère qui s'est résolue, un petit lot à relancer tout de suite). Pour des relances de nuit sans supervision, planifier une ligne sur la page Reprise auto — même chemin de code, sans intervention d'un opérateur.

En attente de revue​

Une carte en grand chiffre qui compte les factures retenues avant envoi — celles dont le type de document porte le drapeau d'envoi W (En attente) sur la page Types de document. Ces factures ont été générées et validées, mais volontairement pas transmises, pour qu'un utilisateur puisse les vérifier au préalable. Quand le compteur n'est pas à zéro, un bouton Tout envoyer (N) libère chaque facture retenue vers la Plateforme Agréée en une seule action, via la même fenêtre de progression que Échec d'envoi. Elle reprend le principe de la carte Échec d'envoi — même grand chiffre, même action groupée en un clic — mais pour la file de revue plutôt que la file d'échecs.

À retraiter​

Une carte en grand chiffre qui compte les factures concernées par le retraitement — celles que la plateforme a déposées sans les transmettre (statut 200, motif NON_TRANSMISE), sur un modèle où Allow reprocess est activé. Quand le compteur n'est pas à zéro, un bouton Tout retraiter (N) réimprime chaque facture concernée à partir de sa source archivée — PDF / XML lisible et fichier UBL régénérés, sans modification en base ni nouvelle validation — via la même fenêtre de progression. Le retraitement conserve le statut de chaque facture, inscrit une entrée Retraitement dans l'historique et ne renvoie jamais rien à la plateforme — voir Documents → Allow reprocess pour le réglage par modèle et Factures pour la même action sur des lignes sélectionnées.

À retraiter en totalité​

Le pendant de la carte précédente pour les factures en échec de validation (9905) sur un modèle où Allow full reprocess est activé. Une fois les données corrigées dans le système source, un bouton Tout retraiter (N) retraite chaque facture en totalité depuis sa source archivée : l'enrichissement est interrogé de nouveau, l'UBL régénéré, validé et envoyé à la PA selon les réglages du modèle et du type de document. L'historique des statuts est conservé et un marqueur de retraitement ouvre un nouveau cycle — les statuts qui suivent sont donc enregistrés comme nouveaux.

Les deux cartes lancent un lot unique par modèle, en arrière-plan avec son journal en direct : les sources sont déposées dans un dossier de travail, le réglage Max threads des réglages globaux limite le parallélisme, et une facture n'est jamais traitée deux fois.


Traitements · 14 derniers jours​

Une carte à quatre onglets : Volume, Erreurs, Relances, Durée par document.

Volume​

Documents traités par jour sur les 14 derniers jours, en barres empilées : Traités et En erreur technique ; le sous-titre donne les totaux et leur heure de chargement. Cette carte est conservée sur le serveur, pour tous les utilisateurs, pendant le délai du cache des tableaux de bord ; Actualiser la relit. Un clic sur une barre ouvre E-Invoicing sur ce jour, en date d'archivage — un chemin rapide entre « la colonne du jour est basse » et « montrer ce qui a été traité ».

Erreurs​

La carte Taux d'erreur · 14 j : une sparkline sur 14 jours des événements d'erreur enregistrés dans F564237 (niveau ERROR ou FATAL). Le survol d'un point révèle la date et le compte ; le sous-titre indique la moyenne quotidienne et le total cumulé du jour.

Relances​

La carte Taux de reprise · 14 j : un seul grand chiffre, ratio des runs ayant abouti après une ou plusieurs relances sur le total des runs des 14 derniers jours. Le sous-titre donne les valeurs absolues et la variation par rapport à la fenêtre précédente de 14 jours (vert quand le taux baisse, orange quand il monte).

Durée par document​

La carte Durée de traitement par modèle · 14 j : temps moyen de traitement de bout en bout par modèle, en secondes, sur les 14 derniers jours. La carte charge les événements START / END de F564237 à plat et les apparie côté Java sur (FEWDS1|FEUPMJ) — la précédente version utilisait une auto-jointure SQL avec un FETMPL ambigu et une arithmétique e.FEUPMT - s.FEUPMT incorrecte ; ce point est corrigé.

Décomposition par étape quand debugProfile est actif​

Quand le switch debugProfile sur le modèle global est à Y, chaque exécution écrit une ligne par étape du pipeline dans F564237 — analyse d'en-tête, analyse des lignes, validation, émission UBL, envoi PA. La carte Temps de traitement par modèle les fait remonter sous forme de décomposition empilée sous les totaux par modèle — une étape lente se repère d'un coup d'œil sans plonger dans le journal d'exécution.

Le flux Traitements en cours en dessous balise aussi les lignes avec le nom de l'étape, ce qui permet de trier un lot lent en direct. Laisser debugProfile à N en production ; passer à Y le temps d'un lot pour analyser un pipeline lent — les lignes additionnelles gonflent vite F564237 sous charge.


En ce moment​

Ce qui s'exécute sur le serveur à cet instant : les traitements en cours, les événements de traitement en direct, le planificateur et les sessions actives.

Traitements en cours​

La liste des JVM de traitement actives sur la machine, relevée toutes les 5 s : celles lancées par ce serveur, avec la dernière ligne affichée par chacune, et les JVM détachées laissées par une instance précédente, un cron ou un lancement manuel (sortie non capturée). Chaque ligne indique le mode (-process, -watch-folders, -import), les arguments, la durée écoulée et un bouton Arrêter, qui termine cette JVM et ses propres sous-processus uniquement — les factures en cours restent dans leur état et les fichiers d'entrée sont conservés. L'arrêt demande le droit integration-run. Rien n'est arrêté au redémarrage du serveur : un lot peut donc se poursuivre pendant une mise à jour.

Événements de traitement en direct​

Flux en direct des tâches qui démarrent et se terminent — la plupart sont lancées par le planificateur en arrière-plan. Le widget interroge F564237 toutes les 5 secondes avec un curseur incrémental since= ; chaque ligne porte un badge de méthode coloré :

BadgeSignification
START (vert)Une tâche vient de démarrer — fetch-all, retrieve-statuses, un traitement entrant, etc.
END (bleu)Le END correspondant à un START précédent, avec la durée écoulée quand elle est disponible.
ERROR (rouge)Une erreur émise pendant la tâche — les mots-clés ERROR, FATAL, FAILED reclassent toute ligne en rouge, même quand sa méthode était START ou END.
INFO (atténué)Toute autre ligne écrite par le journal d'exécution pendant la tâche.

Chaque ligne affiche le badge, le modèle + le mode + le fichier source quand ils sont présents, le message et l'horodatage. Une pastille verte pulsante apparaît à côté du titre quand un événement a été observé dans les 30 dernières secondes (un traitement est en cours) ; elle bascule en gris quand le flux est inactif depuis plus longtemps.

Le flux est dédupliqué sur FEUKID — la même ligne ne peut donc pas apparaître deux fois entre deux sondages, même en cas de décalage d'horloge. Un bouton Pause / Reprendre à droite du titre fige le sondage : utile pour lire une ligne longue sans la voir défiler.

La liste défilante est plafonnée aux 100 derniers événements ; les lignes plus anciennes sortent par le bas à mesure que de nouvelles arrivent. Pour une analyse approfondie, utiliser la page Journal des traitements, qui conserve l'historique complet avec les vues groupées par tâche.

Planificateur​

Liste toutes les tâches actives du planificateur :

  • Jobs intégrés — retrieve-statuses, notif-purge, clean-archive, etc. — pilotés par les intervalles de polling de BackgroundScheduler.
  • fetch-all par modèle — une ligne par modèle avec une tâche d'extraction / synchronisation programmée.
  • Passages Reprise auto par ligne — une ligne par entrée enregistrée sur la page Reprise auto, avec l'heure planifiée et la liste des statuts ciblés en guise de cadence.
  • Contrôles quotidiens du cycle de vie — une ligne par entrée planifiée sur la page Contrôles du cycle de vie, à côté des synthèses et des reprises auto, avec son heure et sa dernière exécution.

Chaque ligne affiche le nom de la tâche, sa fréquence et une pastille d'état (vert actif, bleu prévu sous peu, orange en pause). Le sous-titre indique le nombre de tâches actives ; le bouton Ouvrir les tâches planifiées ouvre les Tâches planifiées, où chaque tâche se lance, se suspend et se modifie.

Les tâches interrogation d'import PA et récupération des statuts PA portent un bouton pause / reprise — effectif au tick suivant et volontairement transitoire (un redémarrage du serveur relance toujours, une pause ne peut donc pas être oubliée). La fenêtre calme quotidienne (fetchQuietFrom / fetchQuietTo) s'affiche aussi ici, en surbrillance quand elle est active — pendant celle-ci, les deux interrogations sautent automatiquement leurs exécutions.

Sessions / Clients actifs · 15 min​

Deux modes :

  • Auth activée — titre Sessions actives. Liste chaque session présente dans F564252 dont le SSETDTIM est dans la dernière heure.
  • Auth désactivée — titre Clients actifs · 15 min. Liste chaque IP touchée par WebServer.handle() dans les 15 dernières minutes, source : ActivityTracker en mémoire (aucune ligne F564252 n'existe quand l'auth est coupée).

Dans les deux cas, chaque ligne affiche IP / utilisateur, l'horodatage du dernier accès et le compteur de hits.


Erreurs récentes​

La carte Erreurs récentes liste les 8 derniers événements de F564237 filtrés sur level IN ('ERROR', 'FATAL'). Chaque ligne affiche le badge de niveau, le code de cycle de vie et le triplet, le message et un horodatage relatif (il y a 2 min, il y a 1 h). Une ligne liée à une facture ouvre la vue Erreurs d'intégration du Diagnostic, restreinte à cette facture ; une ligne de traitement ouvre la vue Journal des traitements. Ouvrir les erreurs d'intégration → ouvre la vue sans filtre.


Détails techniques​

Une section repliée — système, fichiers, JVM, contrôle de configuration, tables de la base, liens — qui s'ouvre d'elle-même quand on clique sur une tuile du bandeau de santé.

Système​

Métriques JVM, base et hôte. Les valeurs les plus surveillées sont colorées :

MétriqueSourceRègles de teinte
JavaRuntime.version()neutre.
HeapMemoryMXBean.getHeapMemoryUsage()vert < 60 %, orange < 85 %, rouge ≥ 85 %.
UptimeRuntimeMXBean.getUptime()neutre, formaté en Xj Yh / Xh Ym.
Cœurs CPURuntime.availableProcessors()neutre.
Basedialect.ping()vert < 100 ms, orange < 500 ms, rouge au-delà ou en cas d'erreur.
Schémaconfiguration db-nomaublneutre.
OSos.name + os.archneutre.
Mode PAindicateur paUseMockvert sur Live, orange sur Mock.

Le sous-titre de la carte affiche, à droite, la version du build et la date du build issues de nomaubl-version.properties.

Liens rapides​

Liste statique de raccourcis — les pages les plus utilisées par l'opérateur IT, ouvertes directement : Journal des traitements et Erreurs d'intégration (deux vues du Diagnostic), Notifications, Traiter Document, Versions fichiers et Paramètres.

Système de fichiers​

Pour chaque chemin configuré (appHome, processHome, dirInput, singleOutput, burstOutput, dirArchive, dirError) :

  • Espace libre / total sur le volume sous-jacent.
  • Nombre de fichiers d'un parcours récursif du chemin, plafonné à 5000 fichiers pour rester rapide.

Les valeurs de chemin contenant des jokers d'exécution (%TEMPLATE%, %FILE_NAME%) sont tronquées au premier joker rencontré ; le rapport porte alors sur le répertoire le plus profond existant par sa forme au-dessus. dirOutput est exclu : il est toujours couvert par processHome.

JVM · threads et GC​

Carte complémentaire de Système pour un diagnostic JVM plus poussé :

  • Threads — nombre courant + pic.
  • Threads démon — démons en cours.
  • GC — nom du collecteur + temps total passé en GC.
  • Classes chargées — compteur du class-loader, utile pour repérer une fuite metaspace.

Contrôle de la configuration​

Valide la configuration orientée connecteur utilisée aujourd'hui par l'application. Les anomalies sont listées par zone avec une sévérité (rouge erreur, orange avertissement, bleu information). La vérification couvre :

ZoneValide
Connecteur PAbaseUrl ; authType ; identifiants selon le type d'auth — OAUTH2 (clientId/secret/endpoint token), BASIC (utilisateur/mot de passe), BEARER (token) ; présence d'un endpoint nommé import (avertissement si import-status manque).
e-DirectorybaseUrl et endpoint directory-check quand checkDirectory=Y.
e-ReportingissuerSiren, frequency, flux quand sendToPA=Y.
StatutsChaque code de statut PA reçu mais absent du catalogue des statuts : l'avertissement donne le nombre d'événements ignorés depuis le démarrage du serveur et une facture en exemple. Ajouter le code au catalogue pour enregistrer ces événements.

Les ressources de validation (XSD / Schematron) sont embarquées dans le JAR.

Une vérification propre s'affiche en ✔ 0 anomalie en vert ; sinon la carte liste les anomalies par ordre de sévérité.

Tables de la base​

Nombre de lignes par table NomaUBL — factures (F564231), cycle de vie (F564235), validation (F564236), journal d'exécution (F564237), notifications (F564253), e-Reporting (F564260–F564262), auth (F564250–F564252, F564254). Utile pour repérer une croissance inattendue (par exemple une table de notifications qui devrait avoir quelques centaines de lignes mais en a des millions).


Fenêtre de progression partagée​

Chaque traitement long de la plateforme — Tout renvoyer depuis cette page, le passage Reprise auto, l'export Vue détaillée sur Erreurs d'intégration, les futurs ré-imports en masse — ouvre la même fenêtre modale. Un seul composant, un seul jeu d'habitudes.

La fenêtre reste ouverte par défaut tant que le traitement tourne ; la fermer est une action volontaire.

ÉlémentRôle
Barre de progressionCompteur visuel traitées-sur-total. Mise à jour environ toutes les 250 ms à mesure que le serveur pousse des incréments.
Compteurs en directTrois nombres : Traitées (total touché jusqu'ici), Réussies, Échecs. Chaque compteur est cliquable quand il n'est pas à zéro et ouvre un petit panneau avec les triplets de factures concernés — un échec sur la facture 12345 / RI / 00070 se trouve donc à un clic de son entrée de journal.
AnnulerArrête proprement le traitement entre deux factures. Les factures déjà traitées conservent leur nouvel état ; les autres ne sont pas touchées. Le bouton est remplacé par Annulé (grisé) quand le signal est pris en compte.
Continuer en arrière-planMasque la fenêtre sans arrêter le traitement. Le travail se poursuit côté serveur ; une petite bannière persistante en haut de la page affiche le compteur et un lien Voir la progression. Cliquer sur le lien rouvre la fenêtre à tout moment.
TerminéRemplace Annuler / Continuer en arrière-plan à la fin du traitement. Une ligne de résumé affiche total / réussies / échecs et la durée écoulée.

Plusieurs traitements peuvent coexister — chacun obtient sa bannière une fois envoyé en arrière-plan. Fermer l'onglet du navigateur n'annule pas le travail ; l'exécution côté serveur continue. Rouvrir la page fait réapparaître la bannière jusqu'à la fin du traitement.​

Rafraîchissement des widgets​

Le bouton Actualiser (ou l'ouverture de la page) appelle quatre endpoints en parallèle :

EndpointAlimente
GET /api/systemSystème, JVM · threads et GC, Système de fichiers
GET /api/dashboard/techVolume, Erreurs, Relances, Durée par document, Sessions actives, Tables de la base, Erreurs récentes
GET /api/dashboard/log-tailTraitements en cours · direct (incrémental, sondage 5 s avec since=)
GET /api/dashboard/config-checkContrôle de la configuration

La carte Planificateur lit GET /api/scheduler/status. Chaque appel échoue indépendamment — une base mal configurée renvoie Non configurée sur la carte de données sans casser la carte Système ou le journal en direct.


Conseils & bonnes pratiques​

  • Surveiller Heap, ping base et espace disque. Trois signaux d'alerte précoce — la dérive du heap avant un OOM, la latence base avant un blocage, le volume archive avant la saturation disque.
  • Le flux Traitements en cours vaut mieux que tail -f. Il montre les tâches du planificateur qui démarrent et se terminent en direct, les erreurs ressortent en rouge, et le flux résiste à une déconnexion SSH. À garder ouvert pendant une mise en production ou un import en lot — la plupart des régressions y apparaissent en quelques secondes, et la pastille verte pulsante indique si une exécution est réellement en cours.
  • La vérification de configuration doit toujours être verte. Un nombre d'anomalies non nul après un déploiement est le chemin le plus rapide vers « qu'est-ce qui a changé ? ». À lancer sur chaque environnement après chaque édition de configuration.
  • Erreurs récentes plutôt que Tables de la base. En triage d'incident, le flux des erreurs récentes est plus dense au pixel ; la carte des tables sert au suivi de tendance sur plusieurs jours.
  • Une liste Clients actifs vide ne signifie pas que personne n'utilise l'application. Avec l'auth activée, les sessions de plus d'une heure tombent de la liste — la base les conserve dans le cycle de vie. La carte montre qui est là maintenant, pas qui était là ce matin.
  • Les pics de durée par document vont avec les creux de volume. Quand une grande barre de l'onglet Volume est suivie d'un modèle lent le lendemain, la file remonte — l'équipe IT peut anticiper en ajustant la cadence du planificateur.