Olá Fluiggers, tudo bom ?
Então, estou com um pequeno problema.
Tenho um dataset sincronizado que consulta informações no RM, esse dataset tem dado problema nos casos de sincronização em horários de pico, devido indisponibilidade do RM, oque me gera muitos problemas. Pensando em resolver isso, optei por criar um segundo dataset, dessa vez jornalizado que irá sincronizar com esse primeiro dataset, basicamente atualizando os registros e garantindo a disponibilidade em 100% do tempo, ai que surge um novo problema:
Estou tendo dificuldade para remover linhas, a parte de update e add de novas linhas no dataset jornalizado funciona como esperado, porém como eu desenvolvo a lógica de remover as linhas que não existem mais no dataset base que é sincronizado com o RM? Eu tento verificar pela coluna key, analisando qual está atualmente no dataset jornalizado e que não existe mais no dataset base e deletar essa row, oque deveria funcionar, em tese, mas eu não consigo acessar iterar sobre as rows do dataset jornalizado durante a sincronização, como eu consigo acessar os dados que estão atualmente no dataset jornalizado, no ato da sincronização ? existe alguma forma mais facil de fazer isso ?
código:
function defineStructure() {
var key = [x];
objColumn.forEach(function (row) {
var type = undefined;
if (row.TYPE == "NUMBER") {
type = DatasetFieldType.NUMBER;
}
if (row.KEY) {
key.push(row.NAME);
}
addColumn(row.NAME, type);
});
if (key.length > 0) {
setKey(key);
}
}
function onSync(lastSyncDate) {
var dataset = DatasetBuilder.newDataset();
var keys =
var ret = DatasetFactory.getDataset(“dsConsultaContrato”, null, null, null);
for (var i = 0; i < ret.rowsCount; i++) {
var array = [];
var keyIDCNT = ret.getValue(i, "IDCNT");
var keyNSEQITMCNT = ret.getValue(i, "NSEQITMCNT");
var keyComposta = keyIDCNT + "|" + keyNSEQITMCNT;
keys.push(keyComposta)
objColumn.forEach(function (row) {
var ref = row.NAME;
var value = ret.getValue(i, ref);
array.push(value);
});
dataset.addOrUpdateRow(array);
}
log.dir(dataset.rowsCount)
for (var i = 0; i < dataset.rowsCount; i++) {
var keyIDCNT = dataset.getValue(i, "IDCNT");
var keyNSEQITMCNT = dataset.getValue(i, "NSEQITMCNT");
var key = keyIDCNT + "|" + keyNSEQITMCNT;
if (newKeys.indexOf(key) == -1) {
var array = [];
objColumn.forEach(function (row) {
var ref = row.NAME;
var value = dataset.getValue(i, ref);
array.push(value);
});
dataset.deleteRow(array);
i--;
}
}
return dataset;
}
function createDataset(fields, constraints, sortFields) {
}
function onMobileSync(user) {
}
ps: o log que existe entre os dois loops for me retorna 0.