Commandes et utilitaires - AWS Modernisation du mainframe

AWS Le service de modernisation du mainframe (expérience de l'environnement d'exécution géré) n'est plus ouvert aux nouveaux clients. Pour des fonctionnalités similaires au service de modernisation AWS du mainframe (expérience de l'environnement d'exécution géré), explorez le service de modernisation AWS du mainframe (expérience autogérée). Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez la section Modification de la disponibilité de la modernisation du AWS mainframe.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Commandes et utilitaires

Cette section concerne les programmes utilitaires dont le rôle est de gérer les commandes utilisateur, fournies à l'aide de cartes de contrôle.

IKJEFT1A/IKJEFT1B/KEQEFT01/IKJEFT01/DSNDBTCH

IKJEFT1Un objectif

IKJEFT1A et ses alias exécutent des commandes TSO (T time S haring O Option) dans des tâches par lots sans nécessiter de session TSO interactive, faisant le lien entre les environnements TSO non interactifs et les environnements TSO interactifs.

Imite le comportement IKJEFT1 A existant avec des différences spécifiques à l'environnement : par exemple, les commandes DB2 TERM (inate) sont ignorées dans les environnements modernes (enregistrées à titre informatif).

Note

La syntaxe des commandes n'est pas détaillée ici - IKJEFT1 A utilise les anciens ensembles de données de commandes tels quels. Reportez-vous à la documentation de l'ancienne plate-forme pour plus de détails sur les commandes TSO.

IKJEFT1Une signature

Utilise un SYSTSIN ensemble de données pour la saisie des commandes (défini via DD la directive JCL). La version modernisée utilise le même jeu de données sans modification. Invoqué uniquement dans les scripts de tâches Groovy modernisés.

IKJEFT1A. Paramètres de configuration associés

Le comportement de l'utilitaire est influencé par le paramètre de configuration suivant :

  • systin.encoding

Consultez Propriétés disponibles pour les applications Web facultatives pour plus de détails sur la configuration de ce paramètre.

IKJEFT1Une Checks/Error manipulation

Lorsqu'une commande non prise en charge est présente dans le jeu de données SYSTSIN, un RuntimeException est lancé.

IKJEFT1A. Exemples d'utilisations

L'ancien script JCL (qui utilise un contenu intégré de l'ensemble de SYSTSIN données, en utilisant DD * une directive)

//********************************************************************* //* READ THE TEMPORARY INPUT FILE * //********************************************************************* // IF IDCM00032.RC = 1 THEN //067FILEKEY EXEC PGM=IKJEFT01,DYNAMNBR=20 //SYSTSIN DD * DSN SYSTEM(DB2P) RUN PROGRAM(067-fileKey) PLAN(FILEKEYPLAN) PARM('RT') END /* //TEMPVSAM DD DSN=IDXVIDEO.TEMPVSAM,DISP=SHR //FKOUT DD DSN=output(out067.txt),DISP=(NEW,CATLG) // ENDIF //*********************************************************************

et le script modernisé correspondant (en groovy) -- le contenu intégré de l'SYSTSINensemble de données est représenté par un « flux » --

// STEP 067FILEKEY - PGM - IKJEFT01*********************************************** def step067FILEKEY(Object shell, Map params, Map programResults){ shell.with { if (checkValidProgramResults(programResults)) { return execStep("067FILEKEY", "IKJEFT01", programResults, { mpr .withFileConfigurations(new FileConfigurationUtils() .withJobContext(jobContext) .fileSystem("SYSTSIN") .stream( """ DSN SYSTEM(DB2P) RUN PROGRAM(067-fileKey) PLAN(FILEKEYPLAN) PARM('RT') END """, getEncoding()) .build() .bluesam("TEMPVSAM") .dataset("IDXVIDEO.TEMPVSAM") .disposition("SHR") .build() .fileSystem("FKOUT") .path("output(out067.txt)") .disposition("NEW") .normalTermination("CATLG") .build() .getFileConfigurations()) .withParameters(params) .runProgram("IKJEFT01") }) } } }

QCMDEXC

Objectif du QCMDEXC

Ce programme utilitaire imite le comportement de l'utilitaire système AS/400 QCMDEXC, utilisé pour exécuter des commandes système de manière dynamique lors de l'exécution.

Fonctionnalités :

  • Analyse et exécute les commandes de manière dynamique.

  • Supporte les formats de paramètres nommés et positionnels.

Signature QCMDEXC

Accepte 1 à 2 paramètres :

  • Premièrement : données alphanumériques contenant les commandes à exécuter

  • Deuxième (facultatif) : longueur en octets à lire à partir du premier paramètre (par défaut, pleine longueur)

Gestion QCMDEXC Checks/Error

Dans les cas suivants, un RuntimeException sera lancé :

  • Lorsque le nombre d'arguments fournis n'est pas un ou deux ;

  • Si l'argument des commandes est vide ou si la commande à exécuter n'est pas reconnue ;

  • Si l'exécution de la commande échoue pour une raison quelconque ; en outre, le code de retour du programme sera défini sur 1.

Exemples d'utilisations de QCMDEXC

Voici un exemple d'utilisation d'un ancien programme COBOL : l'élément de données CL-COMMANDX est équipé de commandes avant d'être utilisé comme argument pour l'appel du programme QCMDEXC :

INITIALIZE CL-COMMANDX. STRING "CPYF FROMFILE(PLAYERS) TOFILE(" DELIMITED BY SIZE, "NEWFILE" DELIMITED BY SIZE, ") MBROPT(*REPLACE) FMTOPT(*NOCHK) CRTFILE(*YES)" DELIMITED BY SIZE INTO CL-COMMANDX END-STRING. CALL "QCMDEXC" USING CL-COMMANDX CLENGTHX.

Une fois modernisé en code Java, cela devient :

DataUtils.initialize(ctx.getClCommandx().getClCommandxReference()); StringConcatenationBuilder.newInstance(ctx.getClCommandx().getClCommandxReference()) .addDelimitedBySize("CPYF FROMFILE(PLAYERS) TOFILE(") .addDelimitedBySize("NEWFILE") .addDelimitedBySize(") MBROPT(*REPLACE) FMTOPT(*NOCHK) CRTFILE(*YES)") .end(); ctrl.callSubProgram("QCMDEXC", CallBuilder.newInstance() .byReference(ctx.getClCommandx().getClCommandxReference()) .byReference(ctx.getClengthx().getClengthxReference()) .getArguments(), ctx);

Veuillez noter que le contenu des anciennes commandes est utilisé « tel quel » dans le code modernisé, sans aucune modification.