M410STTS - Alterações no Pedido de Venda

Olá, tudo bem?

Gostaria de saber como eu posso verificar se um campo foi alterado? hoje uso a SC9 de referência, porém não sei por onde começar. Por exemplo, na rotina análise de crédito , quero verificar um pedido que foi liberado manual, porém por algum motivo de alteração, ele volta para rejeitado ou bloquado, queria que poos alteração, ele dispara workflow o informando usuário.

1 curtida

Gustavo infelizmente isso só é possível após a gravação dos dados caso você tenha algum tipo de auditoria ou grave os campos que deseja auditar em outro local para comparar. Tipo criar uma tabela de auditoria e gravar quais campos foram alterados (usando um P.E. antes da gravação para poder comparar o conteúdo de memória com a tabela gravada).

se a tabela tiver os campos LGI/LGA você consegue ver quem incluiu/alterou e quando mas infelizmente não o que.
Para manter um histórico de alterações é sempre recomendado utilizar o Audit Trail do próprio Protheus, ele cria uma replica do registro pelo RECNO indicando os campos alterados, você pode escolher para qual tabela ativar e quais campos da tabela quer monitorar.

Importante frisar que ativar o Audit Trail para todos os campos das tabelas e para tabelas que expandem com muita velocidade podem aumentar muito o consumo de armazenamento do seu banco de dados.

Framework - Linha Protheus - Embedded Audit Trail – Central de Atendimento TOTVS

Olá,

A única forma que você 100% garantida é o uso de triggers, todas as demais formas, como pontos de entrada, LGI/LGA tem suas limitações.

Somente triggers vão ser executadas independente da forma que o registro é alterado, seja diretamente no banco, via APSDU, TCSqlExec, RecLock etc.

Hoje a TOTVS possui o Embedded Audit Trail que trabalha com triggers e possui API para geração de relatórios, pode ser uma possibilidade, mas você teria que criar algum JOB por conta que faz a leitura constante da API para verificar as possíveis alterações e assim dar início ao seu Workflow, disparo de e-mail ou utilizando o Event Viewer.

Porém se sua situação é muito específica, talvez uma implementação diretamente no banco de dados seja a solução, novamente, utilizando de triggers.

Documentações:
Embedded Audit Trail - Frameworksp - TDN
Event Viewer - Frameworksp - TDN