Ir al contenido

Exportación de datos

Formulario de exportación

Cualquier consulta puede exportarse sin escribir código adicional. Los formatos disponibles en el formulario son:

Formato Contenido
XLS Planilla de cálculo (Excel, LibreOffice); el archivo se genera como .xlsx
PDF El mismo diseño que la impresión
CSV Texto delimitado, con separador y extensión configurables
XML Formato propio de Histrix, reimportable por el sistema

Según la definición del XML se habilitan dos formatos más: Ldif cuando el contenedor declara ldifExport, y Wordpress cuando hay algún campo con wp_title="true". El motor también puede generar RSS a partir de una consulta.

El formato por omisión es XLS y se cambia con exportFormat:

<histrix tipo="consulta" exportFormat="Csv">

Al exportar a CSV se pueden elegir el delimitador y la extensión del archivo:

Opciones de CSV

Ambos se pueden predefinir en el XML:

<histrix tipo="consulta" delimiter=";">
<histrix tipo="consulta" extension="txt">

Para ocultar el botón de exportar en un programa:

<histrix tipo="consulta" export="false">
Método Ruta Descripción
GET /api/db/{db}/export/{formato}/{xml} Exporta un XML directamente
GET /api/db/{db}/instance/{instance}/export/{formato}/ Exporta lo que muestra una instancia
Ventana de terminal
curl --header "Authorization: Bearer $TOKEN" -o ventas.xlsx \
"https://servidor/api/db/cliente/export/xls/ventas/qry/ventas_qry.xml"

Los parámetros de query separator, extension, range y title afectan el archivo generado.

Una exportación de muchas filas puede exceder el tiempo de respuesta del servidor. Para esos casos existe el circuito por trabajos: se encola la exportación, se consulta el estado y se descarga el archivo cuando está listo.

Ventana de terminal
# 1. Encolar: devuelve el identificador del trabajo
curl --header "Authorization: Bearer $TOKEN" \
"https://servidor/api/db/cliente/instance/$INSTANCE/export/start/xls/"
# {"jobId":"a1b2c3d4","status":"processing"}
# 2. Consultar el estado
curl --header "Authorization: Bearer $TOKEN" \
"https://servidor/api/db/cliente/export-job/status/a1b2c3d4"
# 3. Descargar el resultado
curl --header "Authorization: Bearer $TOKEN" -o ventas.xlsx \
"https://servidor/api/db/cliente/export-job/download/a1b2c3d4"

El servidor responde el jobId de inmediato, cierra la conexión y sigue generando el archivo en segundo plano con un límite de 10 minutos. Cuando el entorno no permite cerrar la conexión antes de terminar, la generación se hace en el mismo request y el jobId queda disponible igual.