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!.
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;
Conseguiu resolver?
— Carlos Moura 07 de Nov de 2017@Carlos, não, ainda não.
— Otto Mostaert 08 de Nov de 2017