Atividade de Serviço para Subprocesso

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); 
    }        
}

:warning: 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