Consultar o registro via SQL do próprio processo no banco de dados durante a execução do evento (sem usar o hAPI)

Boa Noite, @comunidade

Problema: Preciso saber se existe um evento que seria um "afterCommit", ou seja, um evento que ocorra após o registro ser salvo dentro do banco de dados. Precisaria desse evento no momento da criação do processo.

Motivo: Preciso integrar com outro sistema no momento da criação do processo (preciso integrar os registros filhos).

Acredito que uma alternativa seria utilizar o hAPI e realizar diversas consultas à outros sistemas em busca dos dados/PKs/FKs para utilizar na integração para somente depois realizar a integração. (Acho isso pouco eficiente considerando a complexidade do projeto e da integração).

Portanto, gostaria de consultar o registro do próprio processo pois assim poderia relaciona-lo com outras tabelas e sistemas e assim "resolver" tudo através de uma unica consulta SQL, retornando para o fluig todos os dados "prontos" para a integração, e o fluig faria o papel de apenas "enviar" os dados.

Exemplo (que não funcionou): 1. Preencho os dados do formulário e clico em Enviar. 2. Dentro do evento beforeTaskSave, executo uma consulta SQL passando como parâmetro o WKNumProces. 3. Porem como o registro ainda não foi salvo no banco, a consulta retorna "zerada".

Exemplo (gostaria que funcionaria): 1. Preencho os dados do formulário e clico em Enviar. 2. Dentro do evento "afterCommit", executo uma consulta SQL passando como parâmetro o WKNumProces. 3. O registros já estaria no banco de dados e seria possível usa-lo em consultas SQL.

Acredito que o grande problema aqui é o fato dessa integração ter que ser no inicio do processo, se pudesse ser em uma atividade mais avançada, a consulta funcionaria normalmente.

Acredito que deva ter uma forma de fazer isso mas eu desconheço.

Att,

Guilherme, há vários eventos de processo que podem te ajudar. Alguns deles: afterStateEntry, afterTaskSave, afterTaskComplete e o onNotify. Você utilizou o evento beforeStateEntry (que ocorre ANTES de salvar as informações), os eventos de nome after é que são responsáveis por executar algo APÓS.

Segue a documentação referente a eventos de processos.

https://tdn.totvs.com/display/public/fluig/Eventos+de+Processos

Espero ter ajudado, boa sorte!

Entendi Alef, eu tenho conhecimento desses eventos, porem a duvida é exatamente essa. Mesmo usando os eventos “APÓS” o registro parece que ainda não foi “commitado” no banco de dados. Eu ainda vou fazer alguns testes para verificar essa condição, quando eu tiver os resultados posto aqui.

Fala, Guilherme, resolveu a bronca?

Fala Alef, para esse problema eu acabei fazendo um laço para cada item e realizando realizando a lógica que eu precisava. Era uma questão de cálculo de previsão de pagamento que impactava o orçamento, porem por item do processo. Então na época eu queria aproveitar o próprio registro do Fluig e pegar os filhos. Eu entendi que os “after” ocorrem depois que o processo é salvo, porem eu não consegui obter o registro via SQL do próprio processo que “teoricamente” já teria sido salvo. Obrigado.