Gera o esqueleto de um Dataset customizado do Fluig — o arquivo JavaScript server-side com a(s) função(ões) nomeada(s) que a plataforma invoca para construir e retornar o conjunto de dados via API pública de Dataset, aplicando filtros/constraints e ordenação. Use quando o desenvolvedor pedir para criar/iniciar um novo dataset customizado a partir de um nome/propósito, campos e fontes de dados.
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Gera o esqueleto de um Dataset customizado do Fluig — o arquivo JavaScript server-side com a(s) função(ões) nomeada(s) que a plataforma invoca para construir e retornar o conjunto de dados via API pública de Dataset, aplicando filtros/constraints e ordenação. Use quando o desenvolvedor pedir para criar/iniciar um novo dataset customizado a partir de um nome/propósito, campos e fontes de dados.
argument-hint
nome e/ou propósito do dataset, campos e fontes/filtros (ex.: "dataset de filiais com código, nome e UF, filtrando ativas")
Scaffolding de Dataset (customizado, server-side)
Esta skill gera o esqueleto de um Dataset customizado do Fluig; ela não duplica convenções — os arquivos de context/ são a fonte de verdade, referenciada abaixo.
Objetivo
Produzir, com responsabilidade única, o esqueleto de um Dataset customizado do Fluig: o arquivo JavaScript executado no servidor com a(s) função(ões) nomeada(s) que a plataforma invoca para construir e retornar o conjunto de dados, usando somente a API pública de Dataset, já com pontos para aplicar filtros/constraints e ordenação.
Quando Usar
Ao criar um novo dataset customizado do Fluig a partir do zero, para expor/consultar dados a serem consumidos por widgets e forms.
Quando o desenvolvedor fornece um nome/propósito, os campos do dataset e a(s) fonte(s) de dados e quer um ponto de partida correto (função pública + estrutura) seguindo as convenções oficiais.
Quando é preciso garantir, desde o início, o uso exclusivo da API pública de Dataset e a aplicação correta de filtros (constraints) e ordenação.
Entradas Esperadas
Entrada
Descrição
Obrigatória
Nome do dataset
Identificador do dataset customizado (ex.: branches)
sim
Campos
Lista de colunas/campos do dataset (nome de cada coluna)
sim
Filtros/constraints
Critérios de filtragem esperados (campo, valores, tipo)
não
Ordenação
Campo(s) por que o resultado deve ser ordenado
não
Fonte de dados
Origem dos registros (ex.: outro dataset, dados informados, serviço externo)
não
Serviço externo
Código do serviço cadastrado no Fluig (serviceCode) quando a fonte for uma API REST externa
não
Contexto de Referência (Fonte de Verdade)
Leia antes de executar — não reproduza o conteúdo aqui:
architecture.md — modelo conceitual do Dataset: customização server-side que expõe/consulta dados por meio da API pública de Dataset; o desenvolvedor implementa funções nomeadas que a plataforma invoca em pontos definidos para resolver o dataset; o resultado é consumido por widgets/forms. Veja também a seção "Estrutura de um Projeto Fluig Studio": o dataset fica na pasta datasets/.
technologies.md — runtime público de scripting server-side: datasets são escritos em JavaScript executado no servidor sobre o motor Mozilla Rhino (base ES5, com suporte apenas parcial a ES6+), interagindo apenas com a API pública de seu contexto (sem acesso a componentes internos do servidor). Veja a seção "Runtime Rhino: sintaxe rígida (não é ES6+)" para as restrições de sintaxe e a seção de interoperabilidade com Java.
Regras Aplicáveis (Resumo Executivo)
Somente o mínimo para orientar a geração; o detalhe está no contexto:
Implemente a(s) função(ões) nomeada(s) que a plataforma invoca para construir/retornar o dataset — o ponto de entrada público é a função createDataset(fields, constraints, sortFields) → ver architecture.md.
Use SOMENTE a API pública de Dataset: construa o resultado com DatasetBuilder.newDataset() e adicione colunas/linhas com addColumn(...)/addRow(...); para consultar outro dataset, use DatasetFactory.getDataset(name, fields, constraints, order[, callback]) (no servidor, sempre síncrono — não passe callback) → ver architecture.md, seção "API pública de Dataset — assinaturas".
Retorne o conjunto de dados no formato esperado (o objeto de dataset construído pelo DatasetBuilder); o retorno de getDataset(...) expõe os registros em .values e as colunas em .columns → ver architecture.md.
Aplique filtros/constraints via API pública com a assinatura exata DatasetFactory.createConstraint(field, initialValue, finalValue, type[, likeSearch]), onde type é ConstraintType.MUST (1) | SHOULD (2) | MUST_NOT (3) e likeSearch (booleano opcional) habilita busca parcial (LIKE). Para igualdade simples, repita o valor em initialValue/finalValue; para faixa (BETWEEN), informe limites distintos. Respeite os parâmetros constraints e sortFields recebidos pela função → ver architecture.md, seção "API pública de Dataset — assinaturas".
Leia os filtros recebidos percorrendo o array constraints e comparando constraint.getFieldName() com o campo desejado, obtendo o valor com constraint.getInitialValue() (use os métodos, não propriedades). Isolar isso em uma função auxiliar (ex.: obterParametro(constraints, campo)) é um padrão comum → ver architecture.md.
Para consumir um serviço externo (REST), não há fetch: use o Cadastro de Serviços via fluigAPI.getAuthorizeClientService(), montando o objeto com /// (o é opcional, resolvido a partir do ), invocando com e lendo a resposta com + → ver .
Procedimento
Definir o nome do dataset e os campos (colunas) a partir da entrada, além das fontes de dados e dos filtros/ordenação esperados.
Criar o arquivo JavaScript do dataset e implementar a função públicacreateDataset(fields, constraints, sortFields) como ponto de entrada que a plataforma invoca.
Dentro da função, construir o dataset com a API pública: DatasetBuilder.newDataset(), declarando as colunas com addColumn(...) e populando registros com addRow(...) (ou consultando outra fonte com DatasetFactory.getDataset(...)).
Aplicar filtros/constraints e ordenação via API pública — usar os parâmetros constraints/sortFields recebidos e/ou criar constraints com DatasetFactory.createConstraint(field, initialValue, finalValue, type[, likeSearch]) usando ConstraintType.*. Quando precisar do valor de um filtro do chamador, lê-lo via getFieldName()/getInitialValue()/getFinalValue() (ex.: função auxiliar obterParametro).
Se a fonte for um serviço externo REST, consumi-lo pelo Cadastro de Serviços (fluigAPI.getAuthorizeClientService() + invoke(...)), parseando vo.getResult() e populando as linhas com os campos retornados.
Tratar erros com try/catch, retornando um dataset com coluna/linha de erro (ex.: ERROR) em caso de falha.
Retornar o objeto de dataset construído.
Validar o resultado com o checklist abaixo antes de entregar.
Saída Esperada
Esqueleto de dataset pronto para evoluir, contendo:
O arquivo JavaScript server-side do dataset com a(s) função(ões) pública(s) que a plataforma invoca — no mínimo createDataset(fields, constraints, sortFields).
A construção do conjunto de dados via API pública (DatasetBuilder, colunas e registros), com pontos para aplicar constraints e ordenação.
Retorno do conjunto de dados no formato esperado, sem qualquer acesso a componentes internos.
Tudo em conformidade com context/architecture.md e context/technologies.md.
Exemplo de Uso
Use examples/dataset/ como referência mínima. O dataset.example.js demonstra a função pública createDataset, a construção do conjunto via DatasetBuilder e a aplicação de constraints; o dataset-external-service.example.js demonstra a leitura de filtro do chamador, o consumo de uma API REST externa pelo Cadastro de Serviços e o tratamento de erro como dado. Trate-os como trechos de referência, não como projeto completo.
Checklist de Validação
A(s) função(ões) pública(s) que a plataforma invoca estão implementadas (ex.: createDataset(fields, constraints, sortFields)).
O conjunto de dados é construído e retornado usando somente a API pública de Dataset (DatasetBuilder, DatasetFactory), sem acesso a componentes internos.
Os campos (colunas), filtros/constraints e a ordenação estão corretos e usam a API pública com as assinaturas exatas — createConstraint(field, initialValue, finalValue, type[, likeSearch]) com ConstraintType.* e getDataset(name, fields, constraints, order[, callback]) (servidor sempre síncrono, sem callback); a leitura de filtros do chamador usa getFieldName()/getInitialValue()/getFinalValue().
Consumo de serviço externo (se houver) é feito pelo Cadastro de Serviços (fluigAPI.getAuthorizeClientService() + invoke), nunca por fetch/HTTP de navegador.
Erros são retornados como dado (coluna/linha de erro via try/catch), não como exceção solta.
Código server-side compatível com o motor Rhino (base ES5): var/function tradicionais, sem arrow functions, template literals, let/const ou outros recursos ES6+ não suportados.
serviceCode
endpoint
method
timeoutService
companyId
serviceCode
invoke(JSON.stringify(data))
vo.getResult()
JSON.parse(...)
technologies.md
Trate erros retornando dado, não exceção solta: capture o erro com try/catch e retorne um dataset com uma coluna/linha de erro (ex.: coluna ERROR), para o consumidor receber um resultado previsível → ver architecture.md.
Código server-side no motor Rhino (base ES5, não ES6+): use var e function tradicionais, concatene strings com + e evite arrow functions, template literals, let/const, destructuring, classes ES6 e Promise/async/await; sem acesso a componentes internos do servidor. Quando útil, é possível usar interop com Java (Packages.*, importPackage/importClass) → ver technologies.md.
Se o nome exato de uma função/método não puder ser confirmado como público, descreva o comportamento de forma genérica (uma função nomeada que a plataforma invoca para resolver o dataset, retornando o conjunto via API pública) em vez de inventar → ver architecture.md.