Saltar para o conteúdo principal
VeriFactu

Verifactu: o que faz a tarefa que escala alertas para um aviso na aplicação

A tarefa Verifactu: Alert Escalation to In-App Banner corre a cada cinco minutos e vem ativa ao instalar o módulo. Em cada execução procura os eventos de alerta enviada com pelo menos cinco minutos de antiguidade e, por cada um, lança um aviso persistente do tipo advertência na aplicação. Se não vir nenhum aviso, o primeiro passo é verificar se esses eventos existem e que texto trazem.

FlexigoTech · Responsável: Víctor Gómez · Atualizado em 5 de novembro de 2026

O essencial

Módulo
VeriFactu
Versões
Odoo 17, 18, 19 e 20
Verificado
no código do módulo, versão 17.0 e 20.0 · nas fontes indicadas no fim
Leitura
5 min

O que faz a tarefa em cada execução

A tarefa chama-se Verifactu: Alert Escalation to In-App Banner. Corre a cada cinco minutos e vem ativa ao instalar. Existe em todos os ramos publicados do módulo: Odoo 17, 18, 19 e 20. A ordem de uma execução, segundo o código publicado do Odoo 20, é esta:

  1. Calcula um limite: a hora atual em UTC menos cinco minutos.
  2. Procura os eventos do tipo alerta enviada cuja marca temporal seja igual ou anterior a esse limite. A pesquisa faz-se por essas duas condições, o tipo do evento e a sua antiguidade.
  3. Percorre esses eventos um a um e, para cada um, envia um aviso para o canal do utilizador com o qual o método é executado. O aviso é persistente, do tipo advertência, e leva o título Verifactu Compliance Alert (Escalated).
  4. Como texto do aviso usa a descrição do evento. Se o evento não tiver descrição, usa um texto genérico que convida a rever o e-mail e as atividades.
  5. Se o envio de um aviso falhar, escreve uma advertência no registo técnico do Odoo com o identificador do evento e o motivo, e segue para o evento seguinte. Um aviso que falha não interrompe a execução.
Esquema feito com código: a tarefa agendada que corre a cada cinco minutos e o menu do Livro de Eventos
Esquema feito com código a partir do código publicado do módulo, não é uma captura do Odoo: a tarefa, ativa ao instalar no Odoo 17.0, 18.0, 19.0 e 20.0, e o menu do Livro de Eventos. Os rótulos estão em inglês, o texto original do código.

Onde estão os eventos que percorre

Os eventos que a tarefa analisa são os que se abrem a partir do menu Verifactu / SIF › Audit Trail › Event Log. Cada troço do menu exige permissões e, se não tiver uma delas, não vê esse troço:

  • O troço Audit Trail exige Accountant, Auditor (read-only), Privacy Officer ou SIF Manager.
  • O troço Verifactu / SIF exige Accountant, Asesoría Operator, Auditor (read-only), Privacy Officer ou SIF Manager.

O texto do aviso sai do campo Description do evento. Vê-o na ficha de All Events (Asesoría), dentro do grupo Description. No ecrã aparece sem rótulo: só se vê o seu conteúdo. Também aparece na lista de All Events (Asesoría).

Lista do Livro de Eventos com dois eventos, com data, empresa, ator e descrição
O Livro de Eventos com dois eventos (declaração responsável emitida e SIF iniciado) da empresa YourCompany e com ator OdooBot, para ver como se apresenta a lista.

Um caso ilustrativo: o aviso que ninguém viu

Exemplo Caso ilustrativo: a empresa e os seus dados são inventados para explicar o fluxo.

Imagine uma empresa inventada, Distribuciones Mirlo. A Marta tem o papel SIF Manager e um colega comenta-lhe que lhe apareceu um aviso de Verifactu no ecrã. A ela não apareceu nenhum e quer perceber porquê.

Primeiro abre o Libro de Eventos e procura um evento de alerta enviada. Ao abrir a sua ficha, lê o conteúdo do grupo Description: esse é precisamente o texto que o aviso leva. Se o campo estivesse vazio, o aviso sairia com o texto genérico que remete para o e-mail e para as atividades, pelo que um aviso com esse texto não seria uma falha.

Depois pensa no momento. O evento tem de ter cumprido cinco minutos desde a sua marca temporal e a tarefa corre a cada cinco minutos, pelo que o aviso chega na primeira execução posterior a esse limite, não no mesmo instante em que a alerta é registada.

Por fim, anota uma pergunta para quem administra o servidor: o código envia o aviso para o canal do utilizador com o qual o método é executado, e quer saber qual é. Pede também que reveja o registo técnico do Odoo, para ver se há advertências de aviso não enviado com o identificador desse evento.

O que o caso ensina: a tarefa explica-se com três perguntas. Existe um evento de alerta com antiguidade suficiente? Que texto leva? A que utilizador se envia o aviso?

O que ver se a tarefa não faz nada

  • Que o evento exista. Se não houver eventos de alerta enviada com pelo menos cinco minutos de antiguidade, a pesquisa não encontra nada e não se envia nenhum aviso.
  • Que a tarefa continue ativa. Vem ativa ao instalar. Peça a quem administra o Odoo que confirme que a tarefa com esse nome continua ativa.
  • O texto do aviso. Um aviso com o texto genérico significa que o evento não tinha descrição. Consulte a descrição do evento na ficha de All Events (Asesoría), dentro do grupo Description.
  • O registo técnico. Quando um aviso falha ao ser enviado, fica uma advertência com o identificador do evento e o motivo, e a tarefa segue com os restantes.
  • O utilizador destinatário. O aviso é enviado para o canal do utilizador com o qual o método é executado. Quem o analisar deve ter isto em conta antes de concluir que o aviso não foi enviado.

Por versões

A tarefa existe em todos os ramos publicados do módulo (17.0, 18.0, 19.0 e 20.0), e o módulo está publicado na Odoo Apps para essas quatro. No Odoo 17.0, a tarefa está configurada para se repetir sem fim. O detalhe da execução que leu é o do código do Odoo 20.

Como ajuda a FlexigoTech

A FlexigoTech implementa o Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida. Se está a implementar o módulo e quer rever consigo quem recebe os avisos e como se leem os eventos, pode escrever-nos. O módulo está na ficha da Odoo Apps.

Continue a ler

O que faz o botão «Run Pre-flight» do VeriFactu EspañaO que faz o botão Run Pre-flight do VeriFactu España em Odoo: quando aparece, o que verifica em cada linha, o que guarda e que erros pode dar.
Verificado no código do módulo (versão 17.0 e 20.0) e nas fontes indicadas

Fontes