AWS Il servizio di modernizzazione del mainframe (esperienza Managed Runtime Environment) non è più aperto a nuovi clienti. Per funzionalità simili a AWS Mainframe Modernization Service (esperienza Managed Runtime Environment), esplora AWS Mainframe Modernization Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta AWS Modifica della disponibilità di Mainframe Modernization.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilità per set di dati
BLUESAMCOPY/BLUESAMCREATE/BLUESAMDELETE/BLUESAMCLEAR
Il bypassBluesamStatus flag (memorizzato in JobContext) determina se bypassare la normale convalida dello stato del set di dati che impedisce conflitti di accesso simultanei tra processi online e processi batch.
Quando è vero: bypassBluesamStatus
Salta i normali controlli dello stato del set di dati durante le operazioni
Consente l'accesso a set di dati che normalmente potrebbero essere bloccati
BLUESAMCOPY
Il programma BLUESAMCOPY copia i dati e la struttura dei metadati da un set di dati Bluesam a un altro.
Parameters
Il programma BLUESAMCOPY richiede due parametri:
FROM=<source dataset name>- Set di dati di origine da cui copiareTO=<target dataset name>- Set di dati di destinazione in cui copiare
Comportamento
Se il set di dati di destinazione non esiste, lo crea con la struttura di metadati della fonte
Se il target esiste, lo cancella prima della copia (sovrascrive i dati esistenti)
L'operazione procede quando i set di dati non sono utilizzati dai processi online o quando è impostato su true
bypassBluesamStatusConserva le chiavi, la compressione, la lunghezza dei record e altre proprietà dei metadati
Gestione errori
Restituisce il codice 1 se il set di dati di origine non esiste o se uno dei due set di dati è utilizzato dai processi online.
Esempio di utilizzo
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
Il programma BLUESAMCREATE crea un set di dati Bluesam con i parametri specificati.
Parameters
Il programma BLUESAMCREATE richiede sette parametri:
name=<dataset name>- Set di dati da creare (obbligatorio)compress=<true/false>- Abilita la compressione (opzionale, impostazione predefinita: false)fixedLength=<true/false>- Stato dei record a lunghezza fissa (opzionale, impostazione predefinita: false)recordLength=<integer>- Lunghezza del record in byte (opzionale, impostazione predefinita: -1)primaryKey=<key id>,duplicates=<true/false>,fields=<offset,length,...>- Specificazione della chiave primaria (opzionale)key=<altkey id>,duplicates=<true/false>,fields=<offset,length,...>- Chiave alternativa (può essere multipla o 0)clearExisting=true/false- Cancella il set di dati esistente (impostazione predefinita opzionale: true)
Spiegazioni dei parametri chiave specifici:
duplicates: se i valori duplicati sono consentiti o meno per la chiave data;fields: posizioni dei campi (in base 1) e lunghezze che definiscono la chiave;
Comportamento
Se il set di dati non esiste, lo crea con i parametri specificati
Se il set di dati esiste, lo cancella se
clearExisting=trueL'operazione procede quando i set di dati non sono utilizzati dai processi online o quando è impostato su
bypassBluesamStatustrue
Condizioni di errore
Restituisce il codice 0 in tutti i casi.
Esempio di utilizzo
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
Il programma BLUESAMDELETE elimina i set di dati Bluesam.
Parameters
Il programma BLUESAMDELETE richiede 1 o più parametri:
<dataset name>- set di dati da eliminare (può essere multiplo)
Comportamento
L'operazione procede quando i set di dati non sono utilizzati dai processi online o quando
bypassBluesamStatusè impostato sutrueSe il set di dati esiste, eliminalo
Condizioni di errore
Restituisce il codice 0 in tutti i casi.
Esempio di utilizzo
import ... mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class) // delete bluesam datasets res = mpr.withArguments("MYBLUESAMTABLE","MYBLUESAMTABLE2","MYBLUESAMTABLE3").runProgram("BLUESAMDELETE")
BLU AM CLEAR
Il programma BLUESAMCLEAR rimuove tutti i dati dai set di dati esistenti preservandone la struttura e i metadati.
Parameters
Il programma BLUESAMCLEAR richiede 1 o più parametri:
<dataset name>- set di dati da cancellare (può averne più di uno)
Comportamento
L'operazione procede quando i set di dati non sono utilizzati dai processi online o quando
bypassBluesamStatusè impostato sutrueSe il set di dati esiste, cancellalo
Condizioni di errore
Restituisce il codice 0 in tutti i casi.
Esempio di utilizzo
import ... mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class) // clear bluesam datasets res = mpr.withArguments("MYBLUESAMTABLE","MYBLUESAMTABLE2").runProgram("BLUESAMCLEAR")
BPXWDYN
Questo programma di utilità simula il servizio z/OS BPXWDYN per l'allocazione e la deallocazione dinamica dei set di dati. Nelle applicazioni moderne, le allocazioni dei file vengono eseguite negli script Groovy tramite builder api. FileConfigurationUtils Questo programma consente la gestione dinamica di queste allocazioni senza Groovy, essenziale per l'elaborazione interattiva o condizionale dei file nelle applicazioni modernizzate.
Parameters
Il formato degli argomenti precedenti viene preservato. Prevede un singolo argomento contenente un'intestazione di 2 byte seguita dalla stringa di comando.
formato della stringa di comando per l'allocazione: ALLOC DD(<name>) DSN('<dsn>') SHR?
formato della stringa di comando per la deallocazione: FREE DD(<name>)
Gestione errori
Imposta il codice di errore 0 per il successo, 1 per l'errore
Lancia RuntimeException comandi o parametri non validi
Esempio di utilizzo
Di seguito è riportato un esempio di utilizzo in Java del programma BPXWDYN, derivante da una modernizzazione COBOL tramite AWS Transform:
Il codice 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.
e la corrispondente modernizzazione di 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) consente alle applicazioni di lavorare con set di dati con versioni in cui ogni esecuzione crea una nuova generazione mantenendo l'accesso alle generazioni precedenti. Questa utilità crea e gestisce queste generazioni di set di dati. Questa utilità è pensata per essere chiamata negli script groovy.
Parameters
l'ordine dei parametri non ha importanza
action=<create|refreshevents>- Operazione da eseguire (obbligatoria)gdgname=<name>- Nome della base GDG (obbligatorio)storageProvider=<filesystem|bluesam>- Backend di archiviazionerelativeGeneration=<+integer>- Numero di generazione relativo (ad esempio, +1 per il prossimo)absoluteGeneration=integer- Numero di generazione assolutorecordLength=<integer>- Dimensione del record nel set di datifixedLength=<true/false>- Speciifica che i record hanno una lunghezza fissa nel set di datiownerPath=<File system path>- Il percorso per memorizzare il set di dati (specifico del file system, obbligatorio in quel caso)compress=<true/false>- Indica che i dati devono rimanere compressi in memoria se i dati sono stati compressi nel data store (specifico per bluesam) (facoltativo, false è il valore predefinito)catalog- Speciifica che il set di dati deve essere catalogato (opzionale)warmUp- Indica che il set di dati deve essere caricato in memoria all'apertura (specifico per bluesam) (opzionale)
RelativeGeneration o AbsoluteGeneration: è necessario impostare una di queste proprietà.
Operazioni
create: crea una nuova generazione di set di dati GDG in base ai metadati GDG (gestisce sia il filesystem che lo storage Bluesam)
refreshevents: regola il numero di generazione (Gdg Metadata) senza creare nuovi set di dati (utilizzato quando si riavviano lavori non riusciti che avevano già creato set di dati)
Gestione errori
Imposta il codice di errore 0 per il successo, 1 per l'errore
Lancia RuntimeException comandi o parametri non validi
Esempio di utilizzo
Operazione di creazione Gdg: il codice seguente crea una generazione bluesam (43) per il set di dati 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")
Operazione Gdg refreshevents: solo RelativeGeneration è rilevante per questa operazione. Il codice seguente aggiorna il numero di generazione (+1 rispetto alla generazione attuale) per il set di dati 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
Questo programma di utilità imita il comportamento dell'utilità di z/OS sistema ICEGENER, copia i set di dati dall'input (set di dati) all'output (set di dati). SYSUT1 SYSUT2 Questa implementazione Java fornisce funzionalità equivalenti che supportano sia il filesystem che l'archiviazione Bluesam.
Parameters
Nessun argomento
Set di dati richiesti
SYSUT1: set di dati/file di input
SYSUT2: set di dati/file di output
Gestione della disposizione per il set di dati SYSUT2
NOVITÀ: crea un nuovo set di dati/file
OLD/SHR: Use existing dataset/file(deve esistere)
MOD: Modifica, crea se manca, aggiungi se esiste
Gestione errori
Imposta il codice di errore 0 se la copia riesce, 1 se fallisce
Lancia
IllegalStateExceptionper un utilizzo non valido del set di dati Blusam
Esempio di utilizzo
Ecco un esempio di utilizzo Groovy del programma ICEGENER, derivante da una modernizzazione di JCL tramite AWS Transform:
Il codice 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) /*
e la corrispondente modernizzazione di 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
Questo programma di utilità imita il comportamento dei programmi legacy IDCAMS, uno strumento di gestione dei dati mainframe utilizzato per le operazioni sui file VSAM (Virtual Storage Access Method). Elabora i comandi IDCAMS legacy, mantenendo la stessa sintassi degli input SYSIN originali.
Contesto
Il comportamento del programma può essere configurato mediante due parametri definiti in: application-utility-pgm.yml
jclType: identificatore del tipo JCL (vse o mvs). I PRINT/REPRO comandi dell'utilità IDCAMS restituiscono 4 se il file è vuoto per jcl non vse
forcedCharsetIdcams: Sostituzione opzionale del set di caratteri per l'elaborazione IDCAMS
Parameters
Nessun argomento. Le operazioni vengono passate attraverso il set di dati SYSIN.
Set di dati richiesti
SYSIN: contiene le istruzioni di comando IDCAMS
Set di dati di input/output: come indicato nei comandi IDCAMS (a seconda dell'istruzione IDCAMS)
Caratteristiche principali/Comandi supportati
I dettagli sui comandi IDCAMS presenti nella scheda di controllo SYSIN non sono forniti qui, ma devono essere recuperati dalla documentazione esistente delle piattaforme legacy pertinenti.
DEFINE: crea cluster e set di dati VSAM
DELETE: rimuove i set di dati (supporta i caratteri jolly)
REPRO - Copia i dati tra set di dati
PRINT - Visualizza il contenuto del set di dati
VERIFY - Convalida l'esistenza e l'integrità del set di dati
ALTER - Modifica gli attributi del set di dati (ridenominazione)
ALLOC - Alloca i set di dati in modo dinamico
SET - Gestisce i codici delle condizioni (LASTCC/MAXCC)
IF-THEN-ELSE - Esecuzione condizionale di comandi
ANNULLA - Termina l'esecuzione del lavoro
Gestione errori
Imposta il codice di errore 0 se l'ultimo comando ha esito positivo, -1 se fallisce
I comandi SET (LASTCC) possono essere usati per sovrascrivere il codice di errore, ad es.
SET LASTCC = 0
Esempio di utilizzo
Ecco un esempio di utilizzo Groovy del programma IDCAMS, derivante da una modernizzazione di JCL tramite AWS Transform:
Il codice 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) /*
e la corrispondente modernizzazione di 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
Questo programma replica l'utilità IEBGENER. Viene utilizzato per copiare e manipolare set di dati sequenziali. Questa implementazione estende le funzionalità di copia di base supportando le istruzioni di controllo IEBGENER per operazioni avanzate di elaborazione dei dati.
Parameters
Nessun argomento. Le operazioni vengono passate attraverso il set di dati SYSIN.
Set di dati richiesti
SYSIN: contiene istruzioni di controllo (facoltativo, se non definito, il programma IEBGENER è identico a ICEGENER)
SYSUT1: set di dati/file di input
SYSUT2: set di dati/file di output
Caratteristiche principali/ Dichiarazioni di controllo IEBGENER supportate
I dettagli sulla dichiarazione di controllo IEBGENER che si trova nelle schede di controllo SYSIN non sono forniti qui, ma devono essere recuperati dalla documentazione esistente delle piattaforme legacy pertinenti.
GENERATE: definisce la struttura generale del processo di manipolazione dei dati specificando il numero massimo di tipi di record (MAXNAME) e campi (MAXFLDS) da elaborare
RECORD: definisce il layout e il contenuto effettivi di ogni tipo di record specificando la posizione, la lunghezza e il formato dei singoli campi che verranno copiati dal set di dati di input o generati con valori specifici
LABEL/MEMBER/EXITnon sono supportati
esempio:
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 ')
Gestione errori
Imposta il codice di errore 0 se la copia riesce, 1 se fallisce.
Esempio di utilizzo
Ecco un esempio di utilizzo Groovy del programma IEBGENER, derivante da una modernizzazione di JCL tramite AWS Transform:
Il codice 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 */ /*
e la corrispondente modernizzazione di 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 è un programma «non fare nulla» che restituisce semplicemente un codice di ritorno pari a 0 (zero). Il suo utilizzo principale è l'allocazione, l'eliminazione o la manutenzione del catalogo dei set di dati tramite istruzioni DD, senza eseguire alcuna elaborazione effettiva dei dati.
Parameters
Nessun argomento
Gestione errori
Imposta sempre il codice di errore 0.
Esempio di utilizzo
Ecco un esempio di utilizzo del IEFBR14 programma Groovy, derivante da una modernizzazione di JCL tramite AWS Transform:
Il codice JCL per creare un nuovo set di dati sequenziale:
//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)
e la corrispondente modernizzazione di 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")
Il codice JCL per eliminare un set di dati esistente:
//STEP3 EXEC PGM=IEFBR14 //DELDD DD DSN=USER.OLD.DATASET, // DISP=(OLD,DELETE,DELETE)
e la corrispondente modernizzazione di 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
Questo programma gestisce lo stato dei set di dati, i enables/disables set di dati sono basati sulla configurazione, supportando sia i singoli file che i pattern wildcard: modifica il campo STATUS nella tabella JICS file_table.
Parameters
Nessun argomento. Le operazioni vengono passate attraverso un DatasetsConfiguration oggetto, ad es.
mpr.withDatasetsConfiguration(new DatasetsConfiguration().close(<Dataset Name>)
Contesto
Il comportamento del programma può essere configurato mediante due parametri:
In application-utility-pgm.yml:
jclbcics.ddname.size(l'impostazione predefinita è 8): configura globalmente la dimensione del nome del set di dati; se questo valore è impostato e la lunghezza del nome del set di dati è inferiore a questo valore, il nome del set di dati verrà troncato.
In un singolo passaggio del file Groovy che chiama il programma
JCLBCICS_OVERRIDDEN_SIZE: sovrascrive la dimensione globale del nome del set di dati:
TreeMap stepMapTransfo = [:] Map stepParams = ["MapTransfo":stepMapTransfo] stepParams["MapTransfo"]["JCLBCICS_OVERRIDDEN_SIZE"] = '6'
Se la dimensione corretta del nome dd (dopo la troncatura) è inferiore a 8, il nome dd viene considerato come una wild card e la funzione funziona per tutti i set di dati che iniziano con questo nome dd.
Caratteristiche chiave
Le operazioni supportate sono:
APERTO: imposta i set di dati allo stato ABILITATO
CHIUDI: imposta i set di dati allo stato DISABILITATO
Queste operazioni sono dichiarate tramite la classe DatasetsConfiguration builder:
new DatasetsConfiguration().close(<DD name>).open(<DD name>)
Nome DD: nome del set di dati, il carattere jolly * è accettato se la dimensione del nome dd è inferiore alla dimensione massima del nome dd (8).
Gestione errori
Imposta il codice di errore 0
Esempio di utilizzo
Ecco un esempio di utilizzo di Groovy del programma JCLBCICS:
disabilita il set di dati, abilita tutti i set di dati che iniziano con AXUFOLJ3P, abilita tutti i set di dati che iniziano 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")