Herramienta de Etendo de SQL a CSV
Javapackage: com.etendoerp.copilot.toolpack
Visión general
La Herramienta de Etendo de SQL a CSV es una herramienta especializada para ejecutar consultas SQL en la base de datos de Etendo y convertir los resultados a formato CSV. Se conecta a Etendo mediante el webhook DBQueryExec, ejecuta consultas SELECT de forma segura y exporta los resultados JSON como archivos CSV para facilitar el análisis de datos y la elaboración de informes.
Info
Para poder incluir esta funcionalidad, debe estar instalado el bundle Copilot Extensions Bundle. Para ello, siga las instrucciones del marketplace: Copilot Extensions Bundle. Para obtener más información sobre las versiones disponibles, la compatibilidad con el core y las nuevas funcionalidades, visite Copilot Extensions - Notas de la versión.
Funcionalidad
Esta herramienta es esencial para tareas de extracción de datos, elaboración de informes y análisis dentro de Etendo. Proporciona una forma segura y estandarizada de consultar la base de datos y exportar resultados. La herramienta gestiona:
- Integración con la base de datos: se conecta a la base de datos de Etendo mediante el webhook seguro DBQueryExec
- Ejecución de consultas: ejecuta sentencias SELECT con validación de seguridad automática
- Exportación de datos: convierte resultados JSON a formato CSV para facilitar la manipulación de datos
- Aplicación de seguridad: solo permite consultas SELECT y valida los alias de tablas por seguridad
- Gestión de autenticación: gestiona automáticamente la autenticación y la configuración del host
El uso de esta herramienta consta de las siguientes acciones:
-
Parámetros de procesamiento
Toma los siguientes parámetros de entrada:
sql_query: la consulta SELECT que se va a ejecutar (obligatorio, debe incluir alias de tablas)output_file: ruta donde guardar el archivo CSV (opcional, crea un archivo temporal si no se especifica)include_headers: si se deben incluir los encabezados de columna en la salida CSV (opcional, por defecto: true)
-
Validación de consultas
La herramienta valida la consulta SQL por seguridad:
- Solo se permiten sentencias SELECT
- Se bloquean palabras clave peligrosas (DROP, DELETE, UPDATE, etc.)
- Debe cumplir el requisito de Etendo de que todas las tablas tengan alias
-
Ejecución en base de datos
Se conecta a Etendo usando el webhook DBQueryExec:
- Recupera automáticamente el token de autenticación y la configuración del host
- Ejecuta la consulta con los filtros de seguridad integrados de Etendo
- Devuelve datos JSON estructurados con columnas y filas
-
Conversión a CSV
Convierte la respuesta JSON a formato CSV:
- Extrae los nombres de columnas y las filas de datos de la respuesta del webhook
- Gestiona la inclusión opcional de encabezados
- Escribe el archivo CSV con la codificación adecuada (UTF-8)
-
Informe de resultados Devuelve información detallada sobre la operación:
Funcionalidades de seguridad
La Herramienta de Etendo de SQL a CSV implementa múltiples capas de seguridad:
- Restricción de consultas: solo se permiten sentencias SELECT, evitando la modificación de datos
- Filtrado de palabras clave: bloquea palabras clave y operaciones SQL peligrosas
- Requisito de alias: aplica el requisito de seguridad de Etendo para los alias de tablas
- Autenticación automática: utiliza autenticación segura basada en token mediante el contexto de Copilot
- Seguridad del lado del servidor: aprovecha los controles de acceso y los filtros de datos integrados de Etendo
Requisitos de consultas SQL
Todas las consultas SQL deben seguir los estándares de seguridad de Etendo:
Formato requerido
- Solo SELECT: solo se permiten sentencias SELECT
- Alias de tablas: todas las tablas deben tener alias (p. ej.,
FROM ad_user u, noFROM ad_user) - Tablas accesibles: solo se pueden consultar las tablas accesibles para el usuario actual
- Filtros de seguridad: Etendo aplica automáticamente filtros de seguridad de organización y cliente
Ejemplos de consultas válidas
-- Query active users
SELECT u.name, u.email, u.created
FROM ad_user u
WHERE u.isactive = 'Y'
-- Query business partners with contact information
SELECT bp.name as business_partner, bp.taxid, l.phone, l.email
FROM c_bpartner bp
LEFT JOIN c_bpartner_location bpl ON bp.c_bpartner_id = bpl.c_bpartner_id
LEFT JOIN c_location l ON bpl.c_location_id = l.c_location_id
WHERE bp.iscustomer = 'Y'
-- Query sales orders with details
SELECT so.documentno, so.dateordered, so.grandtotal, bp.name as customer
FROM c_order so
JOIN c_bpartner bp ON so.c_bpartner_id = bp.c_bpartner_id
WHERE so.issotrx = 'Y'
AND so.docstatus = 'CO'
Ejemplos de consultas no válidas
-- Missing table alias
SELECT name FROM ad_user WHERE isactive = 'Y'
-- Non-SELECT operation
UPDATE ad_user SET isactive = 'N' WHERE ad_user_id = '123'
-- Dangerous keywords
DROP TABLE temp_table
Ejemplo de uso
Imagine que queremos exportar usuarios activos con sus roles a un archivo CSV para su análisis. Nuestros parámetros serían:
- sql_query:
SELECT u.name, u.email, r.name as role FROM ad_user u JOIN ad_user_roles ur ON u.ad_user_id = ur.ad_user_id JOIN ad_role r ON ur.ad_role_id = r.ad_role_id WHERE u.isactive = 'Y' - output_file:
/tmp/active_users_with_roles.csv - include_headers: true
La Herramienta de Etendo de SQL a CSV:
- Validará que la consulta cumple los requisitos de seguridad
- Ejecutará la consulta mediante el webhook DBQueryExec
- Convertirá los resultados JSON a formato CSV
- Guardará el archivo incluyendo los encabezados
- Devolverá un mensaje de éxito con los detalles de la operación
Gestión de errores
La herramienta proporciona una gestión de errores completa para escenarios habituales:
- SQL no válido: devuelve mensajes de error detallados para infracciones de sintaxis o seguridad
- Problemas de conexión: informa de problemas de autenticación o de red con el webhook
- Errores de permisos: indica cuándo las tablas o los datos no son accesibles para el usuario
- Problemas del sistema de archivos: informa de problemas al crear o escribir el archivo CSV
- Resultados vacíos: gestiona de forma adecuada las consultas que no devuelven datos