Acessar WebService externo via Workflow Scripts

Olá a todos,

Estou precisando acessar um WebService externo por dentro de um script afterTaskComplete do workflow.

Alguém tem alguma solução?

Tentei via esse tutorial totvs http://tdn.totvs.com/pages/releaseview.action?pageId=239041233#OAuth1--2101383534

mas estou recebendo um erro "unable to find valid certification path to requested target"

Alguém tem alguma solução rápida ?

Meu código atual:


function afterTaskComplete(colleagueId,nextSequenceId,userList){
    try{
    log.info("##### afterTaskComplete - teste REST");
        var clientService = fluigAPI.getAuthorizeClientService();
        var data = {
            companyId : getValue("WKCompany") + '',
            serviceCode : 'CUP',
            endpoint : 'produto/inativa',
            method : 'post',// 'delete', 'patch', 'put', 'get'     
            timeoutService: '100', // segundos
            params : {
                extData :{
                    'idt_produtos':'1474'
                }
            }
        }

        var vo = clientService.invoke(JSON.stringify(data));

        if(vo.getResult()== null || vo.getResult().isEmpty()){
            log.info("##### Retorno está vazio");
        }else{
            log.info("##### resultado");
            log.info(vo.getResult());
        }
    } catch(err) {
        throw new Exception(err);
    }
}

Alguma luz? obrigado

Esse endpoint está rodando no servidor do fluig? Você consegue consumir esse serviço por outra ferramenta?

Marcos, esse servidor fica sim no servidor do Fluig e consigo acessar normalmente pelo próprio chrome os métodos GETS e via POSTMAN os métodos POST.

Aparentemente esse REST está em https, é isso?

Se for esse o caso, atualmente esse client da FluigAPI não consegue tratar SSL devido ao java 8.

A partir da 1.6.4 existirá uma opção para efetuar o tratamento.

De momento você pode tentar algo paliativo como utilizar o HttpClient da apache diretamente no seu JS, setando o SSL.

Algo semelhante ao código abaixo:


     var client = org.apache.http.impl.client.HttpClients.custom()
          .setSSLHostnameVerifier(new org.apache.http.conn.ssl.NoopHostnameVerifier()).build();

     var post = new org.apache.http.client.methods.HttpPost("https://[meu-rest]");

     var params = {
         extData :{
             'idt_produtos':'1474'
         }
     }

     var entity = new org.apache.http.entity.StringEntity(JSON.stringify(params));
     entity.setContentType("application/json");

     post.setEntity(entity);

     var response = client.execute(post);

     log.info(org.apache.http.util.EntityUtils.toString(response.getEntity()));

Galli, conseguiu resolver este problema?

Consegue compartilhar seu código, por favor?