← Todas las utilidades

NSADALoader

Versión 26.1 (build 15) Ver la PPT
Índice

Presentación comercial: PDF (ES) · PPTX (ES) · PDF (EN) · PPTX (EN)

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), borra por ISN (DELETE, modo un registro con -delete) y opera sobre un registro en una sola línea (-set/-data) 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

6. Operación de un registro en una línea (INSERT/UPDATE/DELETE)

Sin fichero -input: -set k=v,k=v o -data con objeto JSON. UPDATE/DELETE por -isn; DELETE exige -delete. Toda operación real exige -yes; -dry-run previsualiza sin transacción.

nsadaloader -dbid 50 -fnr 20 -set "AA=CLI001,AB=EMPRESA EJEMPLO" -dry-run
nsadaloader -dbid 50 -fnr 20 -set "AA=CLI001,AB=EMPRESA EJEMPLO" -yes
nsadaloader -dbid 50 -fnr 20 -isn 42 -set "AB=NUEVO NOMBRE" -yes
nsadaloader -dbid 50 -fnr 20 -isn 42 -delete -yes

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

Un registro sin -input (INSERT/UPDATE/DELETE)

ParámetroDescripciónRequerido
-setCampos del registro k=v,k=v (MU: AG=a;b o AG[1]=a; PE: AE[1].AF=x). Alternativa a -dataSí, sin -data (salvo DELETE)
-dataCampos del registro como objeto JSON '{"AA":"x","AG":["a","b"]}'. Alternativa a -setSí, sin -set (salvo DELETE)
-isnISN objetivo del UPDATE/DELETE de un registroEn UPDATE/DELETE
-deleteBorra un registro por -isn (sin -set/-data)En DELETE
-yesConfirma INSERT/UPDATE/DELETE de un registro (obligatorio salvo -dry-run)En operación real
-dry-runPrevisualiza sin ejecutar transacciónNo

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

# 7. Un registro en una línea: previsualizar, insertar, actualizar y borrar
nsadaloader -dbid 50 -fnr 20 -set "AA=CLI001,AB=EMPRESA EJEMPLO" -dry-run
nsadaloader -dbid 50 -fnr 20 -set "AA=CLI001,AB=EMPRESA EJEMPLO" -yes
nsadaloader -dbid 50 -fnr 20 -isn 42 -set "AB=NUEVO NOMBRE" -yes
nsadaloader -dbid 50 -fnr 20 -isn 42 -delete -yes

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.

¿Cómo borro un registro? Solo en modo un registro: nsadaloader -dbid 50 -fnr 20 -isn 42 -delete -yes (o -dry-run para previsualizar). No hay borrado masivo por fichero en esta versión; exporte antes con -output como copia de seguridad.

¿-set o -data? -set "AA=x,AB=y" para casos simples (MU con ;, PE con AE[1].AF=x); -data '{"AA":"x","AG":["a","b"]}' para MU/PE complejos. Son excluyentes y ambos aceptan nombres DDM con -config.

¿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