Jcl-input-output
入出力メソッド
JCLを介して実行されるバッチプログラムには、データ入力が必要です。データ入力は処理され、出力が作成されます。 プログラムに入力を送り、JCLから受け取った出力を書き込む方法はいくつかあります。 バッチモードでは、ユーザーとの対話は必要ありませんが、入力デバイスと出力デバイス、および必要な組織はJCLで定義され、送信されます。
JCLでのデータ入力
JCLを使用してプログラムにデータをフィードするにはさまざまな方法があり、これらの方法は以下で説明されています。
INSTREAM DATA
プログラムへのインストリームデータは、SYSIN DDステートメントを使用して指定できます。
例1では、MYPROGへの入力はSYSINを介して渡されます。 データはJCL内で提供されます。 データの2つのレコードがプログラムに渡されます。/*はインストリームSYSINデータの終わりを示すことに注意してください。
「CUST1 1000」はrecord1、「CUST2 1001」はrecord2です。 データの読み取り中にシンボル/*が検出されると、データの終わり条件が満たされます。
例2では、SYSINデータはデータセット内に保持されます。SAMPLE.SYSIN.DATAはPSファイルであり、データの1つ以上のレコードを保持できます。
ファイルを介したデータ入力
前の章のほとんどの例で述べたように、プログラムへのデータ入力は、PS、VSAM、またはGDGファイルを介して、関連するDSN名とDISPパラメーターとともにDDステートメントで提供できます。
例1では、SAMPLE.INPUT1はデータがMYPROGに渡される入力ファイルです。 プログラム内ではIN1と呼ばれます。
JCLでのデータ出力
JCLの出力は、データセットにカタログ化するか、SYSOUTに渡すことができます。 DDステートメントの章で述べたように、 SYSOUT = *は、JOBステートメントのMSGCLASSパラメーターで言及されたものと同じクラスに出力をリダイレクトします。
ジョブログを保存する
SYSOUTおよびSYSPRINT用に作成済みのデータセットを指定することにより、ジョブログをデータセットに保存することもできます。 ただし、JMRまたはXDCで行われるように、ジョブログ全体をこの方法でキャプチャすることはできません(つまり、JESMSGはカタログ化されません)。
上記の例では、SYSOUTはMYDATA.URMI.SYSOUTにカタログされ、SYSPRINTはMYDATA.URMI.SYSPRINTにカタログされています。