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

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

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

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

初期化の間に 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 オプションも参照してください。