# $audit

Esta palavra chave permite auditar alterações às instâncias

# Instalação:

cob-cli customize audit

# Usage:

$audit.[creator|updater].[username|uri|time]<([ignoreRefs:true|false])>

Esta palavra-chave pode ser utilizadada numa definição em uma de duas opções: $audit.creator ou $audit.updater. Cada uma destas opções aceita um de três tipos possíveis de argumentos: username, uri, ou time*. Na prática, existem seis combinações possíveis de utilização desta palavra-chave:

Palavra-chave Descrição
$audit.creator.username quando um utilizador cria um novo registo dessa definição, o valor deste campo será preenchido com o nome de utilizador dessa pessoa.
$audit.creator.uri quando um utilizador cria um novo registo dessa definição, o valor desse campo será preenchido com a referência do UserM dessa pessoa.
$audit.creator.time quando um utilizador cria um novo registo dessa definição, o valor desse campo será preenchido com a data e a hora em que esse registo foi criado.
$audit.updater.username sempre que um registo já existente é gravado e um ou mais campos do registo foram alterados, o valor desse campo será no instante da gravação actualizado com o nome de utilizador da pessoa que gravou essa alteração.
$audit.updater.uri sempre que um registo já existente é gravado e um ou mais campos do registo foram alterados, o valor desse campo será no instante da gravação actualizado com a referência do UserM dessa pessoa.
$audit.updater.time sempre que um registo já existente é alterado e um ou mais campos do registo foram alterados, o valor desse campo será no instante da gravação actualizado com a data e a hora em que essas alterações foram gravadas.
Parâmetro Descrição
ignoreRefs pode ser definido como true ou false - com o valor padrão sendo false. Este parâmetro determina se deve ser aplicada uma auditoria quando um campo referenciado na definição pai é modificado. Por exemplo, $audit.updater.username([ignoreRefs:true]) indica que se o campo referenciado na definição pai for modificado, essas mudanças não serão auditadas na definição atual

Algumas considerações sobre esta palavra-chave:

  • Quando usamos $audit.updater, não basta gravar clicando no botão Save para o valor dos campos caracterizados com esta opção ser actualizado. Em todas as situações é necessário que ocorra uma alteração de facto em um ou mais campos do registo para que o servidor actualize o valor.
  • Os registos criados ou actualizados no IntegrationM não suportam campos do tipo $audit - tanto na opção $audit.creator como na opção $audit.updater.
  • Note que o argumento time só irá funcionar correctamente quando usado num campo em conjunto com a palavra-chave $datetime - por exemplo, $datetime $audit.creator.time ou $datetime $audit.updater.time. Caso contrário, em vez de uma data e uma hora, a plataforma irá preencher o campo da instância com um número (o número de milisegundos desde 1/1/1970).
  • Uma vez que a palavra-passe tem efeitos tanto a nível do front-end como do back-end, se um utilizador editar em grupo dois ou mais registos da definição todos estes registos serão imediatamente actualizados com o nome desse utilizador.

# Example:

# 1. Auditando o utilizador que fez a última alteração

$extRef(userm, /userm/user/search?q={{this}}*) $audit.updater.uri

Um cenário de utilização típica desta palavra-chave consiste na utilização da opção updater.uri juntamente com a palavra-chave $extRef, tendo por argumento uma referência no UserM

# 2. Saber a data da última alteração

$datetime $audit.updater.time