Was diese Aufgabe ist und wie oft sie läuft
Was ist sie und wie ist sie konfiguriert?
Es ist eine geplante Aktion des VeriFactu-Moduls, die auf der Sendewarteschlange zur AEAT arbeitet. Sie ist nach der Installation aktiv und läuft jede Minute. Sie ist in den veröffentlichten Zweigen für Odoo 17.0, 18.0, 19.0 und 20.0 enthalten; in 17.0 ist sie so konfiguriert, dass sie sich endlos wiederholt.

Wird jede Minute an die AEAT gesendet?
Die Aufgabe wird jede Minute ausgeführt, das bedeutet aber nicht eine Anfrage pro Minute. Jede Antwort der AEAT enthält TiempoEsperaEnvio, die Sekunden bis zur nächsten Sendung. Laut dem Code von Odoo 20.0 speichert das Modul diesen Zeitpunkt für das Unternehmen und sendet vor dessen Eintreten nichts (mit einer Ausnahme, die Sie weiter unten sehen).
Wo sehe ich die Einträge, die verarbeitet werden?
Im Menü Verifactu / SIF › AEAT Submission › Submission Queue. Jeder Abschnitt des Menüs verlangt Berechtigungen; wenn Sie keine haben, sehen Sie diesen Abschnitt nicht. Der Abschnitt AEAT Submission verlangt Accountant, Auditor (read-only) oder SIF Manager. Der Abschnitt Verifactu / SIF verlangt eine dieser Rollen: Accountant, Asesoría Operator, Auditor (read-only), Privacy Officer oder SIF Manager. Das Feld Reference jedes Eintrags sehen Sie in seinem Formular, im Reiter AEAT Errors, in der Gruppe Queue Entry, und auch in der Liste.

Was sie in jedem Durchlauf tut
Welche Unternehmen bearbeitet sie und wann überspringt sie eines?
Sie geht nur die Unternehmen durch, bei denen VeriFactu aktiviert ist. Für jedes prüft sie zwei gespeicherte Zeitpunkte, einer davon ist die Wartezeit der letzten AEAT-Antwort. Ist einer dieser Zeitpunkte noch nicht erreicht, überspringt sie das Unternehmen in diesem Durchlauf und vermerkt es im Serverlog. Die Ausnahme ist die Wartezeit der letzten Antwort: Warten 1.000 oder mehr Einträge (ausstehend oder im Wiederholversuch), wartet das Unternehmen nicht auf sie.
Was tut sie mit den Einträgen eines Unternehmens?
Sie fordert den Stapel aus der Warteschlange dieses Unternehmens an und beendet es ohne weiteres, wenn nichts vorhanden ist. Einträge, die weder einen verknüpften Datensatz noch eine verknüpfte Stornierung haben, markiert sie als fehlgeschlagen. Die übrigen sortiert sie nach Datensatznummer, weil jeder Datensatz in der Verkettung seinen Vorgänger nennt. Danach bereitet sie jeden als Anlage oder als Stornierung vor und sendet sie gemeinsam in einer einzigen Anfrage an die AEAT. Laut AEAT enthält eine Sendung 1 bis 1.000 Datensätze.
Was passiert mit der Antwort oder mit dem Fehler?
Antwortet die AEAT, wendet das Modul auf jeden Eintrag sein Ergebnis an. Die Antwort enthält EstadoEnvio (Correcto, ParcialmenteCorrecto oder Incorrecto) und einen Status je Datensatz (Correcto, AceptadoConErrores oder Incorrecto). Enthält sie eine Wartezeit, speichert das Modul den Zeitpunkt, bis zu dem dieses Unternehmen nicht erneut sendet. Scheitert die Anfrage mit einem 429, behandelt das Modul sie auf einem anderen Weg als die übrigen Fehler. Bei jedem anderen Fehler schickt es jeden Eintrag durch die HTTP-Fehlerbehandlung und löst, falls ein Eintrag verworfen wird, eine einzige Warnung für den ganzen Stapel aus statt einer pro Rechnung. Am Ende des Unternehmens fordert es bei dessen Kette eine einzige Neuberechnung für alle Einträge an.
Wird erneut gesendet, was die AEAT bereits akzeptiert hat?
Ein doppelter Datensatz kommt von der AEAT mit dem Code 3000 zurück. Steht er bereits als korrekt oder als mit Fehlern akzeptiert, muss er nicht erneut gesendet werden.
Wenn scheinbar nichts passiert
Was prüfe ich zuerst?
Prüfen Sie, ob die Aufgabe noch aktiv ist (sie ist nach der Installation aktiv), ob beim Unternehmen VeriFactu aktiviert ist und ob die Liste Submission Queue Einträge enthält. Schauen Sie auch, ob das Unternehmen in einer Wartezeit ist: Nach einer Antwort der AEAT wartet es die von ihr angegebene Zeit, und dieser Durchlauf wird im Serverlog vermerkt. Ein Durchlauf mit leerem Stapel endet, ohne etwas zu senden. Liegt das Problem beim Zertifikat, leitet die AEAT ohne Zertifikat auf die Fehlerseite 4033 («no se detecta certificado») und bei einem Zertifikat, das nicht validiert, auf die Seite 4011 weiter.
Blockiert ein Fehler in einem Unternehmen die anderen?
Laut Code nein. Jedes Unternehmen wird innerhalb seiner eigenen Fehlerbehandlung verarbeitet: Scheitert es, bleibt der Fehler mit dem Namen des Unternehmens im Serverlog, und die Aufgabe macht mit dem nächsten weiter.
Was ist der Gesundheitsbericht am Ende?
Wenn alle Unternehmen abgearbeitet sind, und nur wenn während des Durchlaufs etwas fehlgeschlagen ist, bereitet die Aufgabe einen Gesundheitsbericht für FlexigoTech Cloud zu Überwachungszwecken vor. Sie sendet ihn nicht bei jedem Durchlauf, sondern in Mindestabständen zwischen den Berichten. Er enthält die Anzahl der ausstehenden oder im Wiederholversuch befindlichen und der verworfenen Einträge sowie die Fehler, gruppiert nach Typ, Code und Häufigkeit.
Hilfe bei Ihrer Einführung
Wenn Sie Odoo einführen und prüfen möchten, wie diese Warteschlange mit Ihren Unternehmen aussieht: Bei FlexigoTech führen wir Odoo 17, 18, 19 und 20 ein und entwickeln Konnektoren und individuelle Integrationen.
Weiterlesen
Geprüft im Quellcode des Moduls (Version 17.0 und 20.0) und in den verlinkten Quellen
Quellen
- Quellcode des Moduls: flexigo_spain_verifactu 20.0 (1fdc980f): data/verifactu_crons.xml
- Quellcode des Moduls: flexigo_spain_verifactu 17.0 (8d43d727): data/verifactu_crons.xml
- Quellcode des Moduls: flexigo_spain_verifactu 20.0 (1fdc980f): models/verifactu_cola_envio.py
- apps.odoo.com/apps/modules/20.0/flexigo_spain_verifactu
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/Sis
- sede.agenciatributaria.gob.es/Sede/errores/erro4033.html
- flexigotech.com/en/services.html
