Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

A sincronização de datasets tem como objetivo reduzir o número de acessos a serviços de dados fornecidos por produtos externos ao fluig. É uma prática comum trazer dados de sistemas externos para complementar informações do formulário de um processo ou realizar validações em eventos com base nas informações retornadas por este dataset.

Exemplificando

Em um exemplo mais específico, vamos supor que o usuário precisa informar no formulário de seu processo o centro de custo e que a lista dos centros de custo válidos está disponível em um sistema externo. Para que este usuário consiga informar um centro de custo válido, será necessário:

...


Existem três tipos de sincronização com datasets:

  • Sincronização Comum: Este tipo de sincronização pode ser feita com qualquer dataset já implementado na plataforma. Neste modelo de sincronização toda vez que a tarefa agendada de sincronização de datasets for executada será criada uma nova tabela e todos os registros retornados pelo método createDataset serão copiados para esta nova tabela. A tabela anterior será removida do banco. Esse modelo não é recomendado para datasets que retornam muitos registros.

  • 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.

  • Sincronização mobile: Este modelo de sincronização pode ser utilizado com qualquer dataset, seja ele sincronizado no servidor ou não, e permite a cópia local dos registros de um dataset em um dispositivo mobile que sincronize de forma offline com o fluig. Os prazos de sincronização são configurados no aplicativo fluig Mobile.

    Nota
    titleAtenção

    Novos dados criados em dispositivos móveis, quando utilizando o modo offline, só estarão disponíveis para consulta em outros formulários depois que o aplicativo móvel passar por um processo de sincronização com o servidor do fluig. Para entender mais sobre este processo, acesse nesta página o passo Configurando sincronização de datasets.

Desenvolvendo um dataset com sincronização jornalizada

...

Definindo a estrutura do dataset

Para definir a estrutura de um dataset jornalizado é necessário definir a estrutura fixa da tabela no código do dataset. Para isso no código do dataset deverá ser criado o método defineStructure.

...

Nota
titleImportante
  • A função defineStructure é obrigatória para configuração do dataset offline. Dentro do defineStructure, os nomes informados nos métodos coluna (addColumn), chave (setKey) e índice (addIndex) devem ser sempre em maiúsculo. Para visualizar os exemplos clique aqui.
  • O tipo de campo DatasetFieldType.TEXT foi introduzido na Atualização 1.6.1 da plataforma fluig. Este tipo foi desenvolvido especificamente para sincronização de datasets em ambientes que utilizam o banco de dados Oracle, onde o tipo DatasetFieldType.STRING é limitado a apenas 255 caracteres. O tipo de campo TEXT em Oracle suporta até 4000 caracteres. Em ambientes MySQL e SQL Server, não há distinção no comportamento dos tipos TEXT e STRING.
  • Na atualização do dataset, caso ocorra qualquer alteração neste método que indique alteração da estrutura da tabela, ocorrerá o drop da tabela antiga e todos os dados anteriores a esta alteração serão perdidos. A alteração de estrutura da tabela ocorrerá na próxima execução da tarefa agendada de sincronização do dataset.

  • Lembre-se que os nomes das colunas dos datasets serão os nomes das colunas criadas em banco. Lembre-se de considerar as regras de nomenclatura de campos do seu banco. Não utilizar espaços em branco no nome ou caracteres especiais como (!@#$%-+=, etc) ou palavras reservadas do banco. Caso utilize a nomenclatura não permitida, não será possível sincronizar os dados na tabela.

  • Não definir um campo com o nome ID. Internamente a sincronização cria um campo com este nome para fins de paginação e gerenciamento de registros. Ao criar uma metalista com este nome ocorrerá um erro de campo duplicado ao tentar criar a tabela de sincronização.
  • Os comandos AddIndex e AddKey não irão gerar índices nas tabelas de bancos de dados SQL Server. Os comandos podem ser implementados no código do porém os índices de tabela deverão ser criados via ferramenta de administração do banco. Os campos informados no comando addKey serão utilizados como campos para controle de registros duplicados e nas operação de adição, remoção e modificação de registros.


Sincronização de informações

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.

...

Bloco de código
languagejavascript
themeEclipse
firstline1
linenumberstrue
function onSync(lastSyncDate) {
	var dataset = DatasetBuilder.newDataset();
	dataset.addRow(new Array(2256, "SÃO PAULO", 1058, "6", "ESPORTE"));
    dataset.addRow(new Array(1874, "RECIFE", 1258, "1247690",  "2", "CALÇADOS"));
    dataset.addRow(new Array(1205, "RIO DE JANEIRO", 2594, "10", "MOVEIS"));
    dataset.addRow(new Array(985, "FLORIANOPOLIS", 2269, "10", , "ELETRONICOS"));

	return dataset;
}


Como funciona a sincronização das informações

A forma como os dados são inseridos na base de dados é gerida pelo fluig e desta forma o momento em que os registros são inseridos, editados ou excluídos no código do dataset, não é exatamente o mesmo momento em que, na prática, essas operações serão realizadas. Com isso, a importância em saber como funciona a sincronização e gravação de informações do dataset para tabelas de banco de dados é de utilidade geral.

...

Isso é necessário para que as alterações e efetivações de registros no banco sejam gerenciadas pelo fluig, afim de garantir melhor performance e obter um tempo reduzido na sincronização de informações.


Cache de dados no mobile

Quando se tem em mente um dispositivo móvel, imediatamente surge a questão do espaço ocupado por uma aplicação. A função onMobileSync é chamada apenas durante a atualização de um dataset offline já existente. 

...

Bloco de código
languagejavascript
themeEclipse
firstline1
linenumberstrue
 function onMobileSync(user) {
	var sortFields = new Array();
	var constraintTitulo1 = DatasetFactory.createConstraint('CE_CODIGO',
			'1', '1', ConstraintType.MUST);
	var constraints = new Array(constraintTitulo1);
		
	var colunastitulo = new Array('CE_CODIGO', 'CE_LOJA', 'CE_NUMTIT', 'CE_PARCELA',
			'CE_PARCELA');
	var result = {
		'fields' : colunastitulo,
		'constraints' : constraints,
		'sortFields' : sortFields
	};
	return result;
} 


Acessando um Dataset com sincronização sincronização

...

O acesso a datasets sincronizados, seja ele jornalizado ou não, permanece exatamente igual ao acesso de qualquer dataset, não sendo necessário passar nenhum parâmetro extra.

Configurando a sincronização de datasets datasets

...

A partir da atualização 1.6.2 o Painel de controle disponibiliza a opção Datasets, com uma listagem de todos os datasets cadastrados no fluig. Nessa tela é possível:

...

Figura 3 - Tela de dataset na atualização 1.6.5

Configurando comportamento de acesso a datasets em dispositivos mobile

É possível definir como será o comportamento do dispositivo mobile para realização do cache de informações, bem como o acesso a essas informações de acordo com o estado do dispositivo. Para isso, acione o link da coluna Offline mobile.


Image ModifiedFigura 4 - Tela de Comportamento Mobile do dataset

...

Utilize os botão salvar para confirmar as alterações. 

Configurando sincronização de dados para o servidor do fluig

Para definir que determinado dataset irá sincronizar as linhas obtidas para dentro de uma tabela fluig, é preciso clicar no link da coluna "Sincronização", que abre a tela abaixo.

...

Figura 5 - Tela de Sincronização do dataset com o servidor


A opção "Sincronizar com o servidor?" irá ativar o modo de sincronia de dados no servidor.

Nota

Ao desligar a sincronização de um dataset que estava sendo sincronizado e jornalizado, lembre-se que as tabelas que abrigam os dados e as tarefas de sincronização serão removidas e que, por consequência, todos os dados sincronizados até aquele momento serão perdidos. Com a sincronização desligada, os dados que serão listados para este dataset são os dados obtidos pelo método createDataset.

Apagar dados

Essa opção permite ao administrador remover a tabela que contém os dados sincronizados com o servidor. É importante notar que os dados não serão apagados imediatamente após a confirmação da mensagem, e sim, na próxima execução da tarefa de sincronização. A próxima tarefa de sincronização criará uma nova tabela gravando os dados daquela execução. A tabela que abrigava os dados antes da ordem de eliminação de dados será removida junto com seus registros.

Para apagar os dados, é preciso acionar o link da coluna "Sincronização", que abre a tela de Sincronização (Figura 5), e então acionar a opção Apagar dados.

Editar agendamentos

Após definir que determinado dataset é sincronizado no servidor do fluig, é preciso agendar pelo menos uma execução da tarefa de sincronia do dataset. Para acessar essa opção, é preciso acionar o link da coluna "Sincronização", que abre a tela de Sincronização (Figura 5), e acionar a opção Editar agendamento.


Image Modified

Figura 6 - Tela de configuração do agendamento da sincronização

...

As outras informações se referem a frequência e horário de execução da tarefa e segue o mesmo padrão dos outros tipos de tarefa agendada existentes no fluig. Para mais informações, consulte a documentação de usuário do Agendador de tarefas.

Consultando dataset

Essa opção possibilita a consulta dos resultados do dataset no banco de dados do fluig. Qualquer tipo de dataset pode ser consultado, mesmo aqueles que não tenham sincronização.

Para realizar a consulta, acione o ícone barras horizontais presente na coluna Mais ações e, em seguida, a opção Consultar.


Figura 7 - Consulta aos dados do dataset