Z Data Tools バッチ戻りコードのカスタマイズ
Z Data Tools には、Z Data Tools バッチ・ユーティリティーによって返される戻りコードの値を制御するための機能が用意されています。ご使用の環境に適した (例えば、ご使用のジョブ制御環境に適した) 値に戻りコードを設定することができます。必要に応じていつでも戻りコードを変更することはできません。これらは、インストール環境全体に設定されます。
- データ・セット・コピー (DSC)
- データ・セット生成 (DSG)
- データ・セット比較 (DSM)
- データ・セット印刷 (DSP)
- データ・セット更新 (DSU: DSEB を含む)
- VTOC 表示 (DVT)
- 検索/変更 (FCH)
マクロ・ステートメント・サンプル・メンバー HFM0RETC、および usermod HFMUMODR を使用して バッチ・ユーティリティー戻りコードをカスタマイズし、ロード・モジュール HFM0RETC を作成します。HFM.SHFMSAM1 の HFM0RETC には、ユーティリティーごとにカスタマイズできる条件が表示され、これらの条件に対応したデフォルトの戻りコードが表示されます。
初期化の間に Z Data Tools は HFM0RETC のロードを試みますが、モジュールが見つかった場合、その内容は、カスタマイズされた条件戻りコードのテーブルを作成するために使用されます。HFM0RETC が見つからない場合は、すべてのカスタマイズ可能条件がそのデフォルト戻りコードを返します。
戻りコードをカスタマイズするには、以下のようにします。
- メンバー HFM0RETC を HFM.SHFMSAM1 からユーザー所有のソース・ライブラリーにコピーします。
- 必要に応じて、ユーザー所有のライブラリーで HFM0RETC メンバーを変更します。HFM0RETC の必要条件に対する数値を、この必要条件に出させたい戻りコード値に変更します。ただし、どの条件も値 16 に変更することはできません。値 16 は、Z Data Tools によって使用されるために予約済みです。 HFM0RETC で提供されているデフォルトの Z Data Tools マクロ・ステートメント に、HFM0RETC マクロ・ステートメントのデフォルトの設定を示します。
- HFMUMOD にある HFM.SHFMSAM1R メンバーを、サイトの要件に応じて変更します。実行する必要のある変更については、usermod を参照してください。
- SMP/E usermod HFMUMODR をインストールします。
HFM0RETC TITLE 'Z Data Tools : Return Codes (Batch Utilities)'
HFM0RETC CSECT
HFM0RETC AMODE 31
HFM0RETC RMODE ANY
HFM0RETI FUNC=DSC, DSC conditions X
NORECSSOME=1, No records copied for some members X
NORECSANY=2, No records copied for any members X
NONESEL=4, No records selected to copy X
NOMEMBERS=4, No members to process X
EMPTY=4, Empty input data set X
SKIPPED=4, Input packed, so skipped X
NOREPLACE=4, NOREPLACE prevented copy X
NOCPYDUPE=2, No copy - duplicate X
NOCPYREXX=2, No copy - REXX X
RECTRC=0, Records truncated X
FLDTRC=0, Fields truncated X
RECSHORT=8, DSC external form output truncated X
REXXCONFLICT=3 REXX return message conflict
HFM0RETI FUNC=DSG, DSG conditions X
NORECSOUT=4 Zero records specified
HFM0RETI FUNC=DSM, DSM conditions X
NOTMATCH=1, Compare sets not empty & don't match X
ONEEMPTY=2, One compare set empty X
SKIPPED=4, Input packed, so skipped X
BOTHEMPTY=4, Both compare sets empty X
INVMAP=4, Invalid mapping X
INVDATA=8 Invalid data X
SYNCERR=8 Key Synchronization error
HFM0RETI FUNC=DSP, DSP conditions X
MBRERR=1, Some members not printed X
PRTERR=2, Print error encountered X
NONESEL=4, No records selected to print X
NOMEMBERS=4, No members to process X
SKIPPED=4, Input packed, so skipped X
EMPTY=4, Empty input data set X
NOPRTREXX=2, No print - REXX X
REXXCONFLICT=3 REXX return message conflict
HFM0RETI FUNC=DSU, DSU conditions X
MBRNOTUPDT=1, Some members not updated X
NOCHANGE=2, Change failed X
NONEUPDATED=4, No records updated X
NOMEMBERS=4, No members to process X
SKIPPED=4, Input packed, so skipped X
EMPTY=4 Empty input data set
HFM0RETI FUNC=DVT, DVT conditions X
NOENTRY=4 No matching entries
HFM0RETI FUNC=FCH, FCH conditions X
FSOME=1, Some OK, some not OK X
CFAIL=2, Change failed X
NOHIT=4, No strings found to change X
NOMEMBERS=4, No members to process X
SKIPPED=4, Input packed, so skipped X
LOWSTOR=12, Ran low on storage during FCH X
EMPTY=4 Empty input data set
HFM0RETI END
END HFM0RETC
バッチ・ユーティリティーからの戻りコードは、カスタマイズされているかどうかにかかわらず、ユーティリティーの実行中に発生したすべての条件に対する最高位の戻りコードとなります。例えば、DSC ユーティリティーの「No members to process」に対する戻りコードを 4 から 9 に変更したと仮定します。この場合、単独では戻りコードが 8 (通常はエラー) になる条件が発生し、「No members to process」条件も発生すると、DSC ユーティリティーの戻りコードは 9 になります。
複数のユーティリティーを実行しているバッチ・ジョブからの戻りコードは、カスタマイズされているかどうかにかかわらず、引き続き各ユーティリティーから戻される最大のコードになります。例外として、ユーティリティーのいずれかに終了条件が発生した場合は、ジョブ・ステップは戻りコード 16 で終了します。
- いくつかの条件を 1 つの関数で並行して存在させることができます。例えば、空のファイルにテンプレートを持つ DSP を使用すると、結果は「empty input data set」条件と「no records selected to print」条件の両方になります。戻りコードをカスタマイズする場合、もう片方の条件に対するより高位の戻りコードがその戻りコードをオーバーライドする場合や、その戻りコードによってオーバーライドされる場合があるので注意してください。ある関数に対する戻りコードを 1 つカスタマイズする場合は、その関数の他の戻りコードとの互換性を検討します。
- バッチでは、後続のステップまたはジョブが実行されないようにするために、オリジナルまたはカスタマイズした非ゼロの戻りコードで終了するのではなく、Z Data Tools が異常終了するようにしたい場合があります。これは、ABENDCC インストール・オプションを使って、戻りコードより小さいか等しい値を指定することで行います。この指定によって、異常終了 (異常終了 999、理由コード = 888 (16 進: 378)) に変換されることになります。詳しくは、ABENDCCを参照してください。また、「Z Data Tools User’s Guide and Reference」の『SET (処理オプションの設定)』で説明されている SET コマンドの ABENDCC オプションも参照してください。