Versão atual:

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;

Versão (1):

Ver a versão formatada

Aumentar timeout do dataset - Consulta ao Protheus

Comentário

new question