Czym jest to zadanie i jak często działa
Czym jest i jak jest skonfigurowane?
To zaplanowane zadanie modułu VeriFactu, które pracuje na kolejce wysyłki do AEAT. Jest aktywne po instalacji i działa co minutę. Występuje w opublikowanych gałęziach dla Odoo 17.0, 18.0, 19.0 i 20.0; w 17.0 ma ustawione powtarzanie bez końca.

Czy wysyła do AEAT co minutę?
Zadanie uruchamia się co minutę, ale to nie znaczy jednego żądania na minutę. Każda odpowiedź AEAT zawiera TiempoEsperaEnvio, czyli liczbę sekund do następnej wysyłki. Według kodu Odoo 20.0 moduł zapisuje tę godzinę dla firmy i nie wysyła nic, zanim nadejdzie (z jednym wyjątkiem, o którym niżej).
Gdzie zobaczę wpisy, które przetwarza?
W menu Verifactu / SIF › AEAT Submission › Submission Queue. Każdy odcinek menu wymaga uprawnień, a jeśli ich nie masz, tego odcinka nie widzisz. Odcinek AEAT Submission wymaga Accountant, Auditor (read-only) lub SIF Manager. Odcinek Verifactu / SIF wymaga jednego z tych: Accountant, Asesoría Operator, Auditor (read-only), Privacy Officer lub SIF Manager. Pole Reference każdego wpisu widać w jego karcie, w zakładce AEAT Errors, w grupie Queue Entry, a także na liście.

Co robi w każdym przebiegu
Które firmy obsługuje i kiedy pomija firmę?
Obchodzi tylko firmy z włączonym VeriFactu. Dla każdej sprawdza dwie zapisane godziny, z których jedna dotyczy czasu oczekiwania z ostatniej odpowiedzi AEAT. Jeśli któraś z tych godzin jeszcze nie nadeszła, pomija firmę w tym przebiegu i odnotowuje to w logu serwera. Wyjątkiem jest oczekiwanie z ostatniej odpowiedzi: jeśli czeka 1.000 wpisów lub więcej (oczekujących lub w ponowieniu), firma na nie nie czeka.
Co robi z wpisami firmy?
Pobiera partię z kolejki tej firmy i jeśli nic w niej nie ma, po prostu kończy z firmą. Wpisy, które nie mają powiązanego ani rekordu, ani anulowania, oznacza jako nieudane. Pozostałe sortuje według numeru rekordu, ponieważ każdy rekord wskazuje swojego poprzednika w łańcuchu. Następnie przygotowuje każdy jako dodanie albo anulowanie i wysyła je razem jednym żądaniem do AEAT. Według AEAT jedna wysyłka zawiera od 1 do 1.000 rekordów.
Co dzieje się z odpowiedzią lub z błędem?
Jeśli AEAT odpowie, moduł stosuje do każdego wpisu jego wynik. Odpowiedź zawiera EstadoEnvio (Correcto, ParcialmenteCorrecto lub Incorrecto) oraz stan każdego rekordu (Correcto, AceptadoConErrores lub Incorrecto). Jeśli zawiera czas oczekiwania, moduł zapisuje godzinę, do której ta firma nie wysyła ponownie. Jeśli żądanie kończy się błędem 429, moduł obsługuje je inną ścieżką niż pozostałe błędy. Przy każdym innym błędzie przepuszcza każdy wpis przez obsługę błędu HTTP, a jeśli któryś wpis zostanie odrzucony, wysyła jedno ostrzeżenie dla całej partii zamiast jednego na fakturę. Na koniec firmy prosi jej łańcuch o jedno przeliczenie dla wszystkich wpisów.
Czy ponownie wysyła to, co AEAT już zaakceptowało?
Zduplikowany rekord wraca z AEAT z kodem 3000. Jeśli figuruje już jako poprawny lub zaakceptowany z błędami, nie trzeba go wysyłać ponownie.
Jeśli wygląda na to, że nic nie robi
Co sprawdzić najpierw?
Sprawdź, czy zadanie jest nadal aktywne (po instalacji jest aktywne), czy firma ma włączone VeriFactu i czy lista Submission Queue zawiera wpisy. Zobacz też, czy firma nie jest w okresie oczekiwania: po odpowiedzi AEAT czeka tyle, ile ono wskazało, a ten przebieg jest odnotowany w logu serwera. Przebieg z pustą partią kończy się bez wysyłania czegokolwiek. Jeśli problem leży w certyfikacie, AEAT przekierowuje bez certyfikatu na stronę błędu 4033 («nie wykryto certyfikatu»), a z certyfikatem, który nie przechodzi walidacji, na 4011.
Czy błąd w jednej firmie blokuje pozostałe?
Według kodu nie. Każda firma jest przetwarzana w ramach własnej obsługi błędów: jeśli się nie powiedzie, błąd trafia do logu serwera z nazwą firmy, a zadanie przechodzi do następnej.
Czym jest podsumowanie kondycji na końcu?
Gdy zadanie skończy ze wszystkimi firmami, i tylko jeśli podczas przebiegu coś zawiodło, przygotowuje podsumowanie kondycji dla FlexigoTech Cloud w celach monitoringu. Nie wysyła go w każdym przebiegu, lecz w minimalnych odstępach między raportami. Zawiera liczbę wpisów oczekujących lub w ponowieniu oraz odrzuconych, a także błędy pogrupowane według typu, kodu i liczby wystąpień.
Pomoc przy wdrożeniu
Jeśli wdrażasz Odoo i chcesz sprawdzić, jak ta kolejka wygląda w Twoich firmach, w FlexigoTech wdrażamy Odoo 17, 18, 19 i 20 oraz tworzymy konektory i integracje na zamówienie.
Czytaj dalej
Sprawdzone w kodzie źródłowym modułu (wersja 17.0 i 20.0) i w podlinkowanych źródłach
Źródła
- Kod modułu: flexigo_spain_verifactu 20.0 (1fdc980f): data/verifactu_crons.xml
- Kod modułu: flexigo_spain_verifactu 17.0 (8d43d727): data/verifactu_crons.xml
- Kod modułu: 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
