Bom dia pessoal.
Tenho uma integração funcionando entre o Fluig e o RM. Basicamente, ao encerrar um fluxo BPM no Fluig, é gravado uma autorização de hora extra no RM.
O problema é que nem todas estão sendo gravadas. Acredito que devido a indisponibilidade, ou lentidão, do host ou tbc. Só que mesmo isso acontecendo, o processo é finalizado, o que gera uma confusão com o usuário (processo finalizado como aprovado, mas informação não gravada no RM).
A integração está acontecendo no evento de afterTaskComplete.
Como vocês checam se a gravação aconteceu realmente? O correto é realizar uma leitura após a gravação? Ou há como pegar o erro na gravação e parar o processo?
Obrigado!
Olá Marcus. Acredito que o RM deve retornar algum erro quando a gravação não ocorre, você pode verificar no seu log ou fazendo um try/catch no seu script. No caso de ter um erro retornado, o problema é que o evento afterTaskComplete não interrompe o processo em casos de erro. Uma opção seria utilizar o evento beforeStateEntry na sua atividade final, pois esse evento interrompe a execução caso seja lançado algum throw com erro
— Diogo Boegershausen 02 de May de 2019Obrigado pela resposta Diogo. Foi difícil achar o retorno, no final, depois de muita analise do log, vi que o retorno acontecia em dataset.values[0][1] . Sua resposta me deu algumas pistas, e no final acabei usando o evento beforeTaskSave, no caso, se 3 tentativas fossem realizadas e o retorno do dataset não fosse 'true' (string mesmo), ai era lançado um throw.
— Marcus Sabino 22 de May de 2019