AWS El servicio de modernización de mainframes (experiencia en entornos de ejecución gestionados) ya no está abierto a nuevos clientes. Para obtener prestaciones similares a las del Servicio de Modernización de AWS Mainframe (experiencia en entornos de ejecución gestionados), explore el Servicio de Modernización de AWS Mainframe (experiencia autogestionada). Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte Cambio en la disponibilidad de la modernización del AWS mainframe.
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Utilidades de conjuntos de datos
BLUESAMCOPY/BLUESAMCREATE/BLUESAMDELETE/BLUESAMCLEAR
Estos programas de utilidad proporcionan funciones esenciales de manipulación de conjuntos de datos en los conjuntos de datos de Blusam.
El bypassBluesamStatus indicador (almacenado en JobContext) determina si se debe omitir la validación normal del estado del conjunto de datos, que evita conflictos de acceso simultáneos entre los procesos en línea y los procesos por lotes.
Cuándo bypassBluesamStatus es verdadero:
Omite las comprobaciones normales del estado del conjunto de datos durante las operaciones
Permite el acceso a conjuntos de datos que normalmente estarían bloqueados
SAMCOPY AZUL
El programa BLUESAMCOPY copia la estructura de datos y metadatos de un conjunto de datos de Bluesam a otro.
Parameters
El programa BLUESAMCOPY utiliza dos parámetros:
FROM=<source dataset name>- Conjunto de datos fuente desde el que copiarTO=<target dataset name>- Conjunto de datos de destino al que se va a copiar
Comportamiento
Si el conjunto de datos de destino no existe, lo crea con la estructura de metadatos de la fuente
Si el destino existe, lo borra antes de copiarlo (sobrescribe los datos existentes)
La operación continúa cuando los procesos en línea no utilizan los conjuntos de datos o cuando
bypassBluesamStatusse establece en trueConserva las claves, la compresión, la longitud del registro y otras propiedades de los metadatos
Gestión de errores
Devuelve el código 1 si el conjunto de datos de origen no existe o si alguno de los conjuntos de datos está siendo utilizado por procesos en línea.
Ejemplo de uso
import ... mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class) // copy bluesam dataset res = mpr.withArguments("FROM=MYBLUESAMTABLE","TO=MYBLUESAMTABLE2").runProgram("BLUESAMCOPY")
BLUESAM CREATE
El programa BLUESAMCREATE crea un conjunto de datos Bluesam con los parámetros especificados.
Parameters
El programa BLUESAMCREATE toma siete parámetros:
name=<dataset name>- Conjunto de datos a crear (obligatorio)compress=<true/false>- Habilitar la compresión (opcional, predeterminado: false)fixedLength=<true/false>- Estado de los registros de longitud fija (opcional, predeterminado: falso)recordLength=<integer>- Longitud del registro en bytes (opcional, predeterminada: -1)primaryKey=<key id>,duplicates=<true/false>,fields=<offset,length,...>- Especificación de clave principal (opcional)key=<altkey id>,duplicates=<true/false>,fields=<offset,length,...>- Clave alternativa (puede ser múltiple o 0)clearExisting=true/false- Borrar el conjunto de datos existente (opción predeterminada: true)
Explicaciones de los parámetros clave específicos:
duplicates: si se permite o no duplicar el valor de la clave dada;fields: Posiciones de los campos (basadas en 1) y longitudes que definen la clave;
Comportamiento
Si el conjunto de datos no existe, lo crea con los parámetros especificados
Si el conjunto de datos existe, lo borra si
clearExisting=trueLa operación continúa cuando los procesos en línea no utilizan los conjuntos de datos o cuando
bypassBluesamStatusestá configurado entrue
Condiciones de error
Devuelve el código 0 en todos los casos.
Ejemplo de uso
import ... mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class) // create bluesam dataset mpr.withArguments( "name=MYBLUESAMTABLE", "compress=FALSE", "fixedLength=true", "recordLength=54", "primaryKey=MYKEY_PK,duplicates=FALSE,fields=0,6") .runProgram("BLUESAMCREATE")
BLUESAMDELETE
El programa BLUESAMDELETE elimina los conjuntos de datos de Bluesam.
Parameters
El programa BLUESAMDELETE toma 1 o más parámetros:
<dataset name>- conjunto de datos para eliminar (puede tener varios)
Comportamiento
La operación continúa cuando los procesos en línea no utilizan los conjuntos de datos o cuando
bypassBluesamStatusestá configurado entrueSi el conjunto de datos existe, elimínelo
Condiciones de error
Devuelve el código 0 en todos los casos.
Ejemplo de uso
import ... mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class) // delete bluesam datasets res = mpr.withArguments("MYBLUESAMTABLE","MYBLUESAMTABLE2","MYBLUESAMTABLE3").runProgram("BLUESAMDELETE")
AZUL, SAMCLEAR
El programa BLUESAMCLEAR elimina todos los datos de los conjuntos de datos existentes al tiempo que conserva su estructura y metadatos.
Parameters
El programa BLUESAMCLEAR toma 1 o más parámetros:
<dataset name>- conjunto de datos para borrar (puede tener varios)
Comportamiento
La operación continúa cuando los procesos en línea no utilizan los conjuntos de datos o cuando
bypassBluesamStatusestá configurado entrueSi el conjunto de datos existe, bórrelo
Condiciones de error
Devuelve el código 0 en todos los casos.
Ejemplo de uso
import ... mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class) // clear bluesam datasets res = mpr.withArguments("MYBLUESAMTABLE","MYBLUESAMTABLE2").runProgram("BLUESAMCLEAR")
BPXWDYN
Este programa de utilidad simula el servicio z/OS BPXWDYN para la asignación y desasignación dinámica de conjuntos de datos. En las aplicaciones modernas, las asignaciones de archivos se realizan en scripts Groovy a través de la API del generador. FileConfigurationUtils Este programa permite la gestión dinámica de estas asignaciones sin Groovy, lo cual es esencial para el procesamiento de archivos interactivo o condicional en aplicaciones modernizadas.
Parameters
Se conserva el formato de argumento anterior. Espera un único argumento que contenga un encabezado de 2 bytes seguido de la cadena de comandos.
formato de cadena de comandos para la asignación: ALLOC DD(<name>) DSN('<dsn>') SHR?
formato de cadena de comandos para la desasignación: FREE DD(<name>)
Gestión de errores
Defina el código de error 0 para el éxito y 1 para el error
Lanza RuntimeException comandos o parámetros no válidos
Ejemplo de uso
A continuación, se muestra un ejemplo del uso del programa BPXWDYN en Java, como resultado de una modernización de COBOL mediante la transformación de AWS:
El código COBOL:
01 WK-AREA. 03 DS-ALLOC-STRING. 05 DS-LENGTH PIC S9(004) COMP VALUE 100. 05 DS-TEXT PIC X(100) VALUE "ALLOC DD(INFILE) DSN('A.B.JCLLIB(XYZ470)') SHR". ... 01 RC-RETURN-CODE-AREA. 03 RC-RETURN-CODE PIC S9(008) COMP. ... CALL 'BPXWDYN' USING DS-ALLOC-STRING RETURNING RC-RETURN-CODE.
y la correspondiente modernización de Java:
private final Group dsAllocString = new Group(root).named("DS-ALLOC-STRING"); private final Elementary dsLength = new Elementary(dsAllocString,new BinaryType(4, 0, "STD", false, false, true),Short.valueOf("100")).named("DS-LENGTH"); private final Elementary dsText = new Elementary(dsAllocString,new AlphanumericType(100),"ALLOC DD(INFILE) DSN('A.B.JCLLIB(XYZ470)') SHR").named("DS-TEXT"); ... private final Group root = new Group(getData()).named("RC-RETURN-CODE-AREA"); private final Elementary rcReturnCode = new Elementary(root,new BinaryType(8, 0, "STD", false, false, true)).named("RC-RETURN-CODE"); ... // Call to utility program BPXWDYN ctrl.callSubProgram( "BPXWDYN", CallBuilder.newInstance().byReference(ctx.getWkArea().getDsAllocStringReference()).getArguments(), ctx); ctx.getRcReturnCodeArea().setRcReturnCode(NumberUtils.convert(ctx.getProgramReturned()).intValue());
GDGUTILS
GDGs (Generation Data Group) permite que las aplicaciones funcionen con conjuntos de datos versionados, en los que cada ejecución crea una nueva generación y, al mismo tiempo, mantiene el acceso a las generaciones anteriores. Esta utilidad crea y administra estas generaciones de conjuntos de datos. Esta utilidad está pensada para ser llamada en scripts geniales.
Parameters
el orden de los parámetros no importa
action=<create|refreshevents>- Operación a realizar (obligatoria)gdgname=<name>- Nombre de la base del GDG (obligatorio)storageProvider=<filesystem|bluesam>- Backend de almacenamientorelativeGeneration=<+integer>- Número de generación relativo (por ejemplo, +1 para la siguiente)absoluteGeneration=integer- Número de generación absolutorecordLength=<integer>- Tamaño del registro en el conjunto de datosfixedLength=<true/false>- Especifica que los registros tienen una longitud fija en el conjunto de datosownerPath=<File system path>- La ruta para almacenar el conjunto de datos (específica del sistema de archivos, obligatoria en ese caso)compress=<true/false>- Indica que los datos deben permanecer comprimidos en la memoria si se comprimieron en el almacén de datos (específico de Bluesam) (opcional, el valor predeterminado es false)catalog- Especifica el conjunto de datos que se va a catalogar (opcional)warmUp- Indica que el conjunto de datos debe cargarse en la memoria al abrirse (específico de Bluesam) (opcional)
RelativeGeneration o AbsoluteGeneration: es necesario establecer una de estas propiedades.
Operaciones
create: crea una nueva generación de conjuntos de datos GDG de acuerdo con los metadatos GDG (gestiona tanto el sistema de archivos como el almacenamiento de Bluesam)
refreshevents: ajusta el número de generación (metadatos de Gdg) sin crear nuevos conjuntos de datos (se utiliza al reiniciar trabajos fallidos que ya han creado conjuntos de datos)
Gestión de errores
Defina el código de error 0 para el éxito y 1 para el error
Lanza RuntimeException comandos o parámetros no válidos
Ejemplo de uso
Operación de creación de Gdg: el siguiente código crea una generación bluesam (43) para el conjunto de datos IC.PLI.GDGTEST
import ... mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class) Map params = new Hashtable() params.put("jobContext", jobContext) Object[] args =["action=create","gdgname=IC.PLI.GDGTEST","absoluteGeneration=43","storageProvider=bluesam","recordLength=80"] mpr.withParameters(params).withArguments(args).runProgram("GDGUTILS")
Operación Gdg refreshevents: solo RelativeGeneration es relevante para esta operación. El siguiente código actualiza el número de generación (+1 en comparación con la generación actual) del conjunto de datos IC.PLI.GDGTEST
import ... mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class) Map params = new Hashtable() params.put("jobContext", jobContext) Object[] args =["action=refreshevents","gdgname=IC.PLI.GDGTEST","relativeGeneration=1","storageProvider=bluesam"] mpr.withParameters(params).withArguments(args).runProgram("GDGUTILS")
ICEGENER/SYNCGENR
Este programa de utilidad imita el comportamiento de la utilidad del z/OS sistema ICEGENER, copia los conjuntos de datos de la entrada (conjunto de datos) a la salida (conjunto de datos). SYSUT1 SYSUT2 Esta implementación de Java proporciona una funcionalidad equivalente que admite el almacenamiento tanto del sistema de archivos como de Bluesam.
Parameters
Sin argumento
Conjuntos de datos necesarios
SYSUT1: Conjunto de datos/archivo de entrada
SYSUT2: conjunto de datos/archivo de salida
Manejo de la disposición del conjunto de datos SYSUT2
NUEVO: Cree un nuevo conjunto de datos/archivos
OLD/SHR: Use existing dataset/file(debe existir)
MOD: modificar, crear si falta, agregar si existe
Gestión de errores
Establezca el código de error 0 si la copia se realiza correctamente, 1 si no
Se lanza
IllegalStateExceptionpor un uso no válido del conjunto de datos de Bluseam
Ejemplo de uso
A continuación, se muestra un magnífico ejemplo del uso del programa ICEGENER, resultante de una modernización de JCL mediante la transformación de AWS:
El código JCL:
//STEP01 EXEC PGM=ICEGENER //SYSUT1 DD DSN=POI.INPUT,DISP=SHR //SYSUT2 DD DSN=POI.OUTPU, // DISP=(,CATLG,DELETE), // UNIT=3490, // DCB=(RECFM=FB,LRECL=100) /*
y la correspondiente modernización de Groovy:
mpr .withFileConfigurations(new FileConfigurationUtils() .withJobContext(jobContext) .bluesam("SYSUT1") .dataset("POI.INPUT") .disposition("SHR") .build() .bluesam("SYSUT2") .dataset("POI.OUTPU") .normalTermination("CATLG") .abnormalTermination("DELETE") .build() .getFileConfigurations()) .withParameters(params) .runProgram("ICEGENER")
IDCAMS/KQCAMS
Este programa de utilidad imita el comportamiento de los programas antiguos IDCAMS, que es una herramienta de administración de datos de mainframe que se utiliza para las operaciones de archivos VSAM (Método de acceso al almacenamiento virtual). Procesa los comandos IDCAMS antiguos y mantiene la misma sintaxis que las entradas SYSIN originales.
Contexto
El comportamiento del programa se puede configurar mediante dos parámetros definidos en: application-utility-pgm.yml
JCLType: identificador de tipo JCL (vse o mvs). Los PRINT/REPRO comandos de la utilidad IDCAMS devuelven 4 si el archivo está vacío en el caso de jcl que no es vse
forcedCharsetIdcams: Anulación opcional del conjunto de caracteres para el procesamiento de IDCAMS
Parameters
Sin argumento. Las operaciones se transfieren a través del conjunto de datos SYSIN.
Conjuntos de datos necesarios
SYSIN: contiene sentencias de comando de IDCAMS
Conjuntos de datos de entrada/salida: tal como se indica en los comandos de IDCAMS (según la sentencia IDCAMS)
Características principales/Comandos compatibles
Los detalles sobre los comandos IDCAMS que se encuentran en la tarjeta de control SYSIN no se proporcionan aquí, pero deben consultarse en la documentación de las plataformas antiguas relevantes existentes.
DEFINIR: crea clústeres y conjuntos de datos de VSAM
ELIMINAR: elimina conjuntos de datos (admite caracteres comodín)
REPRO: copia datos entre conjuntos de datos
IMPRIMIR: muestra el contenido del conjunto de datos
VERIFICAR: valida la existencia e integridad del conjunto de datos
ALTER: modifica los atributos del conjunto de datos (cambio de nombre)
ALLOC: asigna conjuntos de datos de forma dinámica
SET: gestiona los códigos de condición (LASTCC/MAXCC)
IF-THEN-ELSE - Ejecución de comandos condicionales
CANCELAR: finaliza la ejecución del trabajo
Gestión de errores
Defina el código de error 0 si el último comando se ejecuta correctamente y -1 si falla
Los comandos SET (LASTCC) se pueden usar para anular el código de error, p. ej.
SET LASTCC = 0
Ejemplo de uso
A continuación, se muestra un magnífico ejemplo del uso del programa IDCAMS, resultante de una modernización de JCL mediante la transformación de AWS:
El código JCL:
//STEP15 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //ACCTDATA DD DISP=SHR, // DSN=AWS.M2.CARDDEMO.ACCTDATA.PS //ACCTVSAM DD DISP=SHR, // DSN=AWS.M2.CARDDEMO.ACCTDATA.VSAM.KSDS //SYSIN DD * REPRO INFILE(ACCTDATA) OUTFILE(ACCTVSAM) /*
y la correspondiente modernización de Groovy:
mpr.withFileConfigurations(new FileConfigurationUtils() .withJobContext(jobContext) .systemOut("SYSPRINT") .output("*") .build() .bluesam("ACCTDATA") .dataset("AWS.M2.CARDDEMO.ACCTDATA.PS") .disposition("SHR") .build() .bluesam("ACCTVSAM") .dataset("AWS.M2.CARDDEMO.ACCTDATA.VSAM.KSDS") .disposition("SHR") .build() .fileSystem("SYSIN") .stream("REPRO INFILE(ACCTDATA) OUTFILE(ACCTVSAM)", getEncoding()) .build() .getFileConfigurations()) .withParameters(params) .runProgram("IDCAMS")
IEBGENER/JSDGENER
Este programa reproduce la utilidad IEBGENER. Se utiliza para copiar y manipular conjuntos de datos secuenciales. Esta implementación amplía la funcionalidad básica de copia al admitir las instrucciones de control de IEBGENER para operaciones avanzadas de procesamiento de datos.
Parameters
Sin argumento. Las operaciones se transfieren a través del conjunto de datos SYSIN.
Conjuntos de datos necesarios
SYSIN: contiene sentencias de control (opcional, si no está definido, el programa IEBGENER es idéntico a ICEGENER)
SYSUT1: conjunto de datos/archivo de entrada
SYSUT2: conjunto de datos/archivo de salida
Características principales/Declaraciones de control de IEBGENER compatibles
Los detalles sobre la declaración de control de IEBGENER que se encuentran en las tarjetas de control SYSIN no se proporcionan aquí, sino que deben obtenerse de la documentación relevante de las plataformas heredadas existentes.
GENERATE: define la estructura general del proceso de manipulación de datos especificando el número máximo de tipos de registros (MAXNAME) y campos (MAXFLDS) que se van a procesar
REGISTRO: define el diseño y el contenido reales de cada tipo de registro especificando la posición, la longitud y el formato de los campos individuales que se copiarán del conjunto de datos de entrada o se generarán con valores específicos
LABEL/MEMBER/EXITno son compatibles
ejemplo:
GENERATE MAXNAME=3,MAXFLDS=5 RECORD TYPE=1, FIELD=(1,1,CH,VALUE='H'), FIELD=(2,30,CH,VALUE='EMPLOYEE REPORT 2024 ') RECORD TYPE=2, FIELD=(1,1,CH,VALUE='D'), FIELD=(2,10,CH), /* Name */ FIELD=(12,8,CH), /* Birth date */ FIELD=(20,8,CH,VALUE='ACTIVE') RECORD TYPE=3, FIELD=(1,1,CH,VALUE='F'), FIELD=(2,30,CH,VALUE='END OF REPORT ')
Gestión de errores
Defina el código de error 0 si la copia se realiza correctamente y 1 si no se realiza correctamente.
Ejemplo de uso
A continuación, se muestra un magnífico ejemplo del uso del programa IEBGENER, resultante de una modernización de JCL mediante la transformación de AWS:
El código JCL:
//GENDATA EXEC PGM=IEBGENER //SYSUT1 DD DSN=INPUT.EMPLOYEE.DATA, // DISP=SHR //SYSUT2 DD DSN=OUTPUT.EMPLOYEE.FILE, // DISP=(NEW,CATLG,DELETE), // SPACE=(TRK,(1,1)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=27920) //SYSIN DD * GENERATE MAXNAME=2,MAXFLDS=5 RECORD TYPE=1, FIELD=(1,1,CH,VALUE='H'), FIELD=(2,30,CH,VALUE='EMPLOYEE SALARY REPORT 2024 ') RECORD TYPE=2, FIELD=(1,1,CH,VALUE='D'), FIELD=(2,10,CH), /* Name from input */ FIELD=(12,8,CH), /* Birth date from input */ FIELD=(20,8,CH), /* Dept from input */ FIELD=(28,8,CH) /* Salary from input */ /*
y la correspondiente modernización de Groovy:
mpr .withFileConfigurations(new FileConfigurationUtils() .withJobContext(jobContext) .systemOut("SYSPRINT") .output("*") .build() .bluesam("SYSUT1") .dataset("INPUT.EMPLOYEE.DATA") .disposition("SHR") .build() .bluesam("SYSUT2") .dataset("OUTPUT.EMPLOYEE.FILE") .disposition("NEW") .normalTermination("CATLG") .abnormalTermination("DELETE") .build() .fileSystem("SYSIN") .stream( """GENERATE MAXNAME=2,MAXFLDS=5 RECORD TYPE=1, FIELD=(1,1,CH,VALUE='H'), FIELD=(2,30,CH,VALUE='EMPLOYEE SALARY REPORT 2024 ') RECORD TYPE=2, FIELD=(1,1,CH,VALUE='D'), FIELD=(2,10,CH), /* Name from input */ FIELD=(12,8,CH), /* Birth date from input */ FIELD=(20,8,CH), /* Dept from input */ FIELD=(28,8,CH) /* Salary from input */""", getEncoding()) .build() .getFileConfigurations()) .withParameters(params) .runProgram("IEBGENER")
IEFBR14
IEFBR14 es un programa de «no hacer nada» que simplemente regresa con un código de retorno de 0 (cero). Su uso principal es la asignación de conjuntos de datos, la eliminación o el mantenimiento del catálogo mediante sentencias DD, sin realizar ningún procesamiento de datos real.
Parameters
Sin argumento
Gestión de errores
Establezca siempre el código de error 0.
Ejemplo de uso
A continuación, se muestra un magnífico ejemplo del uso del IEFBR14 programa, resultante de una modernización de JCL mediante la transformación de AWS:
El código de JCL para crear un nuevo conjunto de datos secuencial:
//STEP1 EXEC PGM=IEFBR14 //NEWSEQ DD DSN=USER.NEW.SEQ.DATA, // DISP=(NEW,CATLG,DELETE), // SPACE=(TRK,(10,5)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=27920)
y la correspondiente modernización de Groovy:
mpr .withFileConfigurations(new FileConfigurationUtils() .withJobContext(jobContext) .bluesam("NEWSEQ") .dataset("USER.NEW.SEQ.DATA") .disposition("NEW") .normalTermination("CATLG") .abnormalTermination("DELETE") .build() .getFileConfigurations()) .withParameters(params) .runProgram("IEFBR14")
El código JCL para eliminar un conjunto de datos existente:
//STEP3 EXEC PGM=IEFBR14 //DELDD DD DSN=USER.OLD.DATASET, // DISP=(OLD,DELETE,DELETE)
y la correspondiente modernización de Groovy:
mpr .withFileConfigurations(new FileConfigurationUtils() .withJobContext(jobContext) .bluesam("DELDD") .dataset("USER.OLD.DATASET") .disposition("OLD") .normalTermination("DELETE") .abnormalTermination("DELETE") .build() .getFileConfigurations()) .withParameters(params) .runProgram("IEFBR14")
JCLBCICS
Este programa gestiona el estado de los conjuntos de datos, los basa en la configuración y admite archivos individuales y patrones comodín: cambia el campo STATUS de la tabla file_table de JICS. enables/disables
Parameters
Sin argumento. Las operaciones pasan a través de un DatasetsConfiguration objeto, p. ej.
mpr.withDatasetsConfiguration(new DatasetsConfiguration().close(<Dataset Name>)
Contexto
El comportamiento del programa se puede configurar mediante dos parámetros:
En application-utility-pgm.yml:
jclbcics.ddname.size(el valor predeterminado es 8): configura globalmente el tamaño del nombre del conjunto de datos; si este valor está establecido y la longitud del nombre del conjunto de datos es inferior a este valor, el nombre del conjunto de datos se truncará.
En un paso individual del archivo Groovy, se llama al programa
JCLBCICS_OVERRIDDEN_SIZE: anula el tamaño del nombre del conjunto de datos global:
TreeMap stepMapTransfo = [:] Map stepParams = ["MapTransfo":stepMapTransfo] stepParams["MapTransfo"]["JCLBCICS_OVERRIDDEN_SIZE"] = '6'
Si el tamaño ajustado del nombre dd (después del truncamiento) es inferior a 8, el nombre dd se considera comodín y la función funciona para todos los conjuntos de datos que comiencen con este nombre dd.
Características principales de
Las operaciones admitidas son:
ABIERTO: Establece los conjuntos de datos en el estado HABILITADO
CERRAR: Establece los conjuntos de datos en el estado DESHABILITADO
Estas operaciones se declaran mediante la clase de DatasetsConfiguration constructor:
new DatasetsConfiguration().close(<DD name>).open(<DD name>)
Nombre DD: nombre del conjunto de datos, se acepta el comodín * si el tamaño del nombre dd es inferior al tamaño máximo del nombre dd (8).
Gestión de errores
Defina el código de error 0
Ejemplo de uso
Este es un magnífico ejemplo del uso del programa JCLBCICS:
deshabilita el conjunto de datos, habilita todos los conjuntos de datos que comiencen con AXUFOLJ3P, habilita todos los conjuntos de datos que comiencen con DX
import com.netfective.bluage.gapwalk.rt.call.MainProgramRunner import com.netfective.bluage.gapwalk.rt.call.ProgramExecutionResult import com.netfective.bluage.gapwalk.rt.io.support.DatasetsConfiguration MainProgramRunner mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class) def TreeMap stepMapTransfo = [:] def Map stepParams = ['MapTransfo':stepMapTransfo] stepParams['MapTransfo']['JCLBCICS_OVERRIDDEN_SIZE'] = '7' ProgramExecutionResult res = mpr .withDatasetsConfiguration(new DatasetsConfiguration().close("UFOLJ3P").open("AX*").open("DX")) .withParameters(stepParams) .runProgram("JCLBCICS")