Notifications
L'écran Notifications est la boîte de réception du portail. Il affiche toutes les notifications adressées à l'utilisateur courant. Chaque ligne représente un changement de statut sur une facture, retenu par une Règle de notification, enrichi du sujet, du message et des métadonnées correspondants, puis enregistré dans la table F564253.
La page est le côté lecture du système de notifications. Le côté écriture — quel événement déclenche quelle notification, pour qui, sur quels canaux — se configure dans l'éditeur des Règles de notification.
Une cloche dans la barre d'utilitaires interroge le compteur des non-lues toutes les 30 s et affiche les six dernières entrées sans quitter la page courante. Cliquer sur une entrée ouvre directement la modale de la facture liée.
La page fonctionne quel que soit le système source — JD Edwards, SAP, NetSuite ou ERP personnalisé. La charge utile de la notification est construite à partir de la facture UBL enregistrée, et non du XML source brut.
Accès à la boîte de réception
- Barre latérale → Application → Notifications.
- Ou cliquer sur la 🔔 cloche dans la barre d'utilitaires, puis Voir toutes en bas du menu déroulant.
- La boîte s'ouvre toujours sur l'onglet Toutes. L'onglet Non lues filtre sur les notifications pas encore lues.
Vue d'ensemble
Une ligne de notification comporte cinq éléments : le badge de statut à gauche (couleur du catalogue statuses), le sujet (par défaut Invoice {doc} {dct} {kco} — {statusLabel}), le message (corps de la règle ou message par défaut), la ligne méta avec les identifiants canoniques, et une colonne de droite avec l'horodatage relatif et le bouton de suppression.
Actions disponibles
| Action | Effet |
|---|---|
| Actualiser | Recharge la boîte de réception depuis /api/notifications, en respectant l'onglet actif (Toutes ou Non lues). |
| Tout marquer comme lu | Envoie un POST sur /api/notifications/mark-all-read. Toutes les lignes non lues sont marquées lues. La pastille de la cloche s'éteint au prochain sondage (30 s) ou dès le retour du focus sur la fenêtre. Le bouton est désactivé s'il n'y a pas de ligne non lue. |
| Onglets de filtre | Toutes affiche toutes les lignes non supprimées. Non lues ne garde que les lignes où read = false. L'onglet Non lues affiche le compteur ( N ) à côté de son libellé. |
Anatomie d'une ligne
| Élément | Source | Sens |
|---|---|---|
| Bande d'accent à gauche + fond teinté | read = false | Lignes non lues. La bande disparaît dès que la ligne est marquée lue. |
| Badge de statut | NTEV01 joint au catalogue statuses | Statut qui a déclenché la notification. Le fond, la couleur du texte et la bordure du badge proviennent du catalogue : 9904 / Rejet PA est rouge, 10 / Déposée est verte, 9906 / Attente PA est orange, etc. |
| Sujet (ligne du haut) | NTSUBJ (champ emailSubject de la règle ou message par défaut) | Titre court, lisible. La valeur par défaut est Invoice {doc} {dct} {kco} — {statusLabel}. |
| Message (deuxième ligne) | NTMSGE (champ emailBody de la règle ou message par défaut) | Corps du texte. Tronqué s'il dépasse ; la modale ouverte au clic affiche l'historique complet. |
| Ligne méta | NTDOC · NTDCT · NTKCO · motif · action · règle | Identifiants canoniques de la facture, plus le motif de rejet PA, l'action attendue et le nom de la règle s'ils sont présents. Motif et action sont lus dans les catalogues rejection-reason-codes et action-codes — c'est le libellé lisible qui s'affiche, pas le code brut. |
| Pastilles d'audit d'actions (2026.05.7) | pied d'audit NTK74MSG2 | Une pastille colorée par appel de connecteur déclenché par la règle. Voir Pastilles d'audit d'actions ci-dessous. |
| Horodatage relatif | NTUPMJ + NTTDAY | à l'instant, il y a 2 min, 14:32 (aujourd'hui), Hier, puis l'horodatage absolu dd/mm/yyyy hh:mm pour les entrées plus anciennes. |
| Bouton de suppression | par ligne | Retire la ligne de la boîte de réception sans marquer les autres lues. |
Cliquer sur le corps de la ligne ouvre la modale de détail de facture pour le triplet (doc, dct, kco) lié — les mêmes sept onglets que sur la page E-Invoicing (Résumé, Parties, Lignes, TVA, Notes, Historique, PDF). La ligne est marquée lue au passage.
Pastilles d'audit d'actions
Depuis 2026.05.7, chaque notification émise par une Règle de notification qui définit un ou plusieurs appels d'action porte une trace d'audit permanente, enregistrée dans la colonne NTK74MSG2. La boîte de réception affiche cette trace sous forme d'une rangée de pastilles colorées sous le message, une pastille par appel :
| Pastille | Couleur | Signification |
|---|---|---|
OK | vert | L'appel s'est exécuté sans erreur. Pour un appel api : statut HTTP < 400. Pour un appel sql : l'instruction est passée sans exception. |
FAIL | rouge | L'appel a renvoyé une erreur. Le texte de la pastille porte la cause — statut HTTP + corps pour un appel api, exception JDBC pour un appel sql. |
STOP | orange | L'appel est un marqueur STOP · N appel(s) restant(s) ignoré(s). Posé par un précédent FAIL sur un appel dont le drapeau Arrêt sur échec était activé. |
SKIP | gris | Un appel sauté parce qu'un appel antérieur de la chaîne a déclenché un STOP. |
L'audit étant rangé dans NTK74MSG2 et non dans le corps, il survit à la troncature line-clamp du corps et reste lisible d'un coup d'œil — une ligne dont le message se termine par OK · OK · FAIL se trie plus vite qu'une ligne où l'audit était noyé dans le texte. Le pied d'audit est plafonné à la largeur de colonne moins une marge de sécurité ; les longs messages d'erreur sont tronqués, mais les champs statut et compteur tiennent toujours.
La 🔔 cloche dans la barre d'utilitaires
Une cloche figure dans la barre d'utilitaires de chaque page. Trois rôles :
- Sondage toutes les 30 s du compteur des non-lues (
GET /api/notifications/unread-count). Une pastille rouge affiche le compteur dès qu'il est strictement positif. - Affichage des 6 dernières entrées au clic — même structure qu'une ligne de la boîte de réception, mais condensée : sujet, message, référence facture, horodatage relatif. Les lignes non lues portent la même pastille bleue que dans la boîte. Quand la règle a déclenché un ou plusieurs appels d'action, l'aperçu de la cloche retire le pied d'audit
NTK74MSG2et affiche à la place une ligne récapitulative compacte : 2 action(s) exécutée(s) (gris) quand chaque appel a renvoyéOK, 1 action(s) en échec sur 2 (rouge) dès qu'au moins une pastille estFAIL. Un coup d'œil à la cloche suffit ainsi à savoir s'il faut ouvrir la boîte de réception. - Clic sur une entrée : la marque comme lue puis ouvre directement la modale de la facture. La cloche gère deux cas. Si l'utilisateur est déjà sur la boîte, elle émet un événement
nomaubl:open-notificationsurwindowpour que la modale s'ouvre sans démontage. Sinon, elle stocke la charge utile danssessionStoragesous la clénotif-auto-openpuis navigue vers/notifications, qui traite l'entrée au montage initial.
Un lien Voir toutes en bas du menu ouvre /notifications pour la boîte complète.
La cloche reste visible quel que soit l'état d'authentification. Quand global.authEnabled != "Y", la boîte affiche les notifications de diffusion écrites avec la sentinelle NTUSER='*', et la cloche les compte.
Stockage et rétention
Chaque notification envoyée correspond à une ligne dans F564253 (Oracle + Postgres). Les colonnes utilisées par la boîte de réception sont :
| Colonne | Type | Rôle |
|---|---|---|
NTUKID | numérique | Clé primaire. Unique sur l'ensemble de la table — la clé de ligne n'inclut plus le triplet (doc, dct, kco). |
NTUSER | chaîne | Nom d'utilisateur résolu, ou * lorsque l'authentification est désactivée (diffusion). |
NTEV01 | chaîne | 0 pour non lue, 1 pour lue. La pastille de la cloche compte les lignes où NTEV01 = 0. |
NTSUBJ / NTMSGE | chaîne | Sujet et corps. |
NTK74MSG2 | chaîne | Pied d'audit des actions écrit par le dispatcher (OK / FAIL / STOP / SKIP par appel) — alimente les pastilles. Nouveau en 2026.05.7. |
NTDOC / NTDCT / NTKCO | mixte | Triplet de la facture ; nullable pour les alertes système qui ne ciblent pas une facture précise. |
NTUPMJ / NTTDAY | jul / hms | Date et heure d'émission. L'index composite (NTUSER, NTEV01, NTUPMJ DESC) rend rapides la requête de la pastille et le tri de la boîte. |
Une purge quotidienne exécutée par BackgroundScheduler supprime toute ligne plus ancienne que global.notificationsRetentionDays (défaut 90 jours). La valeur 0 désactive la purge — utile pour les installations qui veulent garder les notifications indéfiniment ou qui gèrent leur propre stratégie de rétention.
Conseils & bonnes pratiques
- Trier via l'onglet Non lues. Filtrer par non lues est plus rapide que dérouler l'onglet Toutes. Tout marquer comme lu nettoie la liste en un clic à la fin de la revue.
- Lire la ligne méta pour le contexte. Le fragment
motif · action · règleindique pourquoi la notification a été émise — utile quand plusieurs règles couvrent des codes de statut qui se chevauchent. - La cloche est un aperçu rapide, pas la boîte. Elle n'affiche que les six dernières entrées. Pour parcourir toutes les lignes non supprimées, ouvrir Notifications. Le lien Voir toutes en bas du menu déroulant est le raccourci à un clic.
- Supprimer n'est pas la même chose que marquer lu. Supprimer retire la ligne de la boîte ; Marquer lu la garde dans l'onglet Toutes, sans la bande bleue ni le fond teinté qui signalent les non-lues. Supprimer convient aux entrées sans valeur d'audit.
- Pour un rejet PA, ouvrir la modale. Une ligne
9904 / Rejet PAdonne le motif dans la ligne méta, mais l'onglet Historique de la modale facture donne la charge utile complète et l'action attendue. - Régler la rétention. Le volume des notifications peut grimper rapidement — chaque changement de statut produit une ligne dès qu'une règle correspondante se déclenche. La valeur par défaut (90 jours) convient à la plupart des installations ; à ajuster via
global.notificationsRetentionDays.