← Voltar ao blog

Sistema de relatórios SQLVantage: tornar a conceção e entrega de relatórios de dados simples e eficiente

经验分享 628 leituras

Este artigo apresenta o SQLVantage, um sistema de relatórios web leve que unifica consultas SQL, formulários paramétricos e apresentação de resultados num único fluxo de trabalho. Abordam-se a arquitetura do sistema, a instalação e implementação, a gestão do ciclo de vida completo dos relatórios e o componente central — o designer de relatórios com os módulos SQL, FORM e HTML. Discutem-se ainda os cenários de aplicação e as limitações práticas.

Sistema de relatórios SQLVantage: tornar a conceção e entrega de relatórios de dados simples e eficiente

Uma ferramenta de relatórios web pronta a usar que ajuda a dominar facilmente todo o fluxo: consulta de dados, formulários de parâmetros e apresentação de resultados.

Porque é que é necessário um sistema de relatórios independente?

Na atividade diária das empresas, os relatórios de dados são uma componente indispensável. Seja para reconciliação financeira, análise de vendas ou monitorização operacional, praticamente todos os departamentos dependem de relatórios em vários formatos.

No entanto, na prática, deparamo-nos frequentemente com estes problemas:

  • Dispersão de dados: o SQL dos relatórios está espalhado por e-mails, conversas e ficheiros de script, dificultando a gestão centralizada e a reutilização;
  • Dificuldade na passagem de parâmetros: em cada consulta é necessário montar o SQL manualmente ou alterar o código, o que propicia erros;
  • Formatos de exportação inconsistentes: Excel, PDF e HTML funcionam de forma isolada, tornando a manutenção dos estilos difícil;
  • Controlo de permissões fraco: não é claro quem visualizou quais dados nem o histórico de operações;
  • Desenvolvimento repetitivo: para relatórios com requisitos semelhantes, cada projeto exige reescrever o código de frontend e backend.

Assim, torna-se necessária um sistema de relatórios leve que permita gerir de forma unificada as definições de relatórios, suporte consultas parametrizadas, gere automaticamente resultados em múltiplos formatos e garanta o isolamento de permissões.

Recentemente, conheci um sistema de relatórios chamado SQLVantage (versão v1.0.2, lançada em 2026-07-15) que resolve exatamente estas dores. A sua filosofia de design é clara: um processo padrão que liga três tarefas — «consulta SQL, formulário de parâmetros, apresentação de resultados» — de modo a que todo o ciclo de vida do relatório seja rastreável.

Neste artigo, vou descrever o design principal e os padrões de utilização com base na documentação oficial, para ajudar a perceber rapidamente se a ferramenta se adequa à sua equipa.

I. O que é o SQLVantage?

O SQLVantage é um sistema de relatórios com arquitetura puramente web. As suas caraterísticas principais são:

  • No navegador não é necessário instalar nenhum plugin — basta um navegador moderno;
  • No servidor, basta um executável + diretório de configuração, sem ambientes de execução adicionais (como Java, Python, Node.js, etc.);
  • Suporte a implementação em Windows e Linux;
  • Por predefinição, liga-se a bases de dados Oracle (especialmente adequado para cenários Oracle EBS), mas com potencial de extensão a outras bases de dados.

Visão geral dos conceitos-chave

Conceito Descrição
Relatório Um relatório = consulta SQL + formulário de parâmetros (FORM) + apresentação de resultados (HTML) + três JSON de configuração, pertencente a uma «responsabilidade»
Responsabilidade Diretório de classificação de relatórios, corresponde ao conceito de responsabilidade no Oracle EBS, usado para agrupar relatórios por módulo para o utilizador
Parâmetro Condição de consulta (data, cliente, organização, etc.), submetida pelo utilizador e vinculada ao SQL como parâmetro nomeado
Pedido Uma tarefa concreta de execução de relatório por parte do utilizador; o sistema executa de forma assíncrona e gera o ficheiro de resultado
Autorização Ficheiro License que controla o limite máximo de relatórios e o prazo de utilização

Funções de utilizador

O sistema distingue duas funções, com pontos de entrada e permissões completamente separados:

  • Administrador (/admin/login): gere utilizadores, responsabilidades, relatórios, autorizações e configurações do sistema; pode consultar os pedidos de todos os utilizadores;
  • Utilizador comum (/login): seleciona relatórios, preenche parâmetros, submete pedidos, consulta os seus próprios pedidos, descarrega resultados e altera a palavra-passe.

II. Instalação e implementação: verdadeiramente «descompactar e usar»

A forma de implementação do SQLVantage pode ser considerada muito pragmática.

Windows

Descompacte o pacote de distribuição num diretório qualquer (por exemplo, D:\SQLVantage), faça duplo clique em SQLVantage.exe para iniciar. Por predefinição, escuta em 127.0.0.1:8080 — abra no navegador e está pronto.

Linux

Descompacte para /opt/sqlvantage, atribua permissões de execução e execute em segundo plano com nohup ou systemd. Porta predefinida igualmente 8080.

Inicialização automática no primeiro arranque

No primeiro arranque, o sistema executa automaticamente as seguintes ações, o que é muito conveniente para os administradores:

  1. Verifica se conf/data.dat existe (esta é a base de dados de negócio incluída no pacote);
  2. Cria automaticamente quatro tabelas: user, responsibility, report, request;
  3. Cria automaticamente a conta de administrador root com a palavra-passe inicial SQLVantage (deve ser alterada após o início de sessão);
  4. Se o ficheiro de autorização estiver em falta, emite um aviso, mas o sistema continua a funcionar (com limite de número de relatórios).

Este design reduz ao mínimo o custo de «experimentar do zero».

III. Perspetiva do administrador: gestão do ciclo de vida completo do relatório

3.1 Gestão de utilizadores e responsabilidades

O administrador pode criar utilizadores comuns (função normal) e definir o estado como active ou inactive (em caso de saída da empresa, basta desativar, sem necessidade de eliminar a conta).

A gestão de responsabilidades corresponde ao conceito de responsabilidade no Oracle EBS e também pode ser criada manualmente. Cada relatório deve ser associado a uma responsabilidade — assim, na interface do utilizador comum, o menu de relatórios é apresentado agrupado por responsabilidade, com uma navegação clara.

3.2 Gestão de relatórios: orientada por estados

O relatório tem três estados:

  • Draft (rascunho): fase de conceção, invisível para os utilizadores;
  • Release (publicado): visível e executável pelos utilizadores;
  • Discard (arquivado): invisível para os utilizadores, mas o registo é mantido.

Um relatório publicado não pode ser eliminado diretamente — é necessário mudar primeiro o estado para rascunho ou arquivado. Esta abordagem evita eficazmente a eliminação acidental de relatórios em produção.

A página de lista suporta «duplo clique na célula para editar diretamente» o nome, a descrição e o estado — um pequeno detalhe que melhora a eficiência operacional.

3.3 Gestão de autorização (License)

O ficheiro de autorização conf/license.dat controla o número máximo de relatórios e o prazo de validade. Sem autorização ou com autorização expirada, o sistema permite criar no máximo 3 relatórios; acima desse limite, não é possível criar novos nem submeter pedidos.

Este mecanismo é prático para cenários de versão comercial ou avaliação interna — preserva toda a funcionalidade, mas define um limiar de limitação razoável.

IV. Designer de relatórios: a principal vantagem

Se houver uma funcionalidade no SQLVantage que mereça investimento de tempo para conhecer, é sem dúvida o designer de relatórios.

Este divide o processo de desenvolvimento do relatório em três módulos independentes mas interligados, concluídos num único interface.

4.1 Disposição do designer

Abra a lista de relatórios, clique no botão «Código» (roxo) na linha do relatório — abre-se um designer de grandes dimensões, ocupando cerca de 98% do ecrã. O interface divide-se em:

  • Topo: lista suspensa de alternância de modo (SQL / FORM / HTML) + botão «Guardar tudo»;
  • Painel esquerdo: editor de código (o conteúdo muda conforme o modo);
  • Painel direito: painel dinâmico de configuração (apresenta diferentes tabelas de configuração e pré-visualização em tempo real conforme o modo).

Esta disposição «código à esquerda + configuração à direita + pré-visualização em tempo real» é muito intuitiva para o programador.

4.2 Módulo SQL: definir a origem dos dados

Escrever SQL

Utiliza a sintaxe Oracle; as condições de consulta usam placeholders de parâmetros nomeados :nome_do_parâmetro:

SELECT company_name, ou_id, amount
  FROM fnd_ou_tl
 WHERE ou_id = :P_OU_ID

Aqui, P_OU_ID tem de coincidir com o nome do parâmetro definido no módulo FORM.

Configuração de metadados das colunas — a chave para a exportação Excel

No painel direito é possível configurar cada coluna:

  • field: nome da coluna devolvida pelo SQL
  • title: cabeçalho apresentado (também cabeçalho no Excel)
  • type: text / number / percent / date / month / time / datetime
  • precision: número de casas decimais
  • format: formato personalizado do Excel (por exemplo, #,##0.00)
  • align: alinhamento

Esta configuração determina diretamente o profissionalismo da exportação para Excel — cabeçalhos, números alinhados à direita, separadores de milhares, formatos percentuais — tudo configurável aqui num só passo.

Por outras palavras, basta configurar os metadados das colunas e a qualidade da exportação Excel deixa de depender de código adicional no backend.

4.3 Módulo FORM: conceção dos parâmetros de consulta

Este é o ponto de entrada para a interação com o relatório. Na «tabela de configuração de parâmetros» do painel direito, cada linha define um parâmetro de consulta:

Campo Descrição
Nome do parâmetro field Tem de coincidir exatamente com :nome_do_parâmetro no SQL
Etiqueta label Texto apresentado no formulário
Tipo de componente type text / number / select / radio / date / month / datetime / hidden / temp
Opções estáticas static_options Formato chave:valor,chave:valor
API dinâmica / SQL Suporta placeholders {nome_da_variável} para encadeamento de parâmetros

Encadeamento de parâmetros (filtragem dependente)

Esta é uma funcionalidade muito útil do módulo FORM: quando uma lista suspensa dependente está condicionada por um parâmetro a montante (por exemplo, só depois de «selecionar a organização» se carrega a «lista de departamentos»), é possível usar um placeholder como {P_OU_ID} no api_url ou query_sql.

Quando o utilizador altera o valor a montante, o sistema atualiza automaticamente as opções dependentes — sem necessidade de escrever código JavaScript adicional.

Na parte inferior do painel direito há também uma área de pré-visualização em tempo real: após configurar os parâmetros, vê-se imediatamente o resultado da renderização e o código HTML gerado pode ser «copiado e aplicado» no editor com um único clique.

4.4 Módulo HTML: apresentação de resultados

Após a execução do relatório, de que forma os resultados são apresentados ao utilizador? É o módulo HTML que trata desta camada.

No painel direito, a «Configuração de componentes da vista HTML» permite definir vários blocos de apresentação, cada um com:

  • ID do contentor
  • Título
  • Largura da grelha (1–12)
  • Tipo de componente: table (tabela), chart (gráfico), card (cartão de indicadores), custom (contentor personalizado)
  • Tipo de gráfico (line / bar)
  • Mapeamento dos campos dos eixos X/Y

No final, quando o utilizador descarrega o resultado HTML, o sistema renderiza dinamicamente uma página completa com tabelas, gráficos e cartões KPI, e os parâmetros de consulta também são apresentados no topo do resultado.

Este nível de design confere à «camada de apresentação» do relatório capacidade de configuração — deixando de ser necessário escrever uma página de frontend individual para cada relatório.

4.5 Fluxo de publicação

Todo o fluxo segue uma única linha:

  1. Criar o relatório (estado Draft);
  2. Entrar no designer e configurar sequencialmente SQL → FORM → HTML;
  3. Clicar em «Guardar tudo»;
  4. Voltar à lista de relatórios e alterar o estado para Release;
  5. O utilizador comum, após iniciar sessão, vê e executa o relatório no menu da responsabilidade correspondente.

V. Perspetiva do utilizador: escolher relatório → preencher parâmetros → aguardar resultado

O caminho do utilizador comum é muito simples:

  1. Iniciar sessão na página principal do portal (suporta conta local ou validação via Oracle EBS ERP);
  2. Clicar em «Novo pedido de relatório»;
  3. No menu de relatórios, navegar agrupado por responsabilidade ou pesquisar por nome;
  4. Selecionar o relatório e preencher o formulário de parâmetros;
  5. Submeter — o sistema executa de forma assíncrona;
  6. Na lista «Os meus pedidos», consultar o estado; após conclusão, descarregar os resultados em Excel / HTML / JSON / TEXT através do menu «Saída».

Transição de estados do pedido

Queued (em fila) → Processing (em execução) → Success (concluído com sucesso) → Error (erro) → Terminated (terminado por tempo limite)

O sistema consulta a fila de tarefas a cada 3 segundos; o nível de paralelismo é configurável, com um máximo predefinido de 3 tarefas em execução simultânea. O tempo limite predefinido é de 30 minutos, ajustável na configuração.

VI. Detalhes de design dignos de nota

1. Relatório = três códigos + três JSON de configuração

SQL, FORM e HTML têm cada um «código» e «JSON de configuração» — o que deixa espaço para gestão de versões e reutilização de modelos no futuro.

2. A exportação Excel depende estritamente dos metadados das colunas

Não se trata de «exportar primeiro e pós-processar depois» — o estilo do Excel é decidido na fase de conceção. Isto significa: o autor do relatório controla totalmente a qualidade do resultado, sem depender de scripts adicionais de pós-processamento.

3. Encadeamento de parâmetros sem JavaScript

O mecanismo de placeholders para implementar dependências entre parâmetros reduz a barreira de entrada para o desenvolvimento frontend.

4. Isolamento de permissões de pedidos

O utilizador comum só vê os seus próprios pedidos; o administrador vê todos. Quando um utilizador ERP submete um pedido, o sistema valida também as permissões de organização OU/ORG, prevenindo acessos não autorizados.

5. Armazenamento de dados transparente

Todos os dados de negócio são armazenados em conf/data.dat; os ficheiros de resultado são gerados no diretório data/. Para migrar, basta copiar os diretórios conf/ e data/ — tudo muito claro.

VII. Cenários de aplicação e cuidados a ter

Para que cenários é adequado?

  • Gestão unificada de relatórios de dados internos da empresa, especialmente para equipas que já usam Oracle EBS;
  • Entrega rápida de necessidades de relatórios, com rastreabilidade da definição, execução e resultados;
  • Redução dos custos de desenvolvimento de relatórios, permitindo que analistas de negócio ou DBA que dominam SQL configurem relatórios de forma autónoma.

Pontos de atenção

  • A versão atual está adaptada por predefinição ao Oracle; para outras bases de dados (como MySQL, PostgreSQL) é necessária adaptação manual;
  • Sem autorização, o número de relatórios é limitado a 3; para utilização em produção é necessário importar um ficheiro de autorização válido;
  • As alterações à configuração do sistema (porta, palavra-passe do Oracle, etc.) requerem reinício do serviço para surtirem efeito (exceto a configuração de tempo limite de Session).

Notas finais

A impressão geral do SQLVantage é: pragmático, contido e fácil de usar.

Não procura ser «tudo para todos», mas concentra-se no cenário central dos «relatórios», ligando a gestão de SQL, a interação por parâmetros, a apresentação de resultados e o isolamento de permissões numa cadeia clara e completa.

Para equipas que lidam com dificuldades na gestão de relatórios, o SQLVantage oferece uma boa solução de referência — pode ser usado diretamente como ferramenta de produção ou como exemplo de estudo para compreender o design de um sistema de relatórios web leve.

Se também procura um sistema de relatórios simples de usar e com implementação autónoma, vale a pena começar por experimentar o SQLVantage.

Este artigo foi elaborado com base na documentação oficial do SQLVantage v1.0.2 (lançado em 2026-07-15). Para mais detalhes, consulte a documentação multilingue incluída no projeto (diretório docs/).