iLog

Introdução

A iLog é uma tabela que armazena todas as alterações (Log) realizadas pelos usuários na base de dados. Essa tabela é atualizada quando o ApplyUpdates é invocado. Nela sempre será mostrado o antes e o depois do registro, mostrando também quem alterou, quando alterou, por onde alterou e o tipo de alteração.

Com todas essas informações é possível fazer um processo de auditoria no sistema com o objetivo de identificar o que foi feito e quando foi feito. Quando há erro de dados em um registro, geralmente se olha na iLog para verificar toda a "vida" daquele registro na base de dados.

Tipos da iLog

As classes de log estão presentes na tabela iAuxiliaryTable, tendo como classe -1898145949 (Tipos de Log). Existe classe para as mais diversas operações, exemplo: Bloqueio de usuário, Registro alterado, Registro removido, Início da abertura do cartão, etc.

Com isso é possível identificar que tipo de operação foi realizada em uma determinada versão. Se o usuário inseriu um registro, esse registro terá uma versão e estará na iLog com o tipo: Registro inserido.

Desfazer iLog

No processo de desfazer log, é possível voltar um registro para os valores antes de uma determinada alteração. Por exemplo: alguém alterou o CPF da pessoa João (000.000.000-00) para 111.111.111-11. Pelo processo de desfazer log é possível voltar ao valor anterior, ou seja, João volta a ter o CPF 000.000.000-00, pois o estado do registro é retornado ao que era antes da alteração.

Para utilizad o processo de Desfazer Log, siga os passos a seguir:

    1. No browser, clicar em Ir para;

    2. Depois na árvore, ir em: Admin;

    3. Na sequência: Log;

    4. Por fim, clicar em: Desfazer ou Refazer Alterações;

    5. Insira os parâmetros para pesquisa de uma alteração. Por padrão é sempre utilizado a versão para voltar ao estado anterior;

    6. Selecione os registros que deseja alterar e depois clique em gravar.

Esse processo é extremamente perigoso pois pode comprometer dados da base, uma vez que poderá desfazer somente parte de uma operação. Referências podem ser perdidas em caso de desfazer uma inserção. Antes de utilizar esse processo, contate o administrador do sistema.

Auditoria através da iLog

Realizar auditoria em um registro é bem simples e irá informar todas as alterações realizadas no registro, desde sua criação. Informando também quem fez alteração, quando e qual foi a alteração. Para realizar a auditoria, pelo browser, basta ir no registro que se deseja verificar e clicar no botão "LOG" presente na grade.

Por exemplo, quero verificar as alterações no cadastro da pessoa João. Devo ir no cadastro de pessoas, na grade que mostra as pessoas devo procurar a pessoao João, selecioná-lo e clicar em "LOG". Com isso, haverá um redirecionamento para um relatório que informará todas as alterações do registro.

Existe outra forma de consultar alterações, seguindo as dicas abaixo:

    1. No browser, clicar em Ir para;

    2. Depois na árvore, ir em Admin;

    3. Na sequência Log;

    4. Por fim, clicar em Auditoria;

    5. Insira os parâmetros para auditoria;

    6. Ao clicar em executar, serão mostradas as alterações.

Limpeza de dados

Após alguns anos de uso, talvez seja necessário diminuir o tamanho da tabela iLog. Obviamente que isto impedirá auditorias sobre os dados removidos. Outro ponto importante sobre os dados da iLog, é que eles são utilizados pela sincronia do cache local durante sua inicialização. Neste ponto, o Engine checa a versão mais recente contida no cache local e, caso existam versão mais recentes que esta na tabela iLog, aquelas serão baixadas e aplicadas no cache local. Por estes dois motivos, os dados removidos devem ser os mais antigos e nunca a tabela inteira.

Para cada classe de dados do sistema, existe uma idade limite predefinida para que o log de dados desta classe permaneça em log. Esta propriedade pode ser definida classe a classe. Trata-se da propriedade "transactionLogMaxDays". Caso ela não seja definida em uma classe, será utilizado o valor de sua classe-mãe. Isto ocorrerá recursivamente até que se encontre uma classe que defina a propriedade.

Embora exista esta configuração, a limpeza de dados não é automática. Para que esta configuração seja materializada, é preciso utilizar o processo UNUM/Admin/Auditoria/Limpar tabela de logs a cada limpeza. As instruções de uso do processo estão no próprio processo.