AWS Mainframe Modernization Service (マネージドランタイム環境エクスペリエンス) は、新規のお客様に公開されなくなりました。 AWS Mainframe Modernization Service (マネージドランタイム環境エクスペリエンス) と同様の機能については、 AWS Mainframe Modernization Service (セルフマネージドエクスペリエンス) をご覧ください。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、AWS 「 Mainframe Modernization の可用性の変更」を参照してください。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
コマンドユーティリティ
このセクションは、コントロールカードを使用して提供されるユーザーコマンドを処理するロールを持つユーティリティプログラムに関連しています。
IKJEFT1A/IKJEFT1B/KEQEFT01/IKJEFT01/DSNDBTCH
IKJEFT1A の目的
IKJEFT1A とそのエイリアスは、インタラクティブ TSO セッションを必要とせずにバッチジョブで TSO (T ime S 共有 O プション) コマンドを実行し、非インタラクティブバッチ環境とインタラクティブ TSO 環境をブリッジします。
環境固有の違いがあるレガシー IKJEFT1A の動作を模倣します。たとえば、DB2 TERM(inate) コマンドは最新の環境では無視されます (情報として記録されます)。
注記
ここで説明されていないコマンド構文 - IKJEFT1A は従来のコマンドデータセットを変更せずに使用します。TSO コマンドの詳細については、レガシープラットフォームのドキュメントを参照してください。
IKJEFT1A 署名
コマンド入力 (JCL DDディレクティブで定義) にSYSTSINデータセットを使用します。モダナイズバージョンでは、同じデータセットが変更されていません。モダナイズされた Groovy ジョブスクリプトでのみ呼び出されます。
IKJEFT1A 関連の設定パラメータ
ユーティリティの動作は、次の設定パラメータの影響を受けます。
-
systin.encoding
このパラメータの設定の詳細については、オプションのウェブアプリケーションで使用可能なプロパティ「」を参照してください。
IKJEFT1A チェック/エラー処理
サポートされていないコマンドが SYSTSIN データセットに存在する場合、 RuntimeExceptionがスローされます。
IKJEFT1A サンプルの使用
レガシー JCL スクリプト ( DD *ディレクティブを使用してSYSTSINデータセットのインラインコンテンツを使用する)
//********************************************************************* //* 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 //*********************************************************************
および一致するモダナイズされたスクリプト (groovy) -- SYSTSINデータセットのインラインコンテンツは「ストリーム」 -- で表されます。
// 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
QCMDEXC の目的
このユーティリティプログラムは、AS/400 システムユーティリティ QCMDEXC の動作をエミュレートします。これは、実行時にシステムコマンドを動的に実行するために使用されます。
機能
-
コマンドを動的に解析して実行します。
-
名前付きパラメータ形式と位置パラメータ形式をサポートします。
QCMDEXC 署名
1~2 個のパラメータを受け入れます。
-
最初: 実行するコマンドを含む英数字データ
-
2 番目 (オプション): 最初のパラメータから読み取るバイト単位の長さ (デフォルトは全長)
QCMDEXC チェック/エラー処理
次の場合、 RuntimeException がスローされます。
-
指定された引数が 1 つまたは 2 つでない場合。
-
コマンド引数が空の場合、または実行するコマンドが認識されない場合。
-
コマンドの実行が何らかの理由で失敗した場合、さらにプログラムからのリターンコードは 1 に設定されます。
QCMDEXC サンプルの使用
レガシー COBOL プログラムの使用例を次に示します。データ項目CL-COMMANDXには、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.
Java コードにモダナイズされると、次のようになります。
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);
レガシーコマンドの内容は、モダナイズされたコードで「そのまま」使用されており、変更はありません。