Histórico da Página
...
- Visão geral sobre o fluig
- Visão geral sobre integração de sistemas
- Visão geral sobre codificação javascript (necessário para Dataset Avançado)
Datasets
...
O fluig é uma plataforma que permite disponibilizar informações provindas de várias fontes de dados através de formas variadas de apresentação, dependendo da necessidade de cada cliente. Esse recurso é atendido pelo componente Dataset, que padroniza o acesso às informações, independente da origem dos dados. É possível apresentar ou processar informações referentes a:
...
O diagrama abaixo apresenta um modelo conceitual sobre os Datasets.
Tipos de Datasets
...
Existem três tipos de Datasets datasets gerenciados pela plataforma: internos, simples e avançados:
Internos: permitem acessar dados das entidades do próprio fluig, como usuários, grupos, processos ou tarefas, por exemplo, ou dados existentes em formulários publicados no fluig.
Acesse aqui paraPainel Acesse aqui para conhecer detalhes dos datasets internos.
Simples: realizam consulta em dados provindos de API, de forma simplificada e sem codificação, por isso podem ser utilizados em uma grande gama de situações, por exemplo:
definição de uma lista de valores fixos (como estados de um país) ouextração de dados de um serviço externo (via WebServices, por exemplo). A plataforma pode gerar a integração sem qualquer tipo de codificação, sendo necessário apenas informar o endereço e o método do Webservice que contém as informações.
Painel Acesse aqui para saber como construir facilmente um dataset simples.
Avançados: é uma forma de customização do
Datasetdataset simples, permitindo navegar nos dados retornados por meio de uma codificação em JavaScript. Por exemplo: definição de uma lista de valores fixos (como estados de um país).
Painel Acesse aqui para saber como codificar um dataset avançado.
Informações |
---|
As nomenclaturas dos tipos simples e avançados foram adotadas a partir da atualização 1.6.5. Antes disso, os tipos de Datasets datasets eram chamados de gerados ou customizados, respectivamente. |
...
A consulta aos dados retornados pelo Dataset pode ser feita pelo fluig Studio ou pela própria plataforma (via painel de controle ou widget).
Via
...
title | Atenção |
---|
...
Painel de Controle
...
Pelo fluig Studio, através da visão Visualização de Dataset, é possível consultar os Datasets disponíveis bem como visualizar o seu conteúdo. Com isto é possível verificar quais os campos disponíveis, tanto para filtros quanto para acesso, bem como fazer testes sobre Datasets avançados.
O exemplo abaixo apresenta um exemplo de Dataset sendo visualizado:
Neste exemplo, é possível visualizar os campos disponíveis (conta, título, natureza e tipo) e os registros retornados pelo Dataset. Note que estas informações são essenciais para o uso dos Datasets, principalmente quando há necessidade de restringir os dados que queremos acessar.
Veja a seguir o vídeo how to que demonstra a consulta de dados de um Dataset interno pelo fluig Studio.
Conector de Widget width 854 url https://www.youtube.com/watch?v=Kux0ohfl1JU&list=PLD-htCoWcvYqIInKALhFy8KaJfXLXcOJ7&index=19 height 480
Via Painel de Controle
A partir da atualização 1.6.2, o administrador do sistema pode consultar o que o Dataset está retornando, acessando Painel de Controle > Datasets, localizando o Dataset desejado, e acionando Mais ações > Consultar. Os dados retornados serão apresentados de forma semelhante à janela abaixo.
...
Painel | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Via fluig Studio
Para conhecer a consulta de datasets via fluig Studio, acesse a página de Visualização de Datasets.
Acessando um Dataset
...
Vários pontos do fluig podem fazer uso dos Datasets. Dependendo do local onde o Dataset é utilizado, podem ocorrer variações na forma de acessá-lo ou de manuseá-lo. Para saber mais sobre as formas de acesso ao dataset, consulte a documentação Acessando Datasets.
Os Datasets de fontes externas também podem ser sincronizados, para reduzir o número de acessos a serviços de dados e tráfego de informações. Para saber como funciona a sincronização, consulte Sincronização de Datasets.
Construindo um Dataset Avançado
Um Dataset é construído a partir de um código JavaScript. Uma vez que o próprio Dataset é criado a partir de um código JavaScript, é possível fazer chamadas a outros Datasets, chamadas a serviços externos ou apenas criar o Dataset a partir de valores fixos codificados.
...
title | Atenção |
---|
Para que um usuário que não é administrador da empresa possa construir datasets via fluig Studio é necessário que ele possua a permissão "Configurar Datasets". Esta permissão pode ser concedida pelo administrador através do item Permissões disponível no Painel de Controle do fluig.
Importar e Exportar Datasets
...
A plataforma possibilita exportar um dataset do ambiente de teste/homologação para posteriormente importá-lo no servidor de produção. A partir da
atualização 1.6.5,
...
esse recurso está disponível pela tela de Datasets, no Painel de Controle.
...
Nas atualizações anteriores, a importação e exportação de datasets ocorria apenas pelo fluig Studio.
Conector de Widget | ||
---|---|---|
|
No exemplo abaixo é criado um Dataset cujo os campos e valores estão fixos no código:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
//Cria as colunas
dataset.addColumn("Sigla");
dataset.addColumn("Estado");
dataset.addColumn("Capital");
dataset.addColumn("Area");
//Cria os registros
dataset.addRow(new Array("AM", "Amazonas", "Manaus", 1570746));
dataset.addRow(new Array("PA", "Pará", "Belém", 1247690));
dataset.addRow(new Array("MT", "Mato Grosso", "Cuiabá", 903358));
dataset.addRow(new Array("TO", "Tocantins", "Palmas", 277621));
dataset.addRow(new Array("PI", "Piauí", "Teresina", 251529));
return dataset;
} |
Para criar um novo Dataset, é utilizado o método DatasetBuilder.newDataset(). Utilizando o objeto retornado por este método é possível adicionar as colunas desejadas (método addColumn) bem como adicionar linhas (método addRow).
Note que a função javascript createDataset, que cria o Dataset para consulta, recebe como parâmetros os campos, as constraints e a ordenação. Cabe ao desenvolvedor utilizar estes valores na lógica de implementação do Dataset avançado. Caso seja desconsiderado algum desdes campos, os filtros não serão aplicados. Os parâmetros "fields" e "sortFields" são arrays de String, que possuem, respectivamente, os nomes dos campos que serão retornados e os nomes dos campos utilizados para ordenação. Já o parâmetro "constraints" é um array de objetos do tipo Constraint, onde cada objeto deste array possui as seguintes propriedades:
...
Valor final para filtro neste campo
...
Tipo do filtro deste campo, podendo ter os valores abaixo:
MUST: O valor informado precisa estar nos resultados
SHOULD: O valor informado pode estar ou não nos resultados
MUST_NOT: O valor informado não pode estar nos resultados
Para acessar estas propriedades e analisar os valores de cada item, pode-se utilizar um laço de repetição, conforme implementação abaixo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
function createDataset(fields, constraints, sortFields) {
var company;
var initialDate;
var finalDate;
if (constraints != null) {
for (var i = 0; i < constraints.length; i++) {
if (constraints[i].fieldName == "company") {
company = constraints[i].initialValue;
}
else if (constraints[i].fieldName == "date") {
initialDate = constraints[i].initialValue;
finalDate = constraints[i].finalValue;
}
}
}
.
.
.
} |
...
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("DDD");
dataset.addColumn("Fone");
dataset.addColumn("Nome");
var tempDataset = getDefaultValues(); // consulta a fonte de dados do dataset
if(constraints!=null && constraints.length){ //se tiver constraint filtra
if(constraints[0].constraintType==ConstraintType.MUST) { // implementação somente para o MUST
for(var a=0;a< tempDataset.length;a++){
// se o valor inicial da constraint for igual ao valor do campo na constraint adiciona a linha
if(constraints[0].initialValue==tempDataset[a][constraints[0].fieldName]){
dataset.addRow(new Array(tempDataset[a]["DDD"], tempDataset[a]["Fone"],tempDataset[a]["Nome"]));
}
}
}
} else { // se não tiver constraint adiciona todas as linhas
for(var a=0;a< tempDataset.length;a++){
dataset.addRow(new Array(tempDataset[a]["DDD"], tempDataset[a]["Fone"],tempDataset[a]["Nome"]));
}
}
return dataset;
}
function getDefaultValues(){ // retorna valores default para serem filtrados
return [{
DDD: "47",
Fone: "1111-1111",
Nome: "Marcos"
},
{
DDD: "47",
Fone: "2222-2222",
Nome: "Roberto"
},
{
DDD: "41",
Fone: "3333-3333",
Nome: "Maria"
},
{
DDD: "31",
Fone: "4444-4444",
Nome: "Francisco"
},
{
DDD: "11",
Fone: "5555-5555",
Nome: "Michel"
}];
} |
Consulta utilizando a constraint:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
function createDataset(fields, constraints, sortFields) {
var c1 = DatasetFactory.createConstraint("DDD", "47", "47", ConstraintType.MUST);
var dataset = DatasetFactory.getDataset("exemploFiltro", null, new Array(c1), null);
return dataset;
} |
A partir da atualização 1.4.10, também é possível obter o código da empresa e do usuário autenticado através do método getValue(), conforme exemplo abaixo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
function createDataset(fields, constraints, sortFields) {
var companyId = getValue("WKCompany");
var currentUser = getValue("WKUser");
.
.
.
} |
Vídeo How To
Veja a seguir o vídeo How To que demonstra a criação de um dataset avançado com dados fixos.
Conector de Widget
|
|
|
|
Utilizando zoom composto em Dataset avançado
Através do uso de Datasets avançados é possível realizar uma série de buscas compostas.
Painel | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Dataset avançado de definição de formulário "pai-filho"
Para acessar informações de um "pai-filho" de uma definição de formulário pode ser utilizado o WebService "ECMDatasetService" (do próprio fluig), um Dataset avançado (Exemplo 1), ou ainda um evento de processo ou definição de formulário (Exemplo 2).
Deck of Cards | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||
|
Utilizando um dos modelos acima, é possível recuperar os valores "filhos" dos formulários ativos, ou seja, da última versão criada. Existem alguns parâmetros obrigatórios que devem ser passados através de constraints, onde o valor inicial e final devem ser iguais. A forma de recuperar esses valores é opcional. Segue abaixo a nomenclatura obrigatória de cada parâmetro:
...
Atributo utilizado para nomear cada tabela filha do HTML. Exemplo:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<table border="1" tablename="tabelaPecas" addbuttonlabel="Adicionar Peça">
<!-- Campos Filhos -->
</table> |
...
Código do usuário que será validada a permissão no formulário
Nota | ||
---|---|---|
| ||
Esse parâmetro não será validado na Visualização de Datasets, visto que nessa opção é um exemplo de visualização dos dados. |
Também é possível exibir a ordem dos campos filhos, para isso deve-se utilizar o campo wdk_sequence_id, sendo que este não poderá ser utilizado como nome de algum campo do formulário.
Resultado final do Dataset do exemplo 1:
Guia de Referência de Datasets
Dataset Factory
...
...
...
|
Para saber mais
...
Page Tree | ||
---|---|---|
|
Dataset
...
...
...
...
...
...
...
...
...
...
...
...
Informações | ||
---|---|---|
| ||
Veja mais vídeos how to sobre datasets em: Datasets - Consulta, criação e registros. |