Aller au contenu principal

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.

Nouveauté 2026.06.03

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

Reprise auto+ AjouterStatuts (multi) ▾☑ Activés uniquement↻ RafraîchirReprise nocturne des Échec d'envoiRenvoie toutes les factures en erreur technique vers la PAChaque jour · 03:00 Europe/Paris · cadencement = 100 msStatuts : 9904 (Échec d'envoi) · Fenêtre : 7 joursACTIVÉdernier passage 03/06 · 12 renvoyéesModifierReprise mi-journée des erreurs techniquesReprise horaire sur chaque seau d'erreur techniqueChaque heure · décalage de 50 min · cadencement = 250 msStatuts : 9904, 9905, 9907 · Fenêtre : 24 heuresACTIVÉVidage après incident PA (déclenchement manuel)Vidage cadencé — réactiver après un incident PADésactivé par défaut · cadencement = 50 msStatuts : 9904, 9905, 9907, 213 · Fenêtre : 0 (aucun filtre)DÉSACTIVÉAjouter une repriseUne ligne par planificationPlanification de type cronHeure + minute + fuseauSélecteur multi-statutsÉtiquetés Erreur – technique uniquementActiver / désactiverPause sans suppression

Champs d'une reprise

Chaque ligne est une entrée du catalogue. Le panneau d'édition comporte quatre sections.

1. Identification

ChampObligatoireDescription
NomouiTexte libre. Affiché dans la liste du catalogue et sur la carte Planificateur du Tableau de bord technique. Exemple : Reprise nocturne des Échec d'envoi.
DescriptionnonLé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

ChampObligatoireDescription
Heureoui (par défaut : 03)Heure de la journée au format 24 h. La reprise se déclenche pile à cette heure.
Minutenon (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 horaireoui (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.
Cadenceoui (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 :

CodeLibelléQuand il s'applique
9904Échec d'envoiSoumission PA rejetée au niveau HTTP (timeout, 4xx, 5xx). La cible de la reprise par défaut.
9905Échec en mode mockIdentique à 9904 mais en mode mock. Visible en général uniquement durant les tests.
9907Échec de récupération de statutLa soumission PA est arrivée mais l'interrogation du cycle de vie continue de tomber en erreur.
213Rejet technique PALe 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

ChampDéfautDescription
Fenêtre d'analyse0 (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é.
Cadencement100 msDé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écutionillimité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.

ÉtapeDescription
1. Sélection des facturesSELECT * 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 unitairePour 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. CadencementAttente de <throttle> ms entre deux appels.
4. Respect du CancelLa 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 à :00 se disputent les emplacements du pool de connexions. Étalez-les à :00, :15, :30 pour lisser la charge.
  • Augmentez le cadencement quand la PA limite le débit. Un 429 Too Many Requests aprè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ômeCause probableCorrectif
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.