Bom dia, preciso popular um dataset sincronizado com dados de sistema externo, já consulto o dados de forma tranquila, só que quando vou configurar para sincronizar aparece o seguinte erro:
sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "consultaRM" is not defined. (#23) in at line number 23
Alguém tem alguma solução?
Segue abaixo meu código
function defineStructure() { addColumn("NOME"); addColumn("SETOR"); setKey(["NOME"]); addIndex(["NOME"]); }
function onSync(lastSyncDate) { var today = new Date();
var funcionarios = new Array();
var dataset = DatasetBuilder.newDataset();
var fields = new Array();
fields.push("NOME"); fields.push("SETOR");
//Linha 93 funcionarios = consultaHCM();
var number = funcionarios.length;
for(var i=0; i<funcionarios.length; i++) { var separador = funcionarios[i].split(";"); var nome = separador[0]; var setor = separador[1];
dataset.addOrUpdateRow(new Array(nome, setor));
if(consultaCadastroRepetido(nome, setor)) { //NÃO CRIA REGISTRO log.info("CADASTRO REPETIDO"); } else { //CRIAR REGISTRO //Linha 193 iniciaSolicitacaoCadastro(nome,setor); } }
return dataset; }
function createDataset(fields, constraints, sortFields) { var dataset = DatasetBuilder.newDataset();
try{ //ESCOLHE O BANCO DE DADOS var dataSource = "jdbc/JDBC_Folha_Oracle"; // var orderBy = " ORDER BY fun.NomFun "; var orderBy = " ORDER BY fun.NumCad ";
var ic = new javax.naming.InitialContext(); var ds = ic.lookup(dataSource); var conn = ds.getConnection(); var stmt = conn.createStatement(); var created = false;
var myQuery = " SELECT fun.NumEmp AS NUMEMP , CONCAT(fun.NumCad , concat (' - ', fun.NomFun)) AS COD_NOME, fun.NumCad AS NUMCAD , fun.NomFun AS NOMFUN, fun.SitAfa AS SITAFA, car.CODCAR, car.TitCar AS TITCAR, fun.CodFil AS CODFIL \ FROM R034FUN fun , R024CAR car WHERE fun.SitAfa NOT IN ( 7,17 ) AND fun.TipCol = 1 AND fun.EstCar = car.EstCar AND fun.CodCar = car.CodCar ";
if (constraints != null) { for (i in constraints) { var opeLogicos = " AND "; if (constraints[i].getConstraintType() == "MUST" || constraints[i].getConstraintType() == "MUST_NOT") opeLogicos = " AND "; else if (constraints[i].getConstraintType() == "SHOULD") opeLogicos = " OR ";
var operadores = ""; if (constraints[i].getConstraintType() == "MUST") operadores = " = "; else if (constraints[i].getConstraintType() == "SHOULD") operadores = " LIKE "; else if (constraints[i].getConstraintType() == "MUST_NOT") operadores = " <> ";
if (i == 0) myQuery += " AND "; else { myQuery += opeLogicos == "" ? "" : opeLogicos; } if( constraints[i].getFieldName() == 'sqlLimit' ){ myQuery += " ROWNUM <= '" + constraints[i].getInitialValue() + "'"; }else myQuery += constraints[i].getFieldName() + operadores + " '" + constraints[i].getInitialValue() + "'";
} } myQuery = myQuery + orderBy; log.info("DataSet R034FUN myQuery " + myQuery ); var rs = stmt.executeQuery(myQuery);
var columnCount = rs.getMetaData().getColumnCount(); while (rs.next()) { if (!created) { for (var i = 1; i <= columnCount; i++) { dataset.addColumn(rs.getMetaData().getColumnName(i)); } created = true; } var Arr = new Array(); for (var i = 1; i <= columnCount; i++) { var obj = rs.getObject(i); if (null != obj) { Arr[i - 1] = rs.getObject(i).toString(); } else { Arr[i - 1] = ""; } } dataset.addRow(Arr); }
} catch (e) { log.error("ERRO DataSet R034FUN ============> " + e.message);
}finally{ if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } }
return dataset;
function onMobileSync(user) {
}
function consultaHCM() { var NOME_SERVICO = "WsConsultaSQL"; var CAMINHO_SERVICO = "com.totvs.WsConsultaSQL";
var funcionarios = new Array();
try { var servico = ServiceManager.getServiceInstance(NOME_SERVICO); var instancia = servico.instantiate(CAMINHO_SERVICO); var ws = instancia.getRMIwsConsultaSQL(); var serviceHelper = servico.getBean(); var authService = serviceHelper.getBasicAuthenticatedClient(ws, "com.totvs.IwsConsultaSQL", 'LOGIN', 'SENHA');
/* O método realizarConsultaSQL espera 4 parametros: 1º - Código da Consulta SQL cadastrada no sistema 2º - Código da Coligada 3º - Código do Sistema 4º - Parametros utilizados na consulta SQL. Ex.: "CODCOLIGADA=1;UF=MG" Retorno: Um XML de um DataTable do retorno da execução da consulta SQL /
var result = authService.realizarConsultaSQL("SQL.FLUIG.006", 1, "P", "1=1"); if ((result != null) && (result.indexOf("===") != -1)) { var msgErro = result.substring(0, result.indexOf("===")); log.error("Erro: " + msgErro); throw "Erro: " + msgErro; }
var xmlResultados = new XML(result);
for(var j = 0; j < xmlResultados.Resultado.length(); j++) { funcionarios[j] = xmlResultados.Resultado[j].NOME.toString() + ";" + xmlResultados.Resultado[j].DESCRICAO.toString() + ";" + xmlResultados.Resultado[j].INICPROGFERIAS1.toString() + ";" + xmlResultados.Resultado[j].FIMPROGFERIAS1.toString(); } }
catch (e) { if (e == null) e = "Erro desconhecido; verifique o log do AppServer"; var mensagemErro = "Erro na comunicação com o app (linha: " + e.lineNumber + "): " + e; log.error(mensagemErro); }
return funcionarios;
}
function consultaRegistroForm(nome, setor) { //CONSULTA SE JÁ EXISTE CADASTRO COM O NOME DO FUNCIONARIO DE FERIAS
var c1 = DatasetFactory.createConstraint('nomeFuncionario', nome, nome, ConstraintType.MUST);
for(var i=0;i<ds.rowsCount;i++) { var nomeDs = c1.getValue(i, "nomeFuncionario");
if(nome == nomeDs) { //Já existe registro de manutencao preventiva feita //Verificar se passou de 6 meses ou ainda nao //Manutencao preventiva é feita a cada 6 meses //Linha 232 var ultimoCadastro = c1.getValue(i, "dataManutencao");
if(verificaExisteCadastro(nome, setor)) { return false; } else { return true; } } }
return false; }
// Se o novo cadastro no HCM ainda não existe no fluig essa função irá criar
function iniciaSolicitacaoCadastro(nome, setor) { //CRIAR SOLICITAÇÃO var login = "login"; var senha = "senha"; var idResponsavel = "fluigadmin" var solics = "";
try { var workflow = ServiceManager.getService("wsWorkflowEngineService"); var serviceHelper = workflow.getBean();
var serviceLocator = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.ECMWorkflowEngineServiceService");
var service = serviceLocator.getWorkflowEngineServicePort();
var resultArr = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.KeyValueDtoArray");
var x = 0; var field = new Array();
var formDescritor = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.KeyValueDto");
var descricao = "Solicitação de teste"; formDescritor.setKey("formDescritor"); formDescritor.setValue(descricao); resultArr.getItem().add(formDescritor);
field[x] = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.KeyValueDto"); field[x].setKey("nomeFuncionario"); field[x].setValue(nome); resultArr.getItem().add(field[x]);
field[x] = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.KeyValueDto"); field[x].setKey("setor"); field[x].setValue(setor); resultArr.getItem().add(field[x]);
field[x] = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.KeyValueDto"); field[x].setKey("isManual"); field[x].setValue(false); resultArr.getItem().add(field[x]);
var userArray = serviceHelper.instantiate("net.java.dev.jaxb.array.StringArray"); userArray.getItem().add("Pool:Group:NPD");
var processAttachmentDtoArray = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.ProcessAttachmentDtoArray"); var appointment = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.ProcessTaskAppointmentDtoArray");
var ret = service.startProcessClassic(login, senha, 1, "procManutencaoPreventivaComputadores", 5, userArray, "", idResponsavel, true, processAttachmentDtoArray, resultArr, appointment, false); } catch (e) { log.error("######### "+e); } }
function consultaRegistroRepetido(nome, setor, inicio_ferias, fim_ferias) {
var c1 = DatasetFactory.createConstraint('nomeFuncionario', nome, nome, ConstraintType.MUST);
for(var i=0;i<ds.rowsCount;i++) { return true; }
return false; } }