Pular para o conteúdo
Lucas LimaDesenvolvedor Fluig
Todos os guias

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

Painel de controle > Datasets
Do Painel de Controle até a lista de datasets, em Desenvolvimento > Datasets.
Do Painel de Controle até a lista de datasets, em Desenvolvimento > Datasets.

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ários
  • group: os grupos
  • workflowColleagueRole: 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.

Dataset colleague
O dataset interno colleague aberto no painel, com uma linha por usuário (dados fictícios).
O dataset interno colleague aberto no painel, com uma linha por usuário (dados fictícios).

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 name do 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:

nomeColaboradordataFaltamotivo
Ana Souza2026-10-05Consulta médica
Bruno Lima2026-10-08Atestado
Carla Dias2026-10-12Consulta médica
Dataset dsSolicitacaoAbono
O dataset do formulário no painel: cada campo é uma coluna e cada solicitação é uma linha. A ficha 1202 aparece duas vezes, e só a versão atual está com metadata#active igual a true (dados fictícios).
O dataset do formulário no painel: cada campo é uma coluna e cada solicitação é uma linha. A ficha 1202 aparece duas vezes, e só a versão atual está com metadata#active igual a true (dados fictícios).

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.

Console do navegador
O retorno do getDataset no console do navegador: as colunas em columns e cada linha em values.
O retorno do getDataset no console do navegador: as colunas em columns e cada linha em values.

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çãoTipo
Dados do próprio Fluig (usuários, grupos, papéis)Interno
Cadastro mantido pelos usuários dentro do FluigFormulário
Dados de um ERP ou outro sistemaCustomizado
Dados de fora que mudam pouco e são consultados com frequênciaCustomizado sincronizado
Dados que precisam ser combinados ou tratados antes do usoCustomizado

Referências

Próximos posts da série

  1. Datasets no Fluig: o que são, os tipos e quando usar cada um (este post)
  2. Criando um dataset customizado (em breve)
  3. Constraints: filtrando do jeito certo (em breve)
  4. Dataset com consulta JDBC (em breve)
  5. Consumindo datasets no formulário, nos eventos, no workflow e pela API (em breve)
  6. Dataset sincronizado (em breve)
  7. Boas práticas e problemas comuns (em breve)
Escrito por Lucas Lima

Desenvolvedor Fluig. Construo processos integrados ao Protheus e ao RM, com telas que as pessoas entendem.

Conheça meu trabalho

Tem um processo no Fluig para resolver?

Conte o cenário. Respondo em até um dia útil.

Falar comigo Ver cases