Datasets no Fluig: o que são, os tipos e quando usar cada um
Datasets internos, de formulário e customizados: o que cada um faz, como consumir e qual escolher. Parte 1 da série Datasets no Fluig.
Série Datasets no Fluig · Parte 1 de 7
Quase tudo que mostra ou busca dados no Fluig passa por um dataset: o zoom de um formulário, a regra de um evento, a decisão de um workflow, a lista de uma widget. Entender o que é um dataset, e qual tipo usar em cada situação, evita boa parte dos problemas de desempenho e manutenção que aparecem depois.
Este é o primeiro post de uma série. Aqui fica a visão geral. Nos próximos, cada tema é tratado com código completo.
O que é um dataset
Um dataset é um conjunto de dados em formato de tabela, com colunas e linhas, que o Fluig disponibiliza sempre da mesma forma, não importa de onde os dados vêm.
Essa é a parte importante: quem consome o dataset não precisa saber se os dados vieram de um formulário, do banco do ERP ou de uma API. A chamada é a mesma. Por isso o dataset funciona como uma camada entre os dados e o restante da plataforma.
Para conferir quais datasets existem no seu ambiente, abra o Painel de controle > Datasets. Os internos aparecem ao filtrar a exibição por “Interno”.
Os três tipos
1. Datasets internos
São os que o próprio Fluig já traz, com dados da plataforma. Alguns usados com frequência:
colleague: os usuáriosgroup: os gruposworkflowColleagueRole: os usuários de cada papel
Use quando precisar de informações do próprio Fluig, como o nome e o e-mail de um usuário, os membros de um grupo ou quem pertence a um papel. Não é preciso criar nada.
A lista completa, com as colunas de cada um, está na documentação oficial: Datasets internos (TDN).
2. Datasets de formulário
Todo formulário publicado no Fluig ganha um dataset com o nome que você define na publicação. Pense nele como uma tabela de banco de dados montada a partir do formulário:
- Cada campo (input) do formulário vira uma coluna. O
namedo campo é o nome da coluna. - Cada processo iniciado gera uma linha. Quando o formulário é usado em um processo, cada solicitação aberta cria um novo registro com os valores preenchidos.
Imagine um processo de Solicitação de Abono com estes campos:
<input type="text" name="nomeColaborador">
<input type="date" name="dataFalta">
<select name="motivo">...</select>
Publicado com o dataset dsSolicitacaoAbono, depois de três solicitações abertas ele fica assim:
| nomeColaborador | dataFalta | motivo |
|---|---|---|
| Ana Souza | 2026-10-05 | Consulta médica |
| Bruno Lima | 2026-10-08 | Atestado |
| Carla Dias | 2026-10-12 | Consulta médica |
Além dos seus campos, o Fluig acrescenta colunas próprias, com o prefixo metadata#, que identificam a ficha e a versão dela.
O mesmo vale para um formulário usado só como cadastro, sem processo: cada ficha registrada é uma linha.
Use quando os dados nascem e vivem no Fluig, como as solicitações de um processo ou os cadastros auxiliares mantidos pelos próprios usuários.
3. Datasets customizados
São escritos em JavaScript e executados no servidor do Fluig. Você decide de onde vêm os dados e quais colunas o dataset devolve. A origem pode ser:
- Uma consulta ao banco de dados por JDBC
- Uma chamada a uma API REST ou a um serviço SOAP
- Outros datasets, combinados ou transformados
A estrutura básica, como o Fluig Studio gera:
function defineStructure() {}
function onSync(lastSyncDate) {}
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("codigo");
dataset.addColumn("descricao");
dataset.addRow(["001", "Parafuso sextavado"]);
dataset.addRow(["002", "Porca M8"]);
return dataset;
}
function onMobileSync(user) {}
Neste exemplo os dados estão fixos no código, só para mostrar a estrutura. No uso real, o createDataset busca os dados na origem. Esse é o assunto da parte 2.
Use quando os dados estão fora do Fluig, como no Protheus, no RM ou em outro sistema, ou quando precisa tratar os dados antes de entregar.
Como um dataset é consumido
A chamada é a mesma para os três tipos. No formulário, por exemplo:
var constraints = [
DatasetFactory.createConstraint("codigo", "001", "001", ConstraintType.MUST)
];
var ds = DatasetFactory.getDataset("dsProdutos", null, constraints, null);
if (ds.values.length > 0) {
console.log(ds.values[0].descricao); // Parafuso sextavado
}
Os quatro parâmetros são: o nome do dataset, as colunas desejadas, os filtros (constraints) e a ordenação.
Para usar o DatasetFactory no HTML do formulário, é preciso incluir o script /webdesk/vcXMLRPC.js. Nesse caso os dados do dataset vão para o navegador do usuário, então filtre bem a consulta: trazer muitas linhas deixa o formulário lento.
Os detalhes de constraints e as diferenças entre consumir no formulário, nos eventos e no workflow têm posts próprios. A referência oficial está em Acessando Datasets (TDN).
Qual usar
| Situação | Tipo |
|---|---|
| Dados do próprio Fluig (usuários, grupos, papéis) | Interno |
| Cadastro mantido pelos usuários dentro do Fluig | Formulário |
| Dados de um ERP ou outro sistema | Customizado |
| Dados de fora que mudam pouco e são consultados com frequência | Customizado sincronizado |
| Dados que precisam ser combinados ou tratados antes do uso | Customizado |
Referências
Próximos posts da série
- Datasets no Fluig: o que são, os tipos e quando usar cada um (este post)
- Criando um dataset customizado (em breve)
- Constraints: filtrando do jeito certo (em breve)
- Dataset com consulta JDBC (em breve)
- Consumindo datasets no formulário, nos eventos, no workflow e pela API (em breve)
- Dataset sincronizado (em breve)
- Boas práticas e problemas comuns (em breve)
