Aumentar timeout do dataset - Consulta ao Protheus

Prezados, bom dia.

Tenho um dataset que lê os dados de um serviço do protheus. Nesse meu dataset, eu faço um while de 0 a 5 de tentativas para consumir esse serviço. caso uma tentativa falhe, espero 3 segundos para ir para a próxima tentativa.

caso chegue na última tentativa e não consiga, eu retorno o dataset com a coluna de mensagem de erro informando que não foi possível carregar os dados do protheus.

O problema ao testar, é que devido ao tempo total (3 segundos em cada tentativa), recebo a mensagem: Erro ao recuperar dados do dataset: Tempo de resposta excedido!.

pam.png

Como posso aumentar esse "tempo"?

exemplo da rotina:


    try{
//        var empresa = getParametroStr(constraints, 'EMPRESA');
//        var filial = getParametroStr(constraints, 'FILIAL');
//        var contrato = getParametroStr(constraints, 'NUMERO');
//        var revisao = getParametroStr(constraints, 'REVISAO');


        var empresa = "01";
        var filial = "2S";
        var contrato = "000000000000001";
        var revisao = "";        

        var total = 5;
        var tentativas = 0;

        while (tentativas <= total){
            try{
                var service = ServiceManager.getServiceInstance("WS_PROTHEUS_CONTRATO");
                var helper = service.getBean();
                var locator = helper.instantiate("com.mostaert.dc01_hom329._10000.ROMREADCONTRATOS");
                var endpoint = locator.getROMREADCONTRATOSSOAP();
                var result = endpoint.consCABCONTRATOS(contrato, revisao);
                var lista = result.getCABECALHO();
                for (var i = 0; i < lista.size(); i++){
                    var item = lista.get(i);

                    dataset.addRow(new Array(
                            filial,
                            trim(item.getCONTRATO()),
                            trim(item.getESPECIE()),
                            trim(item.getREVISAO()),
                            trim(item.getREVATUAL()),
                            item.getDTREVISAO(),
                            item.getDTINICIO(),
                            item.getDTFINAL(),
                            trim(item.getVIGENCIA()),
                            item.getDTVIGENCIA(),
                            item.getVALORINICIAL(),
                            item.getVALORATUAL(),
                            item.getSALDO(),
                            trim(item.getELABORADOR()),
                            trim(item.getOBJETO()),
                            trim(item.getJUSTIFICATIVA()),
                            item.getVLADITIVO(),
                            item.getDTREAJUSTE(),
                            item.getVLREAJUSTE()
                    ));
                } // for
                break; // deu certo, então sai do laço de tentativas
            } catch(e){
                // não faz nada, vai pra próxima tentativa
                log.info("Erro ["+tentativas+"/"+total+"] Dados do contrato-revisao: " + e);
                sleep(3000);
            }
            tentativas++;
        } // while 
        if (tentativas > total) {
            throw  "Não foi possivel carregar as informações.";
        }
    }catch(e){
        var mensagemErro = "Erro na comunicação com o Serviço do Protheus " + e;
        log.info("dsAC2DadosContrato.createDataset: "+mensagemErro);

        dataset = DatasetBuilder.newDataset();
        dataset.addColumn("ERROR");
        dataset.addColumn("MESSAGE_ERROR");
        dataset.addRow(new Array(-1, mensagemErro));    
    } // try catch
    return dataset;
compartilhar
  • Conseguiu resolver?

    Carlos Moura   07 de Nov de 2017
  • @Carlos, não, ainda não.

    Otto Mostaert   08 de Nov de 2017
Anexos
  • pam.png
    1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
    2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
    3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
    4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
    5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

    1 resposta

    Não é a resposta que estava procurando? Procure outras perguntas com as tags datasets dataset protheus timeout ou faça a sua própria pergunta.