Datasets sincronizados

Eu gostaria de saber por que a função defineStructure() é obrigatória em Datasets Sincronizados e qual o papel dela?
Eu não entendi o conceito.

Pelos exemplos eu não vi como conciliar o método OnSync() com esta função defineStructure().

A documentação de Datasets Sincronizados até que explica bem essa parte.

Sincronização Jornalizada: Este tipo de sincronização permite a atualização e cópia incremental de registros de acordo com o retorno do método onSync do dataset. Através do método defineStructure é possível definir de forma mais detalhada quais são os campos da tabela bem como seus tipos. Também é possível criar índices e uma chave principal para obter ainda mais performance durante as consultas aos dados do dataset. No método OnSync é possível determinar quais são as linhas novas a serem adicionadas na tabela como na sincronização comum. Com os métodos updateRow e deleteRow através da configuração da chave é possível atualizar registros já existentes bem como eliminar registros. Esse modelo é o recomendado para situações em que há uma grande quantidade de dados.

Então imagina que a função defineStructure é um CREATE TABLE no seu banco de dados. Ela vai criar a tabela que salvará as informações sincronizadas.

A função OnSync é onde você fará os inserts, updates e deletes na tabela que foi criada. Então nela você vai pesquisar o banco de dados (provavelmente um externo) ou algum web service pra puxar as informações e então definir se vai inserir o registro, excluir ou atualizar do “cache” que é a tabela que o dataset criou.

1 curtida

Obrigado, Bruno; como sempre prestativo.

Mas, perdoa a ignorância, embora sua explicação já tenha ajudado bastante, eu continuo não encontrando uma utilidade nesse recurso e eu explico porque: eu queria fazer uma espécie de ‘timer’ para me valer da periodicidade do sincronismo para pesquisar aniversariantes num banco de dados externo.
Assim, não me interessa criar tabela interna no Fluig, porque os dados de que preciso já estão guardados no banco de dados externo e seria uma redundância tê-los no Fluig também.

Logo vejo que minha abordagem não é a melhor para meu intento, mas encontrei alguns comentários de que isto eu poderia fazer assim e tentei, sem sucesso.

De qualquer maneira, como eu disse, já ajudou.

Temos que lembrar que a intenção da sincronização de dataset é fazer um cache dos dados carregados externamente, diminuindo assim a espera de consultar um WS a todo momento.

Mas te entendo perfeitamente, @Mautresim. Eu mesmo estou estudando usar sincronização de Dataset pro Fluig criar os usuários diariamente buscando por novos funcionários no RM. No meu caso, ao menos, a tabela servirá pra salvar o último ID do RM e assim agilizar a busca.

Temos outra situação a qual queremos iniciar um processo automaticamente de acordo com a situação do contrato no RM e também imaginei em usar essa abordagem de usar dataset pra isso.

1 curtida

Caro Bruno, embora meio sem saber direito se fiz certo, o resultado é que funcionou para mim. Hoje, às 9 horas, hora do sincronismo agendado, foi enviado o email que eu queria.

2 curtidas

Ja fiz este procedimento @Bruno_Gasparetto !

Vou compartilhar o dataset em um novo Tópico.

Exatamente o mesmo envolvendo contrato no RM.

atenciosamente,

1 curtida