← Volver al blog

Sistema de reportes SQLVantage: diseño y entrega de informes de datos de forma sencilla y eficiente

经验分享 625 lecturas

Este artículo presenta SQLVantage, un sistema de reportes web ligero y listo para usar que centraliza todo el ciclo de vida de un informe: consulta SQL, formulario de parámetros y presentación de resultados. Se describen su instalación (un solo ejecutable, sin dependencias adicionales), la gestión de usuarios, responsabilidades, reportes y licencias desde la perspectiva del administrador, así como el diseñador de reportes con sus módulos SQL, FORM y HTML. También se abordan el flujo de trabajo del usuario final, el procesamiento asíncrono de solicitudes, los detalles de diseño destacables y los escenarios de uso recomendados.

Sistema de reportes SQLVantage: diseño y entrega de informes de datos de forma sencilla y eficiente

Una herramienta de reporting web lista para usar, que te ayuda a resolver con facilidad todo el flujo: consulta de datos, formularios de parámetros y presentación de resultados.

¿Por qué se necesita un sistema de reportes independiente?

En la operación diaria de las empresas, los informes de datos son una pieza indispensable. Ya sea para conciliaciones financieras, análisis de ventas o monitoreo operativo, casi todos los departamentos dependen de salidas de reportes de todo tipo.

Sin embargo, en la práctica solemos encontrarnos con estos problemas:

  • Datos dispersos: el SQL de los reportes queda repartido entre correos, chats y archivos de script, lo que dificulta su gestión y reutilización centralizadas;
  • Paso de parámetros engorroso: cada consulta obliga a concatenar SQL a mano o modificar código, con alto riesgo de errores;
  • Formatos de exportación inconsistentes: Excel, PDF y HTML siguen cada uno su propio camino y los estilos son difíciles de mantener;
  • Control de permisos débil: no queda claro quién vio qué datos ni qué operaciones realizó;
  • Desarrollo repetitivo: para necesidades de reportes similares, cada proyecto tiene que volver a escribir el código de frontend y backend.

Por eso, un sistema de reportes ligero capaz de gestionar de forma centralizada las definiciones de reportes, admitir consultas parametrizadas, generar automáticamente resultados en varios formatos y ofrecer aislamiento de permisos se vuelve realmente necesario.

Hace poco conocí un sistema de reportes llamado SQLVantage (versión v1.0.2, publicada el 2026-07-15) que resuelve precisamente estos puntos de dolor. Su filosofía de diseño es muy clara: mediante un flujo estandarizado, encadena las tres piezas de «consulta SQL, formulario de parámetros y presentación de resultados», de modo que todo el ciclo de vida del informe quede trazable.

En este artículo, basándome en su documentación oficial, repasaré su diseño central y sus rutas de uso, para ayudarte a evaluar rápidamente si encaja con tu equipo.

1. ¿Qué es SQLVantage?

SQLVantage es un sistema de reportes con arquitectura puramente web. Sus características principales son:

  • En el navegador no hay que instalar ningún plugin: basta un navegador moderno para acceder;
  • En el servidor solo se necesita un ejecutable + un directorio de configuración, sin instalar entornos de ejecución adicionales (como Java, Python, Node.js, etc.);
  • Admite despliegue tanto en Windows como en Linux;
  • Por defecto se conecta a bases de datos Oracle (especialmente adecuado para escenarios Oracle EBS), aunque tiene potencial para extenderse a otras bases de datos.

Vista rápida de los conceptos clave

Concepto Descripción
Reporte Un reporte = consulta SQL + formulario de parámetros (FORM) + presentación de resultados (HTML) + tres archivos JSON de configuración de formato, adscrito a una «responsabilidad»
Responsabilidad Directorio de clasificación de reportes, equivalente al concepto de responsabilidad de Oracle EBS, usado para agrupar y mostrar los reportes por módulo al usuario
Parámetro Condiciones de consulta (fecha, cliente, organización, etc.); al enviarse, el usuario los vincula a la ejecución del SQL como parámetros con nombre
Solicitud Una tarea concreta de ejecución de un reporte por parte del usuario; el sistema la ejecuta de forma asíncrona y genera el archivo de resultados
Licencia Archivo License que controla el límite de cantidad de reportes y el periodo de uso

Roles de usuario

El sistema distingue dos roles, con entradas y permisos totalmente separados:

  • Administrador (/admin/login): gestiona usuarios, responsabilidades, reportes, licencias y configuración del sistema, y puede ver las solicitudes de todos los usuarios;
  • Usuario normal (/login): elige reportes, rellena parámetros, envía solicitudes, consulta sus propias solicitudes, descarga resultados y cambia su contraseña.

2. Instalación y despliegue: realmente «descomprimir y usar»

El método de despliegue de SQLVantage puede calificarse de muy pragmático.

Windows

Descomprime el paquete de distribución en cualquier directorio (por ejemplo D:\SQLVantage) y haz doble clic en SQLVantage.exe para iniciarlo. Por defecto escucha en 127.0.0.1:8080; abre el navegador y ya puedes acceder.

Linux

Descomprime en /opt/sqlvantage, otorga permisos de ejecución y ejecútalo en segundo plano con nohup o systemd. Igualmente, el puerto por defecto es el 8080.

Inicialización automática en el primer arranque

En el primer arranque, el sistema realiza automáticamente las siguientes acciones, algo muy amable para el personal de operaciones:

  1. Comprueba si existe conf/data.dat (es la base de datos de negocio incluida en el paquete);
  2. Crea automáticamente cuatro tablas: user, responsibility, report y request;
  3. Crea automáticamente la cuenta de administrador root, con contraseña inicial SQLVantage (cámbiala sin falta tras iniciar sesión);
  4. Si falta el archivo de licencia, imprime una advertencia, pero el sistema sigue funcionando (solo con límite en la cantidad de reportes).

Este diseño reduce al mínimo el coste de «probar desde cero».

3. Perspectiva del administrador: gestión del ciclo de vida completo de los reportes

3.1 Gestión de usuarios y responsabilidades

El administrador puede crear usuarios normales (rol normal) y establecer su estado como active o inactive (al despedir a alguien basta con deshabilitarlo, sin eliminar la cuenta).

La gestión de responsabilidades corresponde al concepto de responsabilidad de Oracle EBS y también puede crearse manualmente. Cada reporte debe adscribirse a una responsabilidad; así, en el portal del usuario normal, el menú de reportes se muestra agrupado automáticamente por responsabilidad, con una experiencia clara.

3.2 Gestión de reportes: basada en estados

Los reportes tienen tres estados:

  • Draft (borrador): fase de diseño, no visible para los usuarios;
  • Release (publicado): visible y ejecutable por los usuarios;
  • Discard (descartado): no visible para los usuarios, pero se conserva el registro.

Un reporte publicado no puede eliminarse directamente: primero hay que cambiarlo a estado borrador o descartado; este diseño evita muy bien los borrados accidentales de reportes en producción.

La página de listado admite «doble clic en la celda para editar directamente» el nombre, la descripción y el estado; un pequeño detalle que mejora la eficiencia operativa.

3.3 Gestión de licencias (License)

El archivo de licencia conf/license.dat controla el límite de cantidad de reportes y el periodo de validez. Sin licencia o con la licencia caducada, el sistema solo permite crear como máximo 3 reportes; superado ese límite, no se pueden crear nuevos ni enviar solicitudes.

Este mecanismo resulta muy práctico para la versión comercial o escenarios de prueba interna: conserva toda la funcionalidad pero establece un umbral razonable.

4. El diseñador de reportes: el punto más destacado

Si hay una función de SQLVantage que merece la pena conocer a fondo, es sin duda su diseñador de reportes.

Descompone el proceso de desarrollo de reportes en tres módulos independientes pero interconectados, y los completa en una sola interfaz.

4.1 Diseño del editor

Entra en la lista de reportes y haz clic en el botón «Código» (morado) de la fila del reporte: se abrirá un diseñador a pantalla casi completa (alrededor del 98%). La interfaz se divide en:

  • Parte superior: desplegable de cambio de modo (SQL / FORM / HTML) + botón «Guardar todo»;
  • Columna izquierda: editor de código (el contenido cambia según el modo);
  • Columna derecha: panel de configuración dinámica (muestra distintas tablas de configuración y vista previa en tiempo real según el modo).

Este diseño de «código a la izquierda + configuración a la derecha + vista previa en tiempo real» resulta muy intuitivo para los desarrolladores.

4.2 Módulo SQL: definir el origen de los datos

Escribir el SQL

Se usa la sintaxis de Oracle, con marcadores de posición de parámetros con nombre :nombre_parametro para las condiciones de consulta:

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

Aquí, P_OU_ID debe coincidir exactamente con el nombre del parámetro definido en el módulo FORM.

Configuración de metadatos de columnas: la clave de la exportación a Excel

En el panel derecho se puede configurar para cada columna:

  • field: el nombre de la columna devuelta por el SQL;
  • title: el encabezado mostrado (también el encabezado de Excel);
  • type: text / number / percent / date / month / time / datetime;
  • precision: número de decimales;
  • format: formato personalizado de Excel (por ejemplo #,##0.00);
  • align: alineación.

Esta configuración determina directamente el profesionalismo de la exportación a Excel: encabezados localizados, números alineados a la derecha, separador de miles, formato de porcentaje… todo se resuelve aquí de una sola vez.

Dicho de otro modo: basta con configurar aquí los metadatos de columnas para que la calidad de la exportación a Excel no dependa de código adicional en el backend.

4.3 Módulo FORM: diseño de los parámetros de consulta

Es el punto de entrada de la interacción del reporte. Cada fila de la «tabla de configuración de parámetros» de la derecha define un parámetro de consulta:

Campo Descripción
Nombre del parámetro field Debe coincidir exactamente con el :nombre_parametro del SQL
Etiqueta visible label Texto mostrado en el formulario
Tipo de componente type text / number / select / radio / date / month / datetime / hidden / temp
Opciones estáticas static_options Formato clave:valor,clave:valor
API dinámica / SQL Admite marcadores de posición {nombre_variable} para lograr el encadenamiento de parámetros

Encadenamiento de parámetros (filtros dependientes)

Esta es una característica muy práctica del módulo FORM: cuando un desplegable depende de un parámetro anterior (por ejemplo, solo se puede cargar la «lista de departamentos» tras «seleccionar organización»), se puede hacer referencia en api_url o query_sql a marcadores como {P_OU_ID}.

Cuando el usuario cambia el valor del parámetro anterior, el sistema refresca automáticamente las opciones posteriores, sin necesidad de escribir código JavaScript adicional.

En la parte inferior del panel derecho hay además una zona de vista previa en tiempo real: al terminar la configuración de parámetros ya se ve el resultado renderizado, y con un clic se puede «copiar y aplicar» el código HTML generado al editor.

4.4 Módulo HTML: presentación de resultados

¿En qué forma se presentan al usuario los resultados una vez ejecutado el reporte? El módulo HTML se encarga de definir esta capa.

La «configuración de componentes de vista HTML» del panel derecho admite varios bloques de presentación; cada bloque incluye:

  • ID del contenedor;
  • Título;
  • Ancho de rejilla (1~12);
  • Tipo de componente: table (tabla), chart (gráfico), card (tarjeta de indicadores), custom (contenedor personalizado);
  • Tipo de gráfico (line / bar);
  • Mapeo de campos de los ejes X/Y.

Al final, cuando el usuario descarga el resultado HTML, el sistema renderiza dinámicamente una página completa con tablas, gráficos y tarjetas de KPI, y los parámetros de consulta también se muestran encima del resultado.

Gracias a esta capa, el «lado de presentación» del reporte también se vuelve configurable, y ya no hace falta escribir una página frontend para cada reporte.

4.5 Flujo de publicación

Todo el flujo se recorre en una sola línea:

  1. Crear el reporte (estado Draft);
  2. Entrar en el diseñador y completar sucesivamente la configuración SQL → FORM → HTML;
  3. Hacer clic en «Guardar todo»;
  4. Volver a la lista de reportes y cambiar el estado a Release;
  5. El usuario normal, tras iniciar sesión, ya puede ver y ejecutar el reporte en el menú de la responsabilidad correspondiente.

5. Perspectiva del usuario normal: elegir reporte → rellenar parámetros → esperar el resultado

El recorrido del usuario normal es muy sencillo:

  1. Iniciar sesión en la página principal del portal (admite cuenta local o autenticación vía Oracle EBS ERP);
  2. Hacer clic en «Nueva solicitud de reporte»;
  3. Navegar por el menú de reportes agrupado por responsabilidades, o buscar por nombre;
  4. Elegir el reporte y rellenar el formulario de parámetros;
  5. Enviar; el sistema lo ejecuta de forma asíncrona;
  6. Consultar el estado en la lista «Mis solicitudes» y, al terminar, descargar los resultados Excel / HTML / JSON / TEXT desde el desplegable «Salida».

Transición de estados de la solicitud

Queued (en cola) → Processing (en ejecución) → Success (éxito) → Error (fallo) → Terminated (finalizado por tiempo de espera)

El sistema sondea las tareas en cola cada 3 segundos en segundo plano; el nivel de concurrencia es ajustable y por defecto se ejecutan como máximo 3 tareas simultáneamente. El tiempo de espera por defecto es de 30 minutos y puede ajustarse en la configuración.

6. Detalles de diseño que merecen atención

1. Reporte = tres bloques de código + tres JSON de formato

SQL, FORM y HTML tienen cada uno dos piezas de datos: el «código» y el «JSON de formato», lo que deja espacio para futuras extensiones como gestión de versiones y reutilización de plantillas.

2. La exportación a Excel depende estrictamente de los metadatos de columnas

No se trata de «exportar primero y postprocesar después», sino de que el estilo de Excel se decide en la fase de diseño. Esto significa que el diseñador del reporte controla por completo la calidad de la salida, sin depender de scripts adicionales de segundo procesamiento.

3. El encadenamiento de parámetros no requiere escribir JavaScript

El mecanismo de marcadores de posición implementa la dependencia entre parámetros y reduce la barrera de desarrollo frontend.

4. Aislamiento de permisos de solicitudes

Los usuarios normales solo ven sus propios registros de solicitudes; el administrador ve todos. Cuando un usuario autenticado vía ERP envía una solicitud, el sistema valida además los permisos de organización OU/ORG para impedir accesos no autorizados.

5. Almacenamiento de datos transparente

Todos los datos de negocio se almacenan en conf/data.dat y los archivos de resultados se generan en el directorio data/. Para migrar basta con copiar los directorios conf/ y data/, todo muy claro.

7. Escenarios de uso y puntos a tener en cuenta

¿Para qué escenarios es adecuado?

  • Gestión centralizada de informes de datos internos de la empresa, especialmente para equipos que ya usan Oracle EBS;
  • Necesidad de entregar reportes rápidamente, con definición, ejecución y resultados trazables;
  • Deseo de reducir el coste de desarrollo de reportes, permitiendo que personal de negocio o DBA que dominen SQL configuren reportes de forma independiente.

Puntos a tener en cuenta

  • La versión actual está adaptada por defecto a Oracle; para otras bases de datos (como MySQL o PostgreSQL) hay que adaptarla por cuenta propia;
  • Sin licencia, la cantidad de reportes está limitada a 3; para uso formal hay que importar un archivo de licencia válido;
  • Los cambios en la configuración del sistema (como puerto o contraseña de Oracle) requieren reiniciar el servicio para surtir efecto (excepto la configuración de tiempo de espera de sesión).

Palabras finales

La impresión general que me deja SQLVantage es: pragmático, contenido y fácil de usar.

No persigue ciegamente ser «grande y completo», sino que, en torno al escenario central del «reporte», encadena en una ruta clara y completa los eslabones clave: gestión de SQL, interacción de parámetros, presentación de resultados y aislamiento de permisos.

Para los equipos que sufren con la gestión de reportes, ofrece una solución de referencia interesante: sirve como herramienta de producción directa y también como ejemplo de estudio para comprender las ideas de diseño de un sistema de reportes web ligero.

Si también buscas un sistema de reportes sencillo, fácil de usar y auto-desplegable, prueba a empezar con SQLVantage.

Este artículo se basa en la documentación oficial de SQLVantage v1.0.2 (publicada el 2026-07-15). Para más detalles, consulta la documentación multilingüe incluida en el proyecto (directorio docs/).