Bom dia!
Estou tentando criar um dataset sincronizado, entretanto o dataset que busco as informações não retorna nenhum registro na função onSync, mas o mesmo código na função createDataset retorna os registros. Alguém poderia me auxiliar com isso? Obrigado!
function defineStructure() {
addColumn("CODFIL");
addColumn("FILIAL");
setKey(["CODFIL"]);
}
function onSync(lastSyncDate) {
var dataset = DatasetBuilder.newDataset();
var const_fiscal = new Array();
var ds_fiscal = DatasetFactory.getDataset("ds_SM0", null, null, null);
console.log(ds_fiscal.rowsCount);
for (var i = 0; i < ds_fiscal.rowsCount; i++) {
dataset.addRow(new Array(
ds_fiscal.getValue(i, 'CODFIL'),
ds_fiscal.getValue(i, 'FILIAL')));
}
return dataset;
}
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("CODFIL");
dataset.addColumn("FILIAL");
var const_fiscal = new Array();
var ds_fiscal = DatasetFactory.getDataset("ds_SM0", null, null, null);
console.log(ds_fiscal.rowsCount);
for (var i = 0; i < ds_fiscal.rowsCount; i++) {
dataset.addRow(new Array(
ds_fiscal.getValue(i, 'CODFIL'),
ds_fiscal.getValue(i, 'FILIAL')));
console.log(ds_fiscal.getValue(i, 'FILIAL'));
}
return dataset;
}
@Gustavo,
- Para a transferência de dados do dataset para a tabela, deverá ser definida a função onSync que será chamada a cada execução da tarefa agendada.
- Para que a sincronização aconteça deve ser criada uma tarefa no Agendador de tarefas do fluig com o tipo 'Sincronização de dataset', selecionando qual dataset deverá ser sincronizado e em que período.
- Dentro da função onSync deverá ser criado um objeto do tipo dataset onde as novas linhas deverão ser adicionadas pelo método addRow e linhas a serem atualizadas ou removidas pelos métodos updateRow e deleteRow, respectivamente.
- Os métodos updateRow e deleteRow recebem uma lista de objetos que são os valores das linhas (da mesma forma que já ocorre com o método addRow).
Mais detalhes e exemplo de onSync aqui.
Eu realizei os procedimentos citados, o problema é que DatasetFactory.getDataset no método onSync quando debugo não retorna nenhuma linha. Tem alguma tratativa adicional para isso? Porque no createDataset ele retorna.
O método onSync utiliza o service, é diferente do que vc tentou, pode olhar exemplo completo aqui: Sincronização de datasets - TOTVS Fluig - TDN
Perfeito, não tinha o conhecimento de que não podia usar um dataset como origem do carregamento. Obrigado!