Boa noite Nickolas
Algum problema na comunicação, outros datasets com a mesma características funcionam normalmente?
Aqui na empresa criei no domain uma conexão direta no banco de dados, então eu crio Views customizadas no SQL Server e executo os filtros diretamente nos datasets o Fluig... Isso facilitou muito minha vida.
Documentação relacionada:https://tdn.totvs.com/display/public/fluig/Datasets+acessando+banco+de+dados+externo
Exemplo de dataset para banco de dados externo, "/jdbc/FluigRM" foi a conexão criada no domain.
function createDataset(fields, constraints, sortFields) {
var newDataset = DatasetBuilder.newDataset();
var dataSource = "/jdbc/FluigRM";
var ic = new javax.naming.InitialContext();
var ds = ic.lookup(dataSource);
var created = false;
log.info("QUERY constraints: " + constraints);
var processo = "";
for (var i = 0; i < constraints.length; i++) {
if (constraints[i].fieldName == 'IDMOV') {
processo = constraints[i].initialValue;
}
}
var myQuery = "SELECT DESCRICAO, CODDOCUMENTO FROM _Fluig_GED_TMOV WHERE IDMOV ="+"'"+processo+"'" ;
log.info("QUERY: " + myQuery);
try {
var conn = ds.getConnection();
var stmt = conn.createStatement();
var rs = stmt.executeQuery(myQuery);
var columnCount = rs.getMetaData().getColumnCount();
while (rs.next()) {
if (!created) {
for (var i = 1; i <= columnCount; i++) {
newDataset.addColumn(rs.getMetaData().getColumnName(i));
}
created = true;
}
var Arr = new Array();
for (var i = 1; i <= columnCount; i++) {
var obj = rs.getObject(rs.getMetaData().getColumnName(i));
if (null != obj) {
Arr[i - 1] = rs.getObject(rs.getMetaData().getColumnName(i)).toString();
} else {
Arr[i - 1] = "null";
}
}
newDataset.addRow(Arr);
}
} catch (e) {
log.error("ERRO==============> " + e.message);
} finally {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
return newDataset;
}
/*
function defineStructure() {
}
function onSync(lastSyncDate) {
}
function createDataset(fields, constraints, sortFields) {
}function onMobileSync(user) {
}
*/