Prezados, amigos ...
Tenho o seguinte cenário ..
Num determinado processo existe uma tarefa de serviço que integra a um WS, quando essa atividade falha o fluxo é desviado pelo evento de captura de erro como deve ser ... no meu caso é desviado para um subprocesso de 'Solicitação de Serviço' entretanto eu precisaria passar algumas informações do erro para o subprocesso...
Tentei criar o erro num campo do formulario para depois passar, tentei criar um variavel global, tentei criar um processo via startProcess .. mas em todos os casos devido ao 'throw' que ativa o evento de falha o Fluig faz um rollback que zera todas as variaveis, cancela o startProcess e qualquer tipo de atualização..
Alguém teria alguma ideia de como fazer isso ?
Já tentou colocar uma avanço automático da ativiade que capturou o erro com o rro no campo do formulário para o subprocesso?
Olá William. Realmente se usar o tratamento de erro com throw você perderá qualquer registro que queira manter, por exemplo, a mensagem de erro. Como contorno, eu não uso o throw, para exatamente evitar o "rollback".
Na função do serviço eu registro normalmente o retorno da minha ação (no exemplo, o retorno está no dataset).
Somente preste atenção no desenho do fluxo, pois, o componente do erro você deverá manter, além de colocar um outro fluxo normal para a próxima atividade. No meu caso, eu envio para uma decisão que verifica se ocorreu ou não erro. Veja a figura anexada.
function servicetask841(attempt, message) {
try {
var dataset = DatasetFactory.getDataset("datasetExemplo", null, null, null);
if(dataset.getRowsCount() > 0) {
retorno = dataset.getValue(0,"retorno");
cod_erro = dataset.getValue(0,"cod_erro");
descricao = dataset.getValue(0,"descricao");
if(retorno == "ERRO") {
hAPI.setCardValue('retornoInt','nok');
}else {
hAPI.setCardValue('retornoInt','ok');
}
hAPI.setCardValue('msgInt',cod_erro + "-" + descricao);
}else {
hAPI.setCardValue('retornoInt','nok');
hAPI.setCardValue('msgInt','Algo inesperado ocorreu, não foi possível aprovar o pedido. Tente novamente');
}
}catch(error) {
log.error(error);
hAPI.setCardValue('retornoInt','nok');
hAPI.setCardValue('msgInt',error);
}
}
Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.
Ola Denilson,
Interesante sua abordagem amigo … acho ue pode me ajudar a contornar o meu problema…
Muitissimo obrigado por compartilhar amigo… abraços