Journal de traitement
L'écran Processing Log est la consultation de la table de journal d'exécution de NomaUBL (F564237). Chaque traitement qui passe par la plateforme — transformation XML, génération UBL, validation, extraction BIP, téléchargement FTP — émet un flux d'événements : un START, des étapes intermédiaires (transformation, conversion, rendu…), puis un END portant le résultat final (SUCCESSFUL ou un message d'erreur fatale).
La page expose ce flux en deux vues complémentaires — une vue groupée qui apparie chaque START avec son END correspondant, donc chaque job apparaît sur une seule ligne avec son statut et sa durée, et une vue à plat qui liste chaque événement individuel pour une analyse forensique. La page fonctionne quel que soit le système source — JD Edwards, SAP, NetSuite ou un ERP personnalisé.
Provenance des événements
Tous les chemins de traitement NomaUBL écrivent leur trace dans F564237 à travers le même journaliseur. Les champs clés sont alimentés à l'exécution : le fichier traité, le mode (AUTO, SINGLE, BURST, UBL, PROCESS), le template source, l'étape courante (START, END, ou un nom de méthode tel que TRANSFORM_XSL, CONVERT_RTF, RUN_TASKS), le message et l'horodatage. Le moteur de groupement de cette page reconstruit les jobs depuis ces événements bruts au moment de l'affichage.
Le journal est en ajout uniquement — les événements sont écrits par le pipeline et ne sont jamais modifiés. La page est en lecture seule.
Deux vues, un même jeu de données
| Vue | Quand l'utiliser |
|---|---|
| Grouped (défaut) | Surveillance au quotidien. Chaque job tient sur une ligne avec son statut (OK / ERROR / PARTIAL), sa durée et son dernier message. L'expansion d'une ligne révèle toutes les étapes intermédiaires. |
| Flat | Analyse forensique lorsque le groupement masquerait un contexte utile — par ex. inspecter l'ordre des événements pendant un job suspendu, ou traquer un WARNING isolé entre deux exécutions sans rapport. Une ligne par événement. |
Le bouton de bascule en tête de la barre d'outils permute les deux ; le choix est persisté dans le navigateur (processing-log:grouped dans localStorage), donc la prochaine session ouvre la même vue.
Barre d'outils
La barre d'outils combine la bascule de vue, une recherche libre, deux filtres déroulants, une plage de dates et un bouton de rafraîchissement.
| Contrôle | Comportement |
|---|---|
| Bascule Grouped / Flat | Permute la présentation des données. Persistée par navigateur. |
| Search file name | Recherche par sous-chaîne sur la colonne file (par ex. 12345_RI_00070). Vide désactive le filtre. |
| Templates | Liste déroulante alimentée dynamiquement depuis les templates de type document déclarés dans config.json. All templates retire le filtre. |
| Modes | Déroulante des modes de traitement standards — AUTO, SINGLE, BURST, UBL, PROCESS. All modes retire le filtre. |
| Plage de dates | Restreint aux événements dont l'horodatage tombe dans la fenêtre choisie. Préréglage par défaut : Yesterday → Today. Les préréglages standards (Today, Yesterday, Last 7 days, This month, Last month, Custom range) s'appliquent. |
| Refresh | Relance la requête courante sans modifier les filtres. |
En vue groupée, la page sur-extrait (pageSize × 4, plafonné à 200) afin que les paires START / END et les étapes intermédiaires se retrouvent sur la même page et que le moteur de groupement dispose du job complet.
Vue groupée — une ligne par job
Chaque ligne représente un job (file, mode, template), reconstruit depuis ses événements bruts. La ligne porte le statut du job, la forme du flux, la durée et le dernier message. Cliquer sur une ligne pour la déplier et voir toutes les étapes intermédiaires.
Colonnes
| Colonne | Description |
|---|---|
| ▸ | Chevron — affiché lorsque le job dispose d'au moins une étape intermédiaire ou est orphelin. Cliquer sur la ligne pour déplier. |
| Date | Horodatage de tri — heure de l'END lorsqu'elle est connue, sinon le START ou la première étape intermédiaire. |
| Fichier | Le fichier ou la clé de job traitée (typiquement DOC_DCT_KCO). En police mono ; valeur complète au survol. |
| Mode | Badge coloré — SINGLE (bleu), BURST (violet), UBL / UBL_VALIDATE (vert), BOTH (orange), autres modes (neutre). |
| Template | Le template source qui a piloté l'exécution (par ex. invoices, credit_notes). |
| Flux | Forme de l'appariement START / END — START → END pour les jobs complets, START → ? quand l'END est absent, ? → END quand un END apparaît sans START correspondant, ou — pour des étapes intermédiaires sans appariement. |
| Durée | Calculée par END − START. Format compact : 120ms / 1.2s / 1m 23s. Vide quand l'une des bornes manque. |
| Statut | Issue du job — voir ci-dessous. |
| Message | Message de fin de job, ou message de la dernière étape intermédiaire lorsque l'END est absent. Tronqué ; valeur complète au survol. |
Badges de statut
| Variante | Quand | Indice visuel |
|---|---|---|
| OK | START et END présents, sans erreur dans le message ni dans aucune étape intermédiaire. | Badge vert. |
| ERROR | Le message d'END correspond à ERROR / FAIL / EXCEPTION / FATAL, ou une étape intermédiaire correspond. Le libellé du badge reprend le message d'END en majuscules. | Badge rouge, le fond de la ligne est teinté rouge. |
| PARTIAL | Le START ou l'END est absent de la page courante (job orphelin), ou seules des étapes intermédiaires sont présentes. | Badge orange, le fond de la ligne est teinté orange. |
Étapes dépliées
Cliquer sur une ligne dépliable ouvre une zone d'étapes sous celle-ci, qui liste tous les événements rattachés au job dans l'ordre chronologique :
- La ligne synthétique
STARTreprend l'horodatage de début et un message générique « Job démarré ». - Chaque événement intermédiaire est listé avec sa méthode (
TRANSFORM_XSL,CONVERT_RTF,RUN_TASKS,VALIDATE_UBL_ERROR, …) et son texte libre — les méthodes d'erreur sont colorées en rouge. - La ligne
ENDreprend l'horodatage de fin et le message final. - Pour les jobs PARTIAL, une note italique rappelle que le START ou l'END se trouve sur une autre page.
Cette même zone fait de la vue groupée une descente en un clic pour le triage — l'en-tête dit ce qui s'est passé, la liste dépliée dit où dans le pipeline.
Vue à plat — une ligne par événement
Basculer sur Flat désactive le groupement et revient au flux d'événements sous-jacent. Tri, pagination et export CSV opèrent sur les événements individuels, ce qui correspond aux requêtes d'archive et aux investigations détaillées.
Colonnes
| Colonne | Description |
|---|---|
| Date / Heure | Horodatage de l'événement. Tri par défaut : décroissant. |
| Fichier | Le fichier auquel l'événement se rattache. |
| Mode | Badge coloré — même palette que la vue groupée. |
| Template | Le template source. |
| Étape | Libellé de la méthode — badge coloré : START (bleu), END (vert), tout libellé contenant ERROR / FAIL (rouge), WARN (orange), autres étapes (neutre). |
| Message | Texte libre attaché à l'événement. Tronqué ; valeur complète au survol. Non triable. |
Le bouton standard Export exporte la vue courante (filtres compris, tri respecté) sous le nom processing-log.csv.
Reconstruction des jobs
Le moteur de groupement parcourt les événements en ordre croissant dans le temps et utilise le triplet file | mode | template comme clé de job. Connaître l'algorithme aide à interpréter les cas limites :
| Événement | Effet |
|---|---|
START sur une clé sans job ouvert | Ouvre un nouveau job. |
START sur une clé qui a déjà un job ouvert | Vide le job précédent en PARTIAL et ouvre un nouveau job. |
END sur une clé avec un job ouvert | Ferme le job, calcule la durée, affecte le statut (OK ou ERROR selon le message d'END). |
END sur une clé sans job ouvert | Émet un orphelin PARTIAL sans START. |
| Toute autre méthode sur une clé avec un job ouvert | Rattachée comme étape intermédiaire. Marque hasError = true si la méthode ou le message correspond à ERROR / FAIL / EXCEPTION / FATAL. |
| Toute autre méthode sur une clé sans job ouvert | Émet un orphelin PARTIAL composé de cette seule étape. |
Les jobs ouverts sans END sur la page courante sont vidés en PARTIAL en fin de parcours.
L'expression de détection est volontairement large — toute méthode ou message contenant ERROR, FAIL, EXCEPTION ou FATAL (insensible à la casse) marque le job en erreur, même si le message d'END formel est anodin.
Conseils & bonnes pratiques
- Conserver Grouped pour la surveillance quotidienne. Un coup d'œil à la colonne Statut indique tout de suite ce qui a échoué la veille et ce qui s'est terminé proprement. Réserver Flat aux requêtes forensiques.
- Un PARTIAL après un filtre date est généralement un artefact de pagination. Un job dont le START est sur le jour 1 et l'END sur le jour 2 paraîtra orphelin sur chacune des vues isolées — élargir la plage de dates avant de conclure à un échec réel.
- Filtrer par mode pour cibler une session de triage. Pendant un incident sur le chemin BIP, restreindre à
BURSTretire le bruit des exécutionsSINGLEsans rapport et garde toutes les étapes liées sur la même page. - Le libellé d'erreur affiché est le message d'END en majuscules. C'est exactement la chaîne que l'équipe ERP / PA citera dans un ticket — la copier depuis cette page est le moyen le plus rapide de remonter la cause canonique.
- Déplier avant de citer un job. L'en-tête dit ce qui a échoué ; les étapes dépliées disent où dans le pipeline (transformation vs. conversion vs. validation vs. envoi). Toujours inclure l'étape fautive dans le rapport d'incident.
- Le journal est en ajout uniquement. Aucune ligne ne peut être éditée ou supprimée depuis cette page — passer par File Versions ou directement par la base pour tout nettoyage rétroactif.