Olá, bom dia,
Estou com o seguinte erro:
Criei um dataset que a partir de uma consulta SQL do RM retorna alguns registros; Quando consulto esse dataset através do Eclipse, os registros carregam normalmente, porém, quando realizo a consulta através de um evento do processo, a consulta entra em loop e não carrega nenhum resultado. Vale ressaltar, que já realizei testes não passando nenhum parâmetro no Fields e amarrando o filtro do dataset, e mesmo assim entrou em loop.
Código do dataset:
function createDataset(fields, constraints, sortFields) {
log.info("INICIO CONSULTA UNIDADE");
if (fields != null) {
CODCOLIGADA = fields[0];
log.info("INTEGRAÇÃO WEBSERVICE rm >>> CODCOLIGADA " + CODCOLIGADA);
IDPS = fields[1];
log.info("INTEGRAÇÃO WEBSERVICE rm >>> IDPS " + IDPS);
NUMEROINSCRICAO = fields[2];
log.info("INTEGRAÇÃO WEBSERVICE rm >>> NUMEROINSCRICAO " + NUMEROINSCRICAO);
}
else {
CODCOLIGADA = 47;
IDPS=1;
NUMEROINSCRICAO=22;
}
var INTEGRADOR = "mestre";
log.info("#1 "+INTEGRADOR);
var SENHA = "senha";
//log.info("#2 "+SENHA);
var NOME_SERVICO = "wsConsultaSQL";
log.info("#2 "+NOME_SERVICO);
var CAMINHO_SERVICO = "com.totvs.WsConsultaSQL";
log.info("#3 "+CAMINHO_SERVICO);
var PARAMS ="CODCOLIGADA="+CODCOLIGADA+";"+"IDPS="+IDPS+";"+"NUMEROINSCRICAO="+NUMEROINSCRICAO;
var servico = ServiceManager.getService(NOME_SERVICO);
log.info("#4 "+servico);
var instancia = servico.instantiate(CAMINHO_SERVICO);
log.info("#5 "+instancia);
var ws = instancia.getRMIwsConsultaSQL();
log.info("#6 "+ws);
var serviceHelper = servico.getBean();
log.info("#7 "+serviceHelper);
var authService = serviceHelper.getBasicAuthenticatedClient(ws,"com.totvs.IwsConsultaSQL",INTEGRADOR, SENHA);
log.info("#8 "+authService);
var result = authService.realizarConsultaSQL("TOTVS.PS.COMPL", 47, "S", PARAMS);
log.info("#9 "+result);
var JSONObj = org.json.XML.toJSONObject(result);
log.info("#10 "+JSONObj);
var dados = JSONObj.get("NewDataSet").get("Resultado");
log.info("#11 "+dados);
var cdUnidade;
if (dados.isNull(0)) {
row = dados;
cdUnidade = row.has("UNIDADE") ? row.get("UNIDADE") : "";
log.info("#12.1 "+cdUnidade);
} else {
for (var i = 0; i < dados.length(); i++) {
var registro = dados.get(i);
cdUnidade = registro.get("UNIDADE");
log.info("#12.2 "+cdUnidade);
}
}
var COLUNAS = new Array("CODUNIDADE", "NOMEUNIDADE");
log.info("#13 "+COLUNAS);
var dataset = DatasetBuilder.newDataset();
log.info("#14 "+dataset);
for (var i=0; i < COLUNAS.length; i++ ) {
dataset.addColumn(COLUNAS[i]);
}
log.info("#15 DEPOIS DO FOR");
var PARAMS2 = "CODTABELA=UNIDADES;CODCLIENTE="+cdUnidade;
//var PARAMS2 = "CODTABELA=UNIDADES;CODCLIENTE=01";
var result2 = authService.realizarConsultaSQL("TOTVS.PS.UNIDADE", 47, "S", PARAMS2);
log.info("#16 "+result2);
var JSONObj2 = org.json.XML.toJSONObject(result2);
log.info("#17 "+JSONObj2);
var dados2 = JSONObj2.get("NewDataSet").get("Resultado");
log.info("#18 "+dados2);
if (dados2.isNull(0)) {
row = dados2;
dataset.addRow(new Array(row.has("CODCLIENTE") ? row.get("CODCLIENTE") : "",
row.has("DESCRICAO") ? row.get("DESCRICAO") : ""));
} else {
for (var i = 0; i < dados2.length(); i++) {
var registro = dados2.get(i);
dataset.addRow(new Array(registro.get("CODCLIENTE"), registro.get("DESCRICAO")));
}
}
return dataset;
}
Acompanhando o log, notei que a consulta entra em loop no trecho var result = authService.realizarConsultaSQL("TOTVS.PS.COMPL", 47, "S", PARAMS);
Evento que chama o dataset:
function beforeStateEntry(sequenceId){
if (sequenceId == 7) {
var CODUSUARIOPS = hAPI.getCardValue("CODUSUARIOPS");
var fields = new Array(CODUSUARIOPS);
var datasetDados = DatasetFactory.getDataset("ds-rm-dados-candidato", fields, null, null);
if (datasetDados.rowsCount>0) {
for (var h = 0; h < datasetDados.rowsCount; h++) {
hAPI.setCardValue("DATANASCIMENTO", datasetDados.getValue(h, "DTNASCIMENTO"));
hAPI.setCardValue("UF", datasetDados.getValue(h, "ESTADO"));
hAPI.setCardValue("MUNICIPIO", datasetDados.getValue(h, "CIDADE"));
hAPI.setCardValue("CPF", datasetDados.getValue(h, "CPF"));
hAPI.setCardValue("FONE", datasetDados.getValue(h, "TELEFONE1"));
hAPI.setCardValue("MAIL", datasetDados.getValue(h, "EMAIL"));
}
}
var CPF = hAPI.getCardValue("CPF");
var NOMECURSO = hAPI.getCardValue("CURSO");
var fields = new Array(CPF, NOMECURSO);
var datasetFormacoes = DatasetFactory.getDataset("ds-rm-formacoes-candidato", fields, null, null);
if (datasetFormacoes != null) {
hAPI.setCardValue("JACURSOU", 'sim');
}
else {
hAPI.setCardValue("JACURSOU", 'nao');
}
hAPI.setCardValue("UNIDADEFORMACAO", 'CAMPINAS');
var CODCOLIGADA = hAPI.getCardValue("COLIGADA");
var IDPS = hAPI.getCardValue("IDPS");
var NUMEROINSCRICAO = hAPI.getCardValue("NUMEROINSCRICAO");
var fields = new Array(CODCOLIGADA, IDPS, NUMEROINSCRICAO);
var datasetUnidade = DatasetFactory.getDataset("ds-rm-unidadeformacao-candidato", fields, null, null);
if (datasetUnidade.rowsCount>0) {
for (var h = 0; h < datasetUnidade.rowsCount; h++) {
hAPI.setCardValue("UNIDADEFORMACAO", datasetUnidade.getValue(h, "NOMEUNIDADE"));
}
}
}
}
Att,
Gabriel Firmino