← Todas las utilidades

NSAdaFile

Versión 26.1 (build 312) Prueba 30 días
Índice

Qué es NSAdaFile

nsadafile extrae datos de bases de datos Adabas y los exporta a formatos universales: csv, json, xml, tab y record. Soporta selección de campos por nombre corto o DDM, búsquedas con sintaxis Adabas (-search), consultas SQL con JOIN (-sql), lectura ordenada por descriptor (-sortby), rangos por ISN y ajuste de rendimiento (-multifetch, -blocksize).

Usos ideales:

  • Exportación de datos para análisis (CSV/JSON).
  • Integración con sistemas externos y APIs.
  • Respaldo y migración de información.
  • Auditoría y diagnóstico (modo -fdt, -check, -debug).

Los números de base de datos, ficheros, campos y rutas de los ejemplos son ficticios.

Casos de uso

1. Exportación nocturna a CSV para análisis

Extraer un fichero completo con límite y guardarlo en disco para su procesado posterior.

nsadafile -dbid 50 -fnr 15 -limit 10000 -format csv -outfile /tmp/export/clientes.csv

2. Integración con una API mediante JSON

Extraer solo los campos necesarios y filtrar por ciudad con la sintaxis de búsqueda Adabas.

nsadafile -dbid 50 -fnr 15 -search "AB='MADRID'" -fields "AA,AB,AC" -format json -outfile /tmp/export/clientes_madrid.json

3. Auditoría de un rango de registros por ISN

Revisar los primeros 500 registros en formato legible de registro, incluyendo el ISN.

nsadafile -dbid 50 -fnr 15 -fromisn 1 -toisn 500 -isn -format record

4. Explotación SQL con nombres DDM

Consultar con JOIN entre tablas definidas en el JSON de configuración (generado por nsddm).

nsadafile -dbid 50 -config /tmp/cfg/ddm50.json -sql "SELECT AA, AB FROM CLIENTES-MAESTROS WHERE AB='EMPRESA EJEMPLO'" -format csv

5. Verificación de consistencia DDM frente a FDT

Comparar el JSON de configuración con la FDT real de Adabas antes de una migración.

nsadafile -dbid 50 -config /tmp/cfg/ddm50.json -check -json -outfile /tmp/export/check.json

Referencia de comandos

Conexión y selección del fichero

ParámetroDescripciónRequerido
-dbidID de la base de datos Adabas
-fnrNúmero del fichero Adabas a extraerSi no se usa -ddmname
-ddmnameNombre DDM (nombre lógico del fichero desde el JSON de configuración). Sobrescribe fnr si hay configSi no se usa -fnr
-configFichero JSON de configuración con definiciones del esquemaSi se usa -ddmname
-inputAlias de -config (fichero JSON DDM, p. ej. ddm50.json)No
-etidETID (ID de transacción externa) para la conexiónNo
-readonlyModo solo lectura (sin actualizaciones)No

Filtrado, orden y selección de datos

ParámetroDescripciónRequerido
-sqlSentencia SQL SELECT. Soporta SELECT, FROM, WHERE, JOIN (INNER, LEFT, RIGHT, FULL), ORDER BY, GROUP BY, LIMIT, OFFSET, DISTINCTNo
-searchBúsqueda con sintaxis Adabas, por nombre corto (AA) o DDM. Admite =, rangos [a:b], and/orNo
-sortbyDescriptor/superdescriptor para lectura en orden lógico (nombre corto o DDM)No
-fromisnISN inicial para lectura por secuenciaNo
-toisnISN final para lectura por secuenciaNo
-fieldsCampos a extraer. Admite nombre corto o DDM; MU (AO[1], AO[1,5]) y PE (AU[1], AV[1,1]). Si se omite, extrae todosNo
-limitLimita el número de registros extraídosNo
-partialreadHabilita el modo de lectura parcialNo

Formato y destino de salida

ParámetroDescripciónRequerido
-formatFormato de salida: csv, json, xml, tab, record (por defecto tab)No
-delimiterDelimitador CSV (por defecto ;; en formato tab usa tabulación o un delimitador personalizado)No
-outfileRuta del fichero de salida (stdout si se omite)No
-isnIncluye el ISN en la salidaNo
-fdtMuestra la FDT (Field Definition Table) en lugar de los datosNo
-silenceModo silencioso (suprime banner y progreso)No

Rendimiento

ParámetroDescripciónRequerido
-multifetchTamaño de multifetch para lecturas Adabas (por defecto 20)No
-blocksizeTamaño de bloque para lecturas Adabas (por defecto 65536)No
-recordbuffershiftDesplazamiento del búfer de registro (por defecto 100)No

Diagnóstico, verificación y licencia

ParámetroDescripciónRequerido
-checkComprueba consistencia DDM/FDT: compara el JSON DDM con la FDT de Adabas (requiere -dbid y -config/-input)No
-jsonInforme JSON legible por máquina para -check (a stdout o a -outfile)No
-verboseSalida detallada para -check (muestra los campos correctos)No
-debugActiva el log detallado para diagnósticoNo
-versionMuestra la versiónNo
-licenseRuta al fichero license.key (por defecto: resolución automática)No
-license-statusMuestra el estado detallado de la licenciaNo
-renew-licenseRenueva la licencia con un nuevo fichero license.keyNo

Ejemplos comentados

# 1. Extracción básica a stdout en formato tabulado
nsadafile -dbid 50 -fnr 15 -limit 10

# 2. JSON con campos seleccionados y búsqueda por descriptor
nsadafile -dbid 50 -fnr 15 -search "AA='CLI001'" -fields "AA,AB,AC" -format json -outfile /tmp/export/cli001.json

# 3. Rango por ISN ordenado por descriptor, en XML
nsadafile -dbid 50 -fnr 15 -fromisn 1 -toisn 500 -sortby "AA" -format xml -outfile /tmp/export/rango.xml

# 4. Consulta SQL con JOIN y nombres DDM
nsadafile -dbid 50 -config /tmp/cfg/ddm50.json -sql "SELECT a.AA, b.AB FROM CLIENTES-MAESTROS a INNER JOIN PEDIDOS-MAESTROS b ON a.AA=b.AA LIMIT 100" -format csv

# 5. FDT del fichero (estructura, sin datos)
nsadafile -dbid 50 -fnr 15 -fdt

# 6. Extracción grande con rendimiento ajustado y sin progreso
nsadafile -dbid 50 -fnr 15 -multifetch 50 -blocksize 131072 -limit 10000 -format json -silence -outfile /tmp/export/grande.json

Códigos de retorno

CódigoSignificado
0Éxito
1Error en parámetros de línea de comandos
2Error en el fichero de configuración
3Error de conexión a la base de datos
4Error de extracción de datos

Preguntas frecuentes

¿Necesito siempre -config? No. Sin -config se trabaja directamente con -dbid y -fnr y nombres cortos de campo (AA, AB). -config es obligatorio si usa -ddmname, nombres DDM o -sql; ese JSON lo genera nsddm.

¿Qué formato de salida elijo? csv para hojas de cálculo y análisis, json para APIs y procesado programático, xml para integración empresarial, tab para lectura rápida en consola y record para inspección visual registro a registro. El delimitador CSV se ajusta con -delimiter.

¿Cómo extraigo solo una parte del fichero? Combine -search (por índice), -sortby (orden lógico), -fromisn/-toisn (rango físico) y -limit (tope). Para grandes volúmenes, suba -multifetch y -blocksize.

¿Cómo verifico mi DDM antes de migrar? Con -check (y -json para salida máquina, -verbose para ver también los campos correctos). Requiere -dbid y -config/-input. Para estructura sin datos use -fdt; para diagnóstico, -debug.

También disponible en: en