Reprise auto
L'écran Reprise auto planifie un passage récurrent qui renvoie chaque facture dans un statut d'erreur technique choisi vers la Plateforme Agréée (PA). La ligne par défaut traite le statut 9904 (Échec d'envoi) chaque nuit à 3 h — le filet de sécurité du lot nocturne pour que tout ce qui reste bloqué côté PA en fin de journée soit repris avant la reprise des opérations le matin.
Plusieurs lignes peuvent coexister : une par combinaison (heure, liste de statuts). Le même chemin de code pilote le bouton manuel Tout renvoyer N sur la carte Échec d'envoi du Tableau de bord technique, si bien que le renvoi manuel et le renvoi planifié produisent des résultats identiques — l'un est déclenché à la main, l'autre par cron.
La page s'applique quel que soit le système source — JD Edwards, SAP, NetSuite ou un ERP sur mesure. Le renvoi lit F564231 pour sélectionner les factures concernées et appelle l'api-connector PA configuré pour chacune ; le format source est transparent.
La page est entièrement nouvelle. Elle se marie avec la nouvelle carte Échec d'envoi du Tableau de bord technique — le tableau de bord effectue le renvoi immédiat en un clic, la Reprise auto effectue le ramassage nocturne sans surveillance. Les deux utilisent le même moteur de renvoi et respectent le même cadencement par appel (par défaut 100 ms).
Ouvrir l'éditeur
- Barre latérale → Configuration → Système → Reprise auto.
- Ou depuis le Tableau de bord technique → carte Échec d'envoi → lien Planifier une reprise… (raccourci entre le bouton manuel et le catalogue).
En un coup d'œil
Champs d'une reprise
Chaque ligne est une entrée du catalogue. Le panneau d'édition comporte quatre sections.
1. Identification
| Champ | Obligatoire | Description |
|---|---|---|
| Nom | oui | Texte libre. Affiché dans la liste du catalogue et sur la carte Planificateur du Tableau de bord technique. Exemple : Reprise nocturne des Échec d'envoi. |
| Description | non | Légende d'une ligne pour aider les collègues à comprendre l'objet de la reprise. |
| Activé | oui (par défaut : oui) | Quand non, la ligne reste dans le catalogue mais le planificateur la passe. Utile pour mettre en pause pendant une fenêtre de maintenance ou un arrêt PA volontaire. |
2. Planification
| Champ | Obligatoire | Description |
|---|---|---|
| Heure | oui (par défaut : 03) | Heure de la journée au format 24 h. La reprise se déclenche pile à cette heure. |
| Minute | non (par défaut : 00) | Minute de l'heure. À utiliser pour répartir plusieurs reprises sur une heure et éviter qu'elles ne démarrent toutes à la même seconde. |
| Fuseau horaire | oui (par défaut : fuseau du serveur) | Fuseau IANA (ex. Europe/Paris). Chaque reprise s'exécute dans son propre fuseau, ce qui permet à une installation multi-régions d'échelonner les passages par région. |
| Cadence | oui (par défaut : quotidienne) | quotidienne, horaire ou toutes les N heures. Horaire + décalage de 50 minutes donne un passage à 00:50, 01:50, … — une installation chargée tire parti de la cadence plus élevée ; le défaut quotidien à 03:00 suffit dans la plupart des cas. |
3. Filtre de statuts
Le sélecteur multi-statuts ne liste que les statuts étiquetés Erreur – technique dans le Catalogue des statuts :
| Code | Libellé | Quand il s'applique |
|---|---|---|
9904 | Échec d'envoi | Soumission PA rejetée au niveau HTTP (timeout, 4xx, 5xx). La cible de la reprise par défaut. |
9905 | Échec en mode mock | Identique à 9904 mais en mode mock. Visible en général uniquement durant les tests. |
9907 | Échec de récupération de statut | La soumission PA est arrivée mais l'interrogation du cycle de vie continue de tomber en erreur. |
213 | Rejet technique PA | Le côté PA a signalé un rejet technique après acceptation. |
Sélectionnez-en un ou plusieurs. Une seule ligne peut traiter tous les seaux d'erreur technique d'un coup — utile pour un unique passage nocturne qui couvre l'ensemble.
Les statuts d'erreur métier (206, 207, 208, …) ne sont délibérément pas sélectionnables ici — ils demandent une action de l'opérateur en amont, pas un renvoi aveugle. Le sélecteur impose cette contrainte.
4. Options de renvoi
| Champ | Défaut | Description |
|---|---|---|
| Fenêtre d'analyse | 0 (aucun filtre temporel) | Quand elle est définie, restreint la reprise aux factures dont le statut a été mis à jour pour la dernière fois dans la fenêtre (en heures ou en jours). 7 jours est le réglage type pour rattraper la dernière semaine ; 0 signifie toute facture dans le statut correspondant, quelle que soit son ancienneté. |
| Cadencement | 100 ms | Délai entre deux appels PA. Aligné sur le bouton manuel Tout renvoyer du tableau de bord. À monter (250 ms, 500 ms) pour les installations où la PA limite agressivement le débit ; à baisser (50 ms) pour un vidage ponctuel après un incident PA. |
| Nombre max de factures par exécution | illimité | Plafonne la reprise à N factures pour borner la durée d'exécution sur les gros lots. La reprise prend d'abord les factures correspondantes les plus anciennes et s'arrête à N ; le reste est traité au passage planifié suivant. |
Ce qui se passe à l'heure planifiée
Le planificateur est un démon interne à NomaUBL qui se réveille chaque minute et vérifie pour chaque ligne activée l'heure de prochain déclenchement. La requête est peu coûteuse ; le catalogue est petit.
| Étape | Description |
|---|---|
| 1. Sélection des factures | SELECT * FROM F564231 WHERE current_status IN (<status_list>), avec last_update >= NOW() - <lookback> en option et LIMIT <max> quand il est défini. Les plus anciennes d'abord. |
| 2. Renvoi unitaire | Pour chaque facture, appel de la tâche submit de l'api-connector PA — même chemin de code que l'action Envoyer d'origine. La ligne de cycle de vie est mise à jour avec le nouveau statut. |
| 3. Cadencement | Attente de <throttle> ms entre deux appels. |
| 4. Respect du Cancel | La reprise contrôle un signal d'annulation entre deux factures — les opérateurs peuvent annuler depuis la carte Planificateur du tableau de bord sans attendre la fin de l'exécution. |
| 5. Journalisation du passage | Écriture d'une ligne dans F564237 avec le nom de la reprise, l'horodatage début / fin, le nombre traité / réussi / en échec. Visible dans le widget Événements de processus en direct du Tableau de bord technique. |
La progression du passage est aussi visible dans la fenêtre de progression partagée — même composant que le bouton manuel Tout renvoyer. Cliquez sur n'importe quelle reprise active dans la carte Planificateur pour l'ouvrir.
Quand le planificateur est hors ligne (serveur arrêté, JVM tombée) au moment où une ligne devait se déclencher, le passage est passé silencieusement — il n'y a pas de rejeu des passages manqués. La prochaine heure planifiée se déclenche normalement. Pour rattraper le travail manqué, lancez le Tout renvoyer manuel sur le tableau de bord ou déclenchez la ligne depuis le catalogue avec Exécuter maintenant.
Bouton Exécuter maintenant
Chaque ligne du catalogue dispose d'un bouton Exécuter maintenant qui déclenche la reprise immédiatement, en utilisant la configuration actuelle de la ligne. Utile pour :
- Vérifier une nouvelle reprise avant de la laisser tourner sur sa planification.
- Rattraper un passage manqué après un redémarrage du serveur.
- Rattrapage ponctuel après un incident PA — activer une ligne Vidage après incident PA désactivée, Exécuter maintenant, puis la désactiver une fois terminé.
L'exécution déclenchée par Exécuter maintenant respecte le même cadencement, la même fenêtre d'analyse et la même liste de statuts qu'un passage planifié. Elle ne fait pas avancer la cadence du passage planifié — la prochaine heure planifiée se déclenche tout de même.
Astuces et bonnes pratiques
- Gardez seule la reprise par défaut à 03:00. Elle couvre le cas le plus courant (lots nocturnes bloqués côté PA). Ajouter une ligne n'a de sens que pour une cadence différente ou un jeu de statuts différent.
- Échelonnez les reprises avec un décalage de minute. Deux reprises qui se déclenchent à
:00se disputent les emplacements du pool de connexions. Étalez-les à:00,:15,:30pour lisser la charge. - Augmentez le cadencement quand la PA limite le débit. Un
429 Too Many Requestsaprès quelques minutes de reprise est un indice pour pousser le cadencement à 250 ms ou 500 ms. Alignez-le sur le budget par seconde documenté par la PA. - Désactivez plutôt que supprimer pendant un arrêt connu. Une ligne marquée DÉSACTIVÉ est intentionnelle et visible ; une ligne supprimée est invisible et facile à oublier une fois l'arrêt terminé.
- Ne renvoyez pas les erreurs métier. Le sélecteur le bloque. Si une facture est en
207(Contestée par le destinataire), aucun renvoi n'y changera quoi que ce soit — seule une action de l'opérateur en amont le peut. - Utilisez le tableau de bord pour les coups uniques, la Reprise auto pour les habitudes. Les deux chemins partagent le code ; ce qui diffère, c'est qui les déclenche. Un vidage ponctuel après un incident est un clic ; le filet de sécurité quotidien est une ligne.
Dépannage
| Symptôme | Cause probable | Correctif |
|---|---|---|
| La ligne planifiée ne se déclenche pas. | La ligne est DÉSACTIVÉE. | Ouvrez la ligne, basculez Activé sur oui, enregistrez. |
| La ligne se déclenche mais traite zéro facture. | La liste de statuts et la fenêtre d'analyse combinées donnent zéro correspondance. | Inspectez la page E-Invoicing avec le même filtre de statuts ; élargissez la fenêtre ou assouplissez la liste de statuts. |
| La reprise se termine mais le décompte est très inférieur au nombre de la carte Échec d'envoi. | Le tableau de bord compte chaque 9904 sans tenir compte de l'âge ; une ligne avec une fenêtre de 7 jours ignore tout ce qui est plus ancien. | Soit retirez la fenêtre (0 = aucun filtre), soit planifiez une seconde ligne avec une fenêtre plus large pour le stock ancien. |
Erreurs 429 Too Many Requests dans le journal d'exécution. | Limite de débit PA atteinte. | Augmentez le cadencement (par ex. 100 ms → 250 ms) sur la ligne et relancez. |
Deux lignes ont toutes deux démarré à 03:00 et l'une a bloqué l'autre. | Aucun décalage de minute — elles ont sollicité le pool de connexions en même temps. | Échelonnez les lignes (:00, :15, :30). |
| Le bouton Exécuter maintenant est grisé. | La reprise est déjà en cours (un passage planifié ou un Exécuter maintenant précédent). | Ouvrez la carte Planificateur du tableau de bord → cliquez sur la ligne active → utilisez Annuler dans la fenêtre modale si besoin, ou attendez. |
| Le badge du dernier passage reste à jamais sur une nouvelle ligne. | L'heure de la ligne est dans le futur — elle ne s'est pas encore déclenchée — et aucun Exécuter maintenant n'a été cliqué. | Cliquez sur Exécuter maintenant pour vérifier la configuration ; le prochain passage planifié se déroulera normalement. |
Pour aller plus loin
- Tableau de bord technique → Échec d'envoi — le renvoi manuel en un clic ; même chemin de code, déclenché à la main.
- Fenêtre de progression partagée — la fenêtre modale qu'ouvre chaque opération longue.
- E-Invoicing — l'api-connector PA que le renvoi appelle ; ajustez-y les délais d'attente et les nombres de tentatives.
- Statuts — le catalogue des codes de statut, dont l'étiquette Erreur – technique qui filtre le sélecteur multi-statuts de cette page.
- Digest quotidien — planifiez un e-mail quotidien qui résume les erreurs d'intégration ; complément utile à la Reprise auto pour que l'équipe d'astreinte voie ce que le passage n'a pas pu corriger.