ユーザー出口の呼び出し、ルール、およびガイドライン

ユーザー出口は、必ず MFJUXIT という名前が付けられる (MFJUXIT 環境変数によってオーバーライドされる場合を除く) オプションです。ユーザー出口インターフェイス ブロック (mfjdxit.cpy) によって、唯一のパラメーターとして呼び出されます。ユーザー出口には以下が含まれています。
  • イベントのイベント コードと要求可能なアクションを表すアクション コードなどが含まれているヘッダー部分
  • イベントを表すデータが含まれているデータ部分
mfjdxit.cpy では、すべてのイベント コード、アクション コード、および各イベントに関連付けられたデータが詳細に記述されます。mfjdxit.cpy を調べる場合は、次のことに注意してください。
  • -I- が含まれているフィールド名 (JXIT-I-size など) は、ユーザー出口への入力です。これらのフィールドは変更しないでください。
  • -U- が含まれているフィールド名 (JXIT-U-PGM-alias など) は、入力と出力に使用されます。ユーザー出口へのエントリでは、これらのフィールドは適宜に設定され、場合によっては、復帰時にユーザー出口によって許容可能な値に変更されることがあります。
  • 文字データは、すべて ASCII (ANSI) 形式です。NULL 値は、データ型に適した値になります。つまり、文字データの場合は空白、数値データやバイナリ データの場合はゼロです。

ユーザー出口は、イベントが発生すると呼び出されます。

ほとんどのイベントは、バッチ イニシエーター SEP で発生します。ただし次の例外があります。
  • 通常のジョブでは、Event-job-ready および Event-job-stmt-info イベントは、バッチ イニシエーター SEP ではなく通常の SEP でのみ発生します。
  • SSTM ジョブでは、Event-job-ready および Event-job-stmt-info イベントは、バッチ イニシエーター SEP または Admin SEP ではなくはじめの通常の SEP でのみ発生します。job-started から job-ended のイベントは、通常の SEP ごとに 1 回発生します。
  • ジョブが実行を目的としたものでない場合 (つまり、ジョブに TYPRUN=COPY または TYPRUN=SCAN がある場合)や、ジョブに JCL エラーがある場合に限り、イベント Event-job-concluded は Admin SEP でのみ発生します。

JCL ユーザー出口は、そのユーザー出口の呼び出し元であるプロセス内のイベントのみ記憶できます。

何らかの理由でユーザー出口が失敗した場合は、後続のすべてのイベントに対する失敗プロセスでそのユーザー出口が無効になります。

注:
  • ユーザー出口の名前は、例えば MFJUXIT=<optional location specification>MYEXIT.int (Windows)、または UNIX であれば、MFJUXIT=<optional location specification>MYEXIT.so.のように、MFJUXIT 環境変数で名前をオーバーライドしない限り、必ず MFJUXIT という名前が付けられます。

    サンプルの出口のソースが、 %ProgramFiles(x86)%\Micro Focus\Enterprise Developer\src\enterpriseserver\exits (Windows)、または $COBDIR/src/enterpriseserver/exit (UNIX) に用意されています。

    これをベースとして使用して、各自のニーズに合った出口をビルドすることをお奨めします。サンプル出口のソースでは、ユーザー出口インターフェイス ブロックのコピーブックを使用しています。このコピーブックのソース (mfjdxit.cpy) は、 %ProgramFiles(x86)%\Micro Focus\Enterprise Developer\cpylib (Windows)、または $COBDIR/cpylib (UNIX) にあります。mfjdxit.cpy のリストは、『ユーザー出口インターフェイス ブロック (mfjdxit.cpy) 』の節に記載されています。

  • ユーザー出口は、ASCII (ANSI) 文字セットを使用する必要があります。ユーザー出口では非メインフレーム COBOL 方言「MF」を使用することをお奨めします。
  • ユーザー出口はオプションです。動的プログラム ローダーにアクセス可能などのフォルダーにも常駐でき、その他の常駐場所を MFJUXIT 環境変数によって明示的に設定することもできます。MFJUXIT 環境変数を設定し、指定されたモジュールが見つからない場合は、リージョンが正しく起動しません。
  • ユーザー出口は、COBOL で記述する必要があります。
  • NOOUTDD 指令は指定する必要があります。