sicronização automática dataset

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; } }

compartilhar
  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!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags datasets-customizados datasets sincronizado sincronizacao integracao ou faça a sua própria pergunta.