Skip to main content

Die Versand-Pipeline und Aufgabenwarteschlange

Jede E-Rechnung, die die App erzeugt, wird von einer festen, siebenstufigen Pipeline verarbeitet. Belege werden bei der Buchung automatisch in die Warteschlange eingereiht, und ein wiederkehrender Eintrag der Aufgabenwarteschlange arbeitet die Warteschlange im Hintergrund ab. Diese Seite erläutert die Stufen, wann Belege eingereiht werden und wie Wiederholungen und Dead-Lettering funktionieren.

Die sieben Stufen

  • Stufe 1 - Quelldaten-Validierung: die rohen Belegdaten werden validiert (SourceData-Regeln).
  • Stufe 2 - Geschäftsvalidierung: Einschränkungen auf Geschäftsebene werden validiert (BusinessValidation-Regeln).
  • Stufe 3 - Rechnungsmodell-Validierung: das zusammengesetzte Rechnungsmodell wird validiert (InvoiceModel-Regeln).
  • Stufe 4 - Artefakt serialisieren & persistieren: die validierte Payload wird serialisiert und als unveränderliches Artefakt gespeichert.
  • Stufe 5 - XML generieren: die E-Rechnung wird über die Digivoice-API als XRechnung-XML generiert und als Artefakt gespeichert. Das gilt für jedes Sendeprofil, denn die KoSIT-Prüfung validiert die XRechnung; beim Sendeprofil ZUGFeRD wird das ZUGFeRD-PDF erst beim Versand der E-Mail erstellt.
  • Stufe 6 - KoSIT-Vorabvalidierung: wenn XML-Validierung aktivieren in der Einrichtung eingeschaltet ist, wird der generierte Beleg gegen den offiziellen KoSIT-Validator geprüft, bevor er das System verlässt. Eine KoSIT-Ablehnung ist ein dauerhafter Fehler.
  • Stufe 7 - Freigeben & übertragen: das Artefakt wird freigegeben (und dadurch unveränderlich), und die E-Rechnung wird per E-Mail an den Empfänger übertragen.

Belege, die nur eingereiht werden, um an den gebuchten Beleg oder die E-Mail angehängt zu werden (statt automatisch versendet zu werden), stoppen nach der Generierung im Status Generiert - sie werden in Stufe 7 nicht übertragen.

Die Stufen 1-3 müssen alle bestanden werden, bevor generiert wird. Wird eine Feststellung mit Schweregrad Fehler ausgelöst, fährt der Beleg nicht fort - prüfen Sie die Validierungsergebnisse und korrigieren Sie die Daten.

Wann werden Belege eingereiht?

Ein Beleg wird zum Buchungszeitpunkt für die folgenden Belegarten automatisch eingereiht:

  • Verkaufsrechnung und Verkaufsgutschrift
  • Servicerechnung und Servicegutschrift
  • Einkaufsgutschrift

Die wiederkehrende Aufgabenwarteschlange

Die Verarbeitung wird durch einen wiederkehrenden Eintrag der Aufgabenwarteschlange gesteuert:

  • Kategorie: DXPEINV
  • Zeitplan: Montag bis Freitag, 08:00-18:00 Uhr
  • Häufigkeit: alle 30 Minuten

Bei jedem Lauf prüft die Aufgabenwarteschlange zuerst kürzlich abgelehnte Einträge erneut (siehe unten), greift dann alle Ausstehend-Einträge sowie die Fehler-Einträge auf, deren Wiederholung fällig ist, und bewegt sie durch die Pipeline. Jeder Eintrag wird in einer eigenen Transaktion verarbeitet, sodass ein Fehler in einem Eintrag die anderen weder zurücknimmt noch aufhält.

Wiederholung, Backoff und Dead-Lettering

Schlägt eine Stufe mit einem behebbaren Fehler fehl, geht der Eintrag in den Status Fehler und wird nach einem ansteigenden Backoff-Zeitplan mit zusätzlichem Jitter wiederholt, um Häufungen zu vermeiden:

  • Versuchsverzögerungen: 5 Minuten → 15 Minuten → 1 Stunde → 6 Stunden → 24 Stunden, zzgl. eines kleinen deterministischen Jitters (bis zu 59 Sekunden, abgeleitet aus der Eintragsnummer), sodass Wiederholungen nicht alle im selben Moment ausgelöst werden.
  • Max. Wiederholungsversuche: Standard 5. Sind die Versuche aufgebraucht, wird der Eintrag in den Status Fehlgeschlagen (Dead-Letter) verschoben.

Dauerhafte Fehler und Authentifizierungsfehler warten nicht auf Wiederholungen - sie landen sofort im Dead-Letter. Ein Dead-Letter-Eintrag (Fehlgeschlagen) wird nicht mehr nach dem Backoff-Zeitplan wiederholt; beheben Sie die Ursache und verwenden Sie Erneut einreihen auf der Seite Belegstatus (oder, für mehrere markierte Einträge gleichzeitig, auf der Seite der Belegwarteschlange), um den Versuchszähler zurückzusetzen und den Eintrag auf Ausstehend zurückzustellen. Die einzige Ausnahme ist eine kürzlich erfolgte inhaltliche Ablehnung, siehe unten.

Korrigierte Ablehnungen werden automatisch erneut eingereiht

Bevor sie die Warteschlange abarbeitet, prüft jeder Lauf der Aufgabenwarteschlange die Fehlgeschlagen-Einträge der letzten 30 Tage erneut, die wegen ihres Inhalts abgelehnt wurden - durch die Prüfungen der Stufen 1-3 oder durch KoSIT. Besteht der Beleg die Stufen 1-3 jetzt und ergibt er eine andere E-Rechnung als die abgelehnte, etwa weil die Daten korrigiert wurden, geht der Eintrag zurück auf Ausstehend und wird noch im selben Lauf verarbeitet. Ein unveränderter Beleg bleibt, wie er ist, und verursacht keinen Aufruf des Digivoice-Dienstes.

Nicht automatisch erneut eingereiht werden Einträge, die an einem Authentifizierungsfehler oder an einem dauerhaften Fehler des Digivoice-Dienstes gescheitert sind, sowie Ablehnungen, die älter als 30 Tage sind. Verwenden Sie für diese Erneut einreihen.

Ist der automatische Versand aktiviert, wird ein so erneut eingereihter Eintrag ohne weiteres Zutun an den Empfänger gesendet. Das gilt auch nach einem App-Update, das die erzeugte E-Rechnung verändert: Inhaltliche Ablehnungen der letzten 30 Tage werden dann neu generiert und, wenn sie jetzt bestehen, versendet.

Wird ein Beleg außerhalb der Warteschlange über die Standardaktion E-Mail versendet, werden seine Einträge im Status Ausstehend, Fehler und Fehlgeschlagen als Gesendet abgeschlossen, damit die Aufgabenwarteschlange den Beleg kein zweites Mal versendet.