File Manager バッチ戻りコードのカスタマイズ

File Manager には、File Manager バッチ・ユーティリティーによって返される戻りコードの値を制御するための機能が用意されています。ご使用の環境に適した (例えば、ご使用のジョブ制御環境に適した) 値に戻りコードを設定することができます。必要に応じていつでも戻りコードを変更することはできません。これらは、インストール環境全体に設定されます。

以下のバッチ・ユーティリティーから返される戻りコードを、選択してカスタマイズできます。
  • データ・セット・コピー (DSC)
  • データ・セット生成 (DSG)
  • データ・セット比較 (DSM)
  • データ・セット印刷 (DSP)
  • データ・セット更新 (DSU: DSEB を含む)
  • VTOC 表示 (DVT)
  • 検索/変更 (FCH)

マクロ・ステートメント・サンプル・メンバー FMN0RETC、および usermod FMNUMODR を使用して バッチ・ユーティリティー戻りコードをカスタマイズし、ロード・モジュール FMN0RETC を作成します。FMN0RETCFMN.SFMNSAM1 は、ユーティリティーごとにカスタマイズ可能な条件、また それらの条件におけるデフォルト戻りコードを示しています。

初期化の間に File ManagerFMN0RETC のロードを試みますが、モジュールが見つかった場合、その内容は、カスタマイズされた条件戻りコードのテーブルを作成するために使用されます。FMN0RETC が見つからない場合は、すべてのカスタマイズ可能条件がそのデフォルト戻りコードを返します。

戻りコードをカスタマイズするには、以下のようにします。

  1. メンバー FMN0RETCFMN.SFMNSAM1 からユーザー所有のソース・ライブラリーにコピーします。
  2. 必要に応じて、ユーザー所有のライブラリーで FMN0RETC メンバーを変更します。FMN0RETC の必要条件に対する数値を、この必要条件に出させたい戻りコード値に変更します。ただし、どの条件も値 16 に変更することはできません。値 16 は、File Manager によって使用されるために予約済みです。 FMN0RETC で提供されているデフォルトの File Manager マクロ・ステートメント に、FMN0RETC マクロ・ステートメントのデフォルトの設定を示します。
  3. FMNUMOD にある FMN.SFMNSAM1R メンバーを、サイトの要件に応じて変更します。必要になる可能性のある変更については、usermod を参照してください。
  4. SMP/E usermod FMNUMODR をインストールします。
1. FMN0RETC で提供されているデフォルトの File Manager マクロ・ステートメント
FMN0RETC TITLE 'File Manager for z/OS® : Return Codes (Batch Utilities)'
FMN0RETC CSECT                                                          
FMN0RETC AMODE 31                                                       
FMN0RETC RMODE ANY                                                      
         FMN0RETI 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          
         FMN0RETI FUNC=DSG,      DSG conditions                        X
               NORECSOUT=4        Zero records specified                
         FMN0RETI 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
         FMN0RETI 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          
         FMN0RETI 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                  
         FMN0RETI FUNC=DVT,      DVT conditions                        X
               NOENTRY=4          No matching entries                   
         FMN0RETI 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                  
         FMN0RETI END                                                   
         END   FMN0RETC                                                 

バッチ・ユーティリティーからの戻りコードは、カスタマイズされているかどうかにかかわらず、ユーティリティーの実行中に発生したすべての条件に対する最高位の戻りコードとなります。例えば、DSC ユーティリティーの「No members to process」に対する戻りコードを 4 から 9 に変更したと仮定します。この場合、単独では戻りコードが 8 (通常はエラー) になる条件が発生し、「No members to process」条件も発生すると、DSC ユーティリティーの戻りコードは 9 になります。

複数のユーティリティーを実行しているバッチ・ジョブからの戻りコードは、カスタマイズされているかどうかにかかわらず、引き続き各ユーティリティーから戻される最大のコードになります。例外として、ユーティリティーのいずれかに終了条件が発生した場合は、ジョブ・ステップは戻りコード 16 で終了します。

注:
  1. いくつかの条件を 1 つの関数で並行して存在させることができます。例えば、空のファイルにテンプレートを持つ DSP を使用すると、結果は「empty input data set」条件と「no records selected to print」条件の両方になります。戻りコードをカスタマイズする場合、もう片方の条件に対するより高位の戻りコードがその戻りコードをオーバーライドする場合や、その戻りコードによってオーバーライドされる場合があるので注意してください。ある関数に対する戻りコードを 1 つカスタマイズする場合は、その関数の他の戻りコードとの互換性を検討します。
  2. バッチでは、後続のステップまたはジョブが実行されないようにするために、オリジナルまたはカスタマイズした非ゼロの戻りコードで終了するのではなく、File Manager が異常終了するようにしたい場合があります。これは、ABENDCC インストール・オプションを使って、戻りコードより小さいか等しい値を指定することで行います。この指定によって、異常終了 (異常終了 999、理由コード = 888 (16 進: 378)) に変換されることになります。詳しくは、ABENDCCを参照してください。また、「File Manager User’s Guide and Reference」の『SET (処理オプションの設定)』で説明されている SET コマンドの ABENDCC オプションも参照してください。