Tempo aproximado para leitura: 00:02:07 min
Dúvida
Como extrair dados coletados pelo Log de Auditoria (TOTVS Audit) ?
Ambiente
Framework - Framework (Linha RM) - Banco de Dados - Todas as versões
Solução
O Log de auditoria é composto por uma série de procedures, onde quando é selecionada uma tabela a ser auditada, cria-se uma Tabela Espelho em um Schema exclusivo do Log de Auditoria TOTVSAUDIT e uma trigger no banco de dados, dependendo da ação escolhida Insert, Update e Delete.
Quando houver transações que utilizam a tabela selecionada, a Trigger é disparada e grava na tabela de Log ZAUDITCHANGES as informações sobre o autor da ação, e os dados que foram criados, alterados ou deletados é salvo na Tabela Espelho a TOTVSAUDIT.PPESSOA.
No novo modelo do Log de Auditoria, as informações correspondentes as alterações Updates são armazenados em dois registros, o original e o alterado, ou seja, a constante O representa os registros com os valores originais antes da alteração.
A constante U armazena o registro alterado.
A constante D que representa o registro deletado.
A constante I representa o registro inserido.
Estas informações podem ser consultadas através de queries no banco de dados ou através da interface do usuário do Log de Auditoria.
INFORMAÇÕES DO RELATÓRIO DENTRO DA APLICAÇÃO:
Acesse o menu Serviços Globais - Administração - TOTVS Audit - Log de alterações, faça um filtro na tela inicial para administrar a quantidade de logs que será exibido em tela, em seguida no menu processos, acesse a opção de Gerar Relatório com base no log de auditoria onde as informações mais detalhadas são apresentadas.
Nessa tela, é possível selecionar o período, a operação desejada e depois é possível marcar a tabela e campo da tabela no qual deseja visualizar a operação, após isso será gerado o relatório em .txt
INFORMAÇÕES DO RELATÓRIO REALIZANDO EM CONSULTA SQL:
Os registros para o novo log de auditoria são armazenados nas seguintes tabelas:
TOTVSAUDIT.ZAUDITCHANGES - Serão armazenados todos os registros de auditoria das tabelas habilitadas;
TOTVSAUDIT.(NOME_DA_TABELA) - Quando a auditoria de uma tabela for habilitada será criado um "espelho" da tabela e serão armazenados todos os registros de alterações. No caso de UPDATE serão armazenados 2 registros, um mostrando o que foi alterado e o segundo com os dados originais da tabela.
Para coletar as informações via banco de dados, é necessário desenvolver uma consulta criando uma junção entre as tabelas acima, e para isso a coluna AUDITID faz ligação entre elas.
Exemplo:
SELECT * FROM TOTVSAUDIT.PPESSOA PESSOA
INNER JOIN TOTVSAUDIT.ZAUDITCHANGES ZAUDIT
ON PESSOA.AUDITID = ZAUDIT.AUDITID
Segue outros objetos correspondentes ao Novo Log de Auditoria:
- Tabela com as configurações do Novo Log
SELECT * FROM ZAUDITCONFIG
- Tabela onde encontramos quais as tabelas são auditadas
SELECT * FROM ZAUDITITEMS
- Tabela com as Exceções
SELECT * FROM ZAUDITEXCEPTION
- Tabela onde são criados os registros de cabeçalho da auditoria, Nome do usuário, Data, Etc
SELECT * FROM TOTVSAUDIT.ZAUDITCHANGES ORDER BY 1 DESC
- Tabela onde são armazenadas as auditorias de DDL
SELECT * FROM TOTVSAUDIT.ZAUDITSCHEMAEVENTS ORDER BY 1 DESC
- Tabela espelho do Novo Log onde ficam os dados que foram auditados, e necessário um join com a ZAUDITCHANGES para pegar o cabeçalho.
SELECT * FROM TOTVSAUDIT.PFUNC
SAIBA MAIS
Para mais informações acesso a documentação sobre o Novo Log de Auditoria
Framework - Framework RM - BD - Habilitar novo Log de Auditoria
Framework - Framework RM - BD - Como desabilitar TOTVS Audit

1 Comentários