Boa tarde Aline,
Eu utilizo o modelo abaixo para consumir as informações do ERP direto do banco de dados, este modelo foi encaminhado pela própria TOTVS, pois o modelo anterior conforme informado via chamado, tiveram uma atualização que não permite a utilização de Query em Constraint.
function createDataset(fields, constraints, sortFields) {
var newDataset = DatasetBuilder.newDataset();
log.info("QUERY: " + myQuery);
var dataSource = "/jdbc/sql";/*Informe o nome do serviço do painel de controle*/
var ic = new javax.naming.InitialContext();
var ds = ic.lookup(dataSource);
var created = false;
var myQuery = "SELECT DISTINCT CR_FILIAL AS FILIAL, CR_NUM AS PEDIDO, CR_TIPO AS TIPO, AK_NOME AS NOME FROM SCR010 AS SCR INNER JOIN SAK010 AS SAK ON AK_USER = CR_USER WHERE SCR.D_E_L_E_T_ <> '*' AND SCR.CR_STATUS = '02' ORDER BY CR_NUM";/*Informe a query da requisição*/
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 (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
return newDataset;
}
function onMobileSync(user) {
var sortingFields = [];
var columnCount = rs.getMetaData().getColumnCount();
var constraints = [];
var result = {
'fields': fields,
'constraints': constraints,
'sortingFields': sortingFields
};
return result;
}