← Todas las utilidades

NSADALoader

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

Qué es NSADALoader

nsadaloader carga datos desde ficheros JSON, CSV, TSV y XML hacia bases de datos Adabas. Inserta registros nuevos (STORE, sin campo isn) y actualiza existentes (UPDATE, con campo isn) desde un único fichero que puede abarcar varios archivos y bases de datos. Soporta campos MU (arrays), grupos PE (arrays de objetos) y notación de índices (CAMPO[n], CAMPO[n,m]), además de exportar (-output) y generar plantillas (-describe).

Usos ideales:

  • Migración de datos desde sistemas externos hacia Adabas.
  • Carga inicial de datos maestros y ETL automatizados.
  • Actualización masiva de registros (por ISN o por índices MU/PE).
  • Exportación, edición y recarga (flujo -output → editar → -input).

Los dbid, fnr, campos y datos de los ejemplos son ficticios.

Casos de uso

1. Carga inicial de clientes (STORE)

Insertar tres clientes nuevos desde un JSON autocontenido.

nsadaloader -input /tmp/carga/clientes_nuevos.json
{ "dbid": 50, "fnr": 15, "records": [{ "AA": "CLI001", "AB": "EMPRESA EJEMPLO" }] }

2. Actualización masiva por ISN (UPDATE)

Actualizar nombres y salarios de registros existentes identificados por su ISN.

nsadaloader -input /tmp/carga/actualizar_salarios.json

3. Migración multi-fichero en una sola pasada

Cargar clientes (fichero 15) y pedidos con grupo PE (fichero 16) de la misma base de datos desde un único fichero.

nsadaloader -input /tmp/carga/migracion_completa.json -batch 100

4. Carga desde CSV con esquema DDM

Cargar facturas desde CSV con conversión de tipos según el DDM (fechas, empaquetados, PE/MU).

nsadaloader -dbid 50 -fnr 20 -config /tmp/cfg/ddm_facturas.json -input /tmp/carga/facturas.csv

5. Exportar, editar y recargar

Exportar con ISN, corregir en un editor y recargar: los registros con isn se actualizan, sin isn se insertan.

nsadaloader -dbid 50 -fnr 15 -output /tmp/carga/empleados_export.json
nsadaloader -input /tmp/carga/empleados_export.json

Referencia de comandos

Carga (STORE/UPDATE)

ParámetroDescripciónRequerido
-inputFichero de entrada con los registros (JSON, CSV, TSV o XML)Sin -describe ni -output
-dbidID de la base de datos Adabas (sobrescribe el valor del fichero)Según formato (sí en legacy/plano)
-fnrNúmero del fichero Adabas (sobrescribe el valor del fichero)Según formato (sí en legacy/plano)
-ddmnameNombre DDM desde el fichero de configuraciónSegún formato
-configFichero JSON de configuración con definiciones DDM (generado por nsddm)Si se usa -ddmname (recomendado con CSV/TSV/XML)
-formatFormato de entrada: json, csv, tsv o xml (por defecto se deduce de la extensión)No
-batchRegistros por transacción (por defecto 100; 0 = una sola transacción)No

Exportación

ParámetroDescripciónRequerido
-outputFichero JSON de salida para exportar registros desde Adabas (compatible con -input)Si se exporta
-limitMáximo de registros a exportar (0 = sin límite)No

Plantillas y lectura (-describe)

ParámetroDescripciónRequerido
-describeDescribe la estructura del fichero y genera una plantilla JSON editable (conexión de solo lectura)No
-isnISN a leer, solo con -describe (plantilla con datos reales)No

Comunes y licencia

ParámetroDescripciónRequerido
-silenceModo silenciosoNo
-debugLog detalladoNo
-etidID de transacción externa (ETID)No
-versionMuestra la versiónNo
-licenseRuta al fichero license.key firmado (por defecto: resolución automática)No
-license-fingerprintImprime la huella de esta máquina (para emitir una licencia) y saleNo

Ejemplos comentados

# 1. Carga básica autocontenida (STORE sin isn / UPDATE con isn)
nsadaloader -input /tmp/carga/carga_simple.json

# 2. Transacciones cada 50 registros (recomendado en cargas grandes)
nsadaloader -input /tmp/carga/lote_50000.json -batch 50

# 3. Plantilla vacía, edición y carga (flujo -describe)
nsadaloader -dbid 50 -fnr 15 -describe > /tmp/carga/plantilla.json
nsadaloader -input /tmp/carga/plantilla.json

# 4. Leer un registro real como plantilla (ISN 42) y exportar muestra
nsadaloader -dbid 50 -fnr 15 -describe -isn 42 > /tmp/carga/registro42.json
nsadaloader -dbid 50 -fnr 16 -output /tmp/carga/muestra.json -limit 50

# 5. Carga CSV con DDM y carga XML plana con flags CLI
nsadaloader -dbid 50 -fnr 20 -config /tmp/cfg/ddm_facturas.json -input /tmp/carga/facturas.csv
nsadaloader -dbid 50 -fnr 20 -config /tmp/cfg/ddm_facturas.json -input /tmp/carga/facturas_planas.xml

# 6. Huella de máquina y carga con licencia explícita
nsadaloader -license-fingerprint
nsadaloader -license /opt/ns/licenses/nsadaloader.key -input /tmp/carga/registros.json

Códigos de retorno

CódigoSignificado
0Éxito
1Error en parámetros
2Error en el fichero de configuración o de entrada
3Error de conexión
4Error durante la carga

Una licencia inválida (app equivocada, máquina distinta, caducada o corrupta) bloquea la ejecución con código distinto de cero.

Preguntas frecuentes

¿Cómo distingue STORE de UPDATE? Por el campo isn: sin isn inserta (Adabas asigna ISN nuevo); con isn actualiza ese registro. En CSV/TSV/XML la columna o elemento isn equivale al campo JSON. Para duplicar registros exportados, elimine el isn.

¿Necesito -config? Solo si usa -ddmname o nombres DDM en los datos. Sin -config, el fichero debe usar nombres cortos (AA, AB). Con CSV/TSV/XML se recomienda -config para que fechas, empaquetados y numéricos se conviertan según el tipo real del campo.

¿Cómo cargo campos MU y PE? MU como arrays ("AG": ["a@x.com", "b@x.com"]), PE como arrays de objetos ("AD": [{"AE": "...", "AF": "..."}]). Para actualizar ocurrencias sueltas use índices 1-based: AG[2], AE[1], AJ[1,2] (PE n, MU m). En CSV la notación es BC[1], AE[1].AF, AQ[1].AU[2]; en XML, elementos repetidos.

¿Qué tamaño de -batch uso? El defecto (100) vale para la mayoría de casos; en cargas de más de 10.000 registros use entre 50 y 500. Con -batch 0 todo va en una sola transacción (más rápido, pero más riesgo ante un fallo). Si un registro falla, la utilidad continúa con el siguiente.

También disponible en: en