IBM Z Japan - Group home

#001【z/OS V2R4新機能】プロシージャー指定の入力データセットに対する「NULL」オーバーライド

  
z/OS V1R13以降では、カタログ式プロシージャー、入力プロシージャー内に、入力データセット(例: //SYSIN DD * ステートメント、//SYSIN DD DATA ステートメント)が指定できるようになりました。この新機能は大変好評ですが、プロシージャー実行時の「NULL」オーバーライドができなくて、お困りではありませんか?

【プロシージャー実行時の「NULL」オーバーライド】
従来、プロシージャー内に指定された通常のデータセットは、プロシージャー実行時に対象DDステートメントを指定して、かつパラメーターを何も書かないことで、「NULL」オーバーライド、つまりプロシージャー内の指定をそのまま活かすことができるので、DD連結の一部だけオーバーライドするような場合に便利です。
これに対し、プロシージャー内に指定された入力データセットは、プロシージャー実行時の「NULL」オーバーライドがサポートされていません。このため、DD連結の一部だけオーバーライドするような場合は、オーバーライドしないDDステートメントの内容をプロシージャーからそっくりコピーして、DDオーバーライドとして指定するなどの対応が必要になります。もちろん、入力データセットの代わりに通常のデータセットをプロシージャー内に指定する方法もあります。

【z/OS V2R4の新機能】
z/OS V2R4では、JCL DDステートメントに対して「NULLOVRD」パラメーターが新規追加され、プロシージャー実行時に入力データセットを「NULL」オーバーライドできるようになりました。とても便利です!
例えば、プロシージャー内で連結指定された入力データセットの一部だけをオーバーライドしたい場合、オーバーライドしないDDステートメントに対しては、プロシージャー実行時に「NULLOVRD」パラメーターだけを明示指定します。
この「NULLOVRD」パラメーターは、プロシージャー内の入力データセットを「NULL」オーバーライドする場合のみ利用可能です。プロシージャー内で指定された通常データセットに対し、プロシージャー実行時に「NULLOVRD」パラメーターを指定するとJCLエラーが発生します。
IEFC452I BEANSZZ - JOB NOT RUN - JCL ERROR
IEFC609I INVALID OVERRIDE KEYWORD NULLOVRD

【オーバーライドに関する注意点】
z/OS V2R4では、プロシージャー内の入力データセットを実行時にオーバーライドする方法として、①「入力データセット」でオーバーライド、②「通常データセット」でオーバーライド、③「NULL」オーバーライド(オーバーライドしない)が利用可能です。
「方法③」の「NULL」オーバーライドは、z/OS V2R4の新機能「DD NULLOVRD」パラメータを使用します。
z/OS V2R4で「方法②」(「通常データセット」でオーバーライド)を利用する際は、あらかじめ、APAR OA58693のPTF適用が必要になります。該当PTFが未適用の場合、z/OS V2R3まで正常稼働していたジョブでJCLエラーの不具合が発生します。
IEFC452I BEANSZZ - JOB NOT RUN - JCL ERROR
IEFC023I SYSIN OVERRIDE ERROR

添付ファイルには、「DD NULLOVRD」パラメーターの使用例などを記載しています。
2020-07-27_BLOG1_zOS_V2R4_PROC_INSTREAM_NULLOVRD.pdf
z/OS V1R13とV2R4の新機能を組み合わせて、ご活用ください!