# ジョブ実行

## 配信前ジョブ

配信要求または送信要求を受け付けた時点で配信前ジョブを起動できます。

起動した配信前ジョブが正常終了（RC=0000、またはジョブ起動情報のジョブRC判定（JOB-RC）で設定した値以下）すると配信処理を開始します。異常終了すると配信処理を行いません。たとえば、配信要求または送信要求を受け付けた時点で、配信データを作成するユーザージョブを起動し、配信データが作成された時点で、その配信データを配信するという処理に使用できます。

配信前ジョブ機能を使用するには配信管理情報の配信前ジョブID（PRE-JOB）にジョブ起動情報に登録されているジョブIDを設定してください。

【JCL例】

HULFTで起動される配信前ジョブの最終ジョブ・ステップに、自動的に以下のHULFTのプログラムのジョブ・ステップが組み込まれます。

    //NCHK     EXEC PGM=XRJEND,REGION=1024K,COND=(nn,LT),
    //         PARM=(NML,S,NOLOG)
    //STEPLIB  DD   DISP=SHR,DSN=HULFT.LOAD
    //XRLOG    DD   DSN=NULLFILE,DISP=SHR
    //XRLOG1   DD   DSN=NULLFILE,DISP=SHR
    //XRLOG2   DD   DSN=NULLFILE,DISP=SHR
    //XRFILE   DD   DSN=HULFT.FILE,DISP=SHR
    //XRHOST   DD   DSN=HULFT.HOST,DISP=SHR
    //XRIN     DD   *
    //SYSUDUMP DD   SYSOUT=*
    //RCHK     EXEC PGM=XRJEND,REGION=1024K,COND=(0,EQ,NCHK),
    //         PARM=(RER,S,NOLOG)
    //STEPLIB  DD   DISP=SHR,DSN=HULFT.LOAD
    //XRLOG    DD   DSN=NULLFILE,DISP=SHR
    //XRLOG1   DD   DSN=NULLFILE,DISP=SHR
    //XRLOG2   DD   DSN=NULLFILE,DISP=SHR
    //XRFILE   DD   DSN=HULFT.FILE,DISP=SHR
    //XRHOST   DD   DSN=HULFT.HOST,DISP=SHR
    //XRIN     DD   *
    //SYSUDUMP DD   SYSOUT=*
    //ACHK     EXEC PGM=XRJEND,REGION=1024K,COND=ONLY,
    //         PARM=(ABN,S,NOLOG)
    //STEPLIB  DD   DISP=SHR,DSN=HULFT.LOAD
    //XRLOG    DD   DSN=NULLFILE,DISP=SHR
    //XRLOG1   DD   DSN=NULLFILE,DISP=SHR
    //XRLOG2   DD   DSN=NULLFILE,DISP=SHR
    //XRFILE   DD   DSN=HULFT.FILE,DISP=SHR
    //XRHOST   DD   DSN=HULFT.HOST,DISP=SHR
    //XRIN     DD   *
    //SYSUDUMP DD   SYSOUT=*

DD名 | 項目名 | 説明
--- | --- | ---
STEPLIB | HULFT.LOAD | HULFTロードモジュールライブラリー
XRFILE | HULFT.FILE | 集配信管理ファイル
XRHOST | HULFT.HOST | 詳細ホスト情報ファイル

パラメーター名 | 項目名 | 説明
--- | --- | ---
COND= | nn | ジョブ起動情報の「ジョブRC判定」の値

= 備考 =

自動的に組み込まれるHULFTのプログラムのジョブ・ステップには、システム動作環境設定ファイルで設定した後続ジョブ付加ステップのSTEPLIB設定2が追加されます。設定されていない場合は追加されません。

注意

同期転送で配信要求を行った場合、配信前ジョブがJCLエラーになると、システム動作環境設定の配信前ジョブのタイムアウト（JOBTIME）の時間まで配信要求プログラムが終了しません。

## 配信後ジョブまたは集信後ジョブ

配信処理または集信処理が終了した時点で配信後ジョブまたは集信後ジョブを起動できます。配信処理または集信処理が正常終了した場合と異常終了した場合で異なるジョブを起動できます。

配信後ジョブまたは集信後ジョブを起動するには、ジョブ起動情報に登録されているジョブIDを起動する条件に合わせて設定する必要があります。

配信後ジョブの起動を設定する場合

配信後ジョブを起動するには、ジョブIDを以下の項目に設定します。

表2.2 配信後ジョブの設定

配信後ジョブが起動する条件 | ジョブIDを設定する項目
--- | ---
配信処理が正常終了した場合 | 配信管理情報の「正常時ジョブID」
配信処理が異常終了した場合 | 配信管理情報の「異常時ジョブID」

集信後ジョブの起動を設定する場合

集信後ジョブを起動するには、ジョブIDを以下の項目に設定します。

表2.3 集信後ジョブの設定

集信後ジョブが起動する条件 | ジョブIDを設定する項目
--- | ---
集信処理が正常終了した場合 | 集信管理情報の「正常時ジョブID」
集信処理が異常終了した場合 | 集信管理情報の「異常時ジョブID」

配信後ジョブまたは集信後ジョブの実行履歴が、集配信履歴ファイルに書き込まれます。

注意

- 転送テスト機能を利用した転送の場合、配信後ジョブ実行で出力される履歴はシステム動作環境設定の配信後ジョブ実行（TTSNDJOB）の設定値により異なります。

  詳細は、「各項目の説明」を参照してください。

- 転送テスト機能を利用した転送の場合、集信後ジョブ実行で出力される履歴はシステム動作環境設定の集信後ジョブ実行（TTRCVJOB）の設定値により異なります。

  詳細は、「各項目の説明」を参照してください。

- 転送テスト機能を利用した転送の場合、配信後ジョブおよび集信後ジョブの実行結果を出力するには、転送履歴出力（TTSNDRCVLOG）に“1（配信履歴および集信履歴を出力する）”を指定する必要があります。

【JCL例1】

HULFTで起動される配信後ジョブまたは集信後ジョブの第一ジョブ・ステップに、自動的に以下のHULFTのプログラムのジョブ・ステップが組み込まれます。

    //XRJINT   EXEC PGM=XRJINT,REGION=1024K
    //STEPLIB  DD   DISP=SHR,DSN=HULFT.LOAD
    //XRLOG    DD   DSN=HULFT.LOG,DISP=SHR
    //XRLOG1   DD   DSN=HULFT.LOG.PATH1,DISP=SHR
    //XRLOG2   DD   DSN=HULFT.LOG.PATH2,DISP=SHR
    //XRIN     DD   *
    //SYSOUT   DD   SYSOUT=*

DD名 | 項目名 | 説明
--- | --- | ---
STEPLIB | HULFT.LOAD | HULFTロードモジュールライブラリー（システム動作環境設定で設定したSTEPLIB）
XRLOG | HULFT.LOG | 集配信履歴ファイルIDキーファイル
XRLOG1 | HULFT.LOG.PATH1 | 集配信履歴ホスト名キーファイル
XRLOG2 | HULFT.LOG.PATH2 | 集配信履歴日付キーファイル

【JCL例2】

HULFTで起動される配信後ジョブまたは集信後ジョブの最終ジョブ・ステップに、自動的に以下のHULFTのプログラムのジョブ・ステップが組み込まれます。

    //NCHK     EXEC PGM=XRJEND,REGION=1024K,COND=(nn,LT),
    //         PARM=(NML)
    //STEPLIB  DD   DISP=SHR,DSN=HULFT.LOAD
    //XRLOG    DD   DSN=HULFT.LOG,DISP=SHR
    //XRLOG1   DD   DSN=HULFT.LOG.PATH1,DISP=SHR
    //XRLOG2   DD   DSN=HULFT.LOG.PATH2,DISP=SHR
    //XRFILE   DD   DSN=HULFT.FILE,DISP=SHR
    //XRHOST   DD   DSN=HULFT.HOST,DISP=SHR
    //XRIN     DD   *
    //SYSUDUMP DD   SYSOUT=*
    //RCHK     EXEC PGM=XRJEND,REGION=1024K,COND=(0,EQ,NCHK),
    //         PARM=(RER)
    //STEPLIB  DD   DISP=SHR,DSN=HULFT.LOAD
    //XRLOG    DD   DSN=HULFT.LOG,DISP=SHR
    //XRLOG1   DD   DSN=HULFT.LOG.PATH1,DISP=SHR
    //XRLOG2   DD   DSN=HULFT.LOG.PATH2,DISP=SHR
    //XRFILE   DD   DSN=HULFT.FILE,DISP=SHR
    //XRHOST   DD   DSN=HULFT.HOST,DISP=SHR
    //XRIN     DD   *
    //SYSUDUMP DD   SYSOUT=*
    //ACHK     EXEC PGM=XRJEND,REGION=1024K,COND=ONLY,
    //         PARM=(ABN)
    //STEPLIB  DD   DISP=SHR,DSN=HULFT.LOAD
    //XRLOG    DD   DSN=HULFT.LOG,DISP=SHR
    //XRLOG1   DD   DSN=HULFT.LOG.PATH1,DISP=SHR
    //XRLOG2   DD   DSN=HULFT.LOG.PATH2,DISP=SHR
    //XRFILE   DD   DSN=HULFT.FILE,DISP=SHR
    //XRHOST   DD   DSN=HULFT.HOST,DISP=SHR
    //XRIN     DD   *
    //SYSUDUMP DD   SYSOUT=*

DD名 | 項目名 | 説明
--- | --- | ---
STEPLIB | HULFT.LOAD | HULFTロードモジュールライブラリー（システム動作環境設定で設定したSTEPLIB）
XRLOG | HULFT.LOG | 集配信履歴ファイルID キーファイル
XRLOG1 | HULFT.LOG.PATH1 | 集配信履歴ホスト名キーファイル
XRLOG2 | HULFT.LOG.PATH2 | 集配信履歴日付キーファイル
XRFILE | HULFT.FILE | 集配信管理ファイル
XRHOST | HULFT.HOST | 詳細ホスト情報ファイル

パラメーター名 | 項目名 | 説明
--- | --- | ---
COND= | nn | ジョブ起動情報の「ジョブRC判定」の値

= 備考 =

自動的に組み込まれるHULFTのプログラムのジョブ・ステップには、システム動作環境設定ファイルで設定した後続ジョブ付加ステップのSTEPLIB設定1および後続ジョブ付加ステップのSTEPLIB設定2が追加されます。設定されていない場合は追加されません。

## リモートジョブ実行

リモートジョブ実行を受け付けた時点で、リモートジョブとして実行するジョブを起動できます。

【JCL例】

HULFTで起動されるジョブの最終ジョブ・ステップに、自動的に以下のHULFTのプログラムのジョブ・ステップが組み込まれます。

    //NCHK     EXEC PGM=XRJEND,REGION=1024K,COND=(nn,LT),
    //         PARM=(NML,NOLOG)
    //STEPLIB  DD   DISP=SHR,DSN=HULFT.LOAD
    //XRLOG    DD   DSN=NULLFILE,DISP=SHR
    //XRLOG1   DD   DSN=NULLFILE,DISP=SHR
    //XRLOG2   DD   DSN=NULLFILE,DISP=SHR
    //XRFILE   DD   DSN=HULFT.FILE,DISP=SHR
    //XRHOST   DD   DSN=HULFT.HOST,DISP=SHR
    //XRIN     DD   *
    //SYSUDUMP DD   SYSOUT=*
    //RCHK     EXEC PGM=XRJEND,REGION=1024K,COND=(0,EQ,NCHK),
    //         PARM=(RER,NOLOG)
    //STEPLIB  DD   DISP=SHR,DSN=HULFT.LOAD
    //XRLOG    DD   DSN=NULLFILE,DISP=SHR
    //XRLOG1   DD   DSN=NULLFILE,DISP=SHR
    //XRLOG2   DD   DSN=NULLFILE,DISP=SHR
    //XRFILE   DD   DSN=HULFT.FILE,DISP=SHR
    //XRHOST   DD   DSN=HULFT.HOST,DISP=SHR
    //XRIN     DD   *
    //SYSUDUMP DD   SYSOUT=*
    //ACHK     EXEC PGM=XRJEND,REGION=1024K,COND=ONLY,
    //         PARM=(ABN,NOLOG)
    //STEPLIB  DD   DISP=SHR,DSN=HULFT.LOAD
    //XRLOG    DD   DSN=NULLFILE,DISP=SHR
    //XRLOG1   DD   DSN=NULLFILE,DISP=SHR
    //XRLOG2   DD   DSN=NULLFILE,DISP=SHR
    //XRFILE   DD   DSN=HULFT.FILE,DISP=SHR
    //XRHOST   DD   DSN=HULFT.HOST,DISP=SHR
    //XRIN     DD   *
    //SYSUDUMP DD   SYSOUT=*

DD名 | 項目名 | 説明
--- | --- | ---
STEPLIB | HULFT.LOAD | HULFTロードモジュールライブラリー（システム動作環境設定で設定したSTEPLIB）
XRFILE | HULFT.FILE | 集配信管理ファイル
XRHOST | HULFT.HOST | 詳細ホスト情報ファイル

パラメーター名 | 項目名 | 説明
--- | --- | ---
COND= | nn | ジョブ起動情報の「ジョブRC判定」の値

= 備考 =

自動的に組み込まれるHULFTのプログラムのジョブ・ステップには、システム動作環境設定ファイルで設定した後続ジョブ付加ステップのSTEPLIB設定2が追加されます。設定されていない場合は追加されません。

## 環境変数への変換

配信前ジョブ、配信後ジョブ、または集信後ジョブを起動する際、HULFTは起動ジョブに対して環境変数を付加します。付加する環境変数の一覧は以下のとおりです。

表2.4 環境変数一覧

変数名 | 変換規則 | 配信前 | 配信後 | 集信後
--- | --- | --- | --- | ---
&HOST | 配信側ホスト名または集信側ホスト名に変換する | － | ○ | ○
&FILEID | ファイルIDに変換する | ○ | ○ | ○
&DATE | 配信終了日または集信終了日に変換する（形式：YYYYMMDD）(*1) | － | ○ | ○
&TIME | 配信終了時間または集信終了時間に変換する（形式：HHMMSS） | － | ○ | ○
&COUNT | 配信したファイルまたは集信したファイルのレコード件数に変換する（7桁まで変換） | － | ○ | ○
&RCOUNT | 配信したファイルまたは集信したファイルのレコード件数に変換する（10桁まで変換） | － | ○ | ○
&DSNAME | 配信ファイルのデータ・セット名または集信ファイルのデータ・セット名に変換する | ○ | ○ | ○
&VOL | 配信管理情報の「ボリューム通番（VOL）」または集信管理情報の「ボリューム通番（VOL）」に指定した値に変換する | ○ | ○ | ○
&STATUS | 配信完了コードまたは集信完了コード 完了コードは、以下を参照 HULFT10 for zOS エラーコード・メッセージ : 履歴情報のエラーコード | － | ○ | ○
&DETAIL | 配信詳細コードまたは集信詳細コード 詳細コードは、以下を参照 HULFT10 for zOS エラーコード・メッセージ : 履歴情報のエラーコード | － | ○ | ○
&SDATE | 配信開始日または集信開始日に変換する（形式：YYYYMMDD）(*1) | ○ | ○ | ○
&EDATE | 配信終了日または集信終了日に変換する（形式：YYYYMMDD）(*1) | － | ○ | ○
&STIME | 配信開始時刻または集信開始時刻に変換する（形式：HHMMSS） | ○ | ○ | ○
&ETIME | 配信終了時刻または集信終了時刻に変換する（形式：HHMMSS） | － | ○ | ○
&RSNDNO | 配信制御ファイルに書き込まれる際に付与された通し番号に変換する | － | ○ | －

○ | : | 利用可能
－ | : | 利用不可

*1 | : | 配信前ジョブ、配信後ジョブ、および集信後ジョブの日付の、年月日の順序は、システム動作環境設定の「日付形式（DATEFMT）」で設定した形式が適用されます。

= 備考 =

- 「&」は16進コードで「0x50」です。

- 上記の変数は、システム動作環境設定の環境変数の頭文字選択（INDOPTVAR）で、頭文字を選択できます。

  初期値は“0（0xE0）”です。

  ただし、0xE0の文字は、使用しているエミュレーターのCCSIDの値により表示が異なるため、“1（0x50（&））”を指定して動作させることを推奨します。

  本書では、16進コードの0xE0は「$」と表記しています。

- 集信管理情報の集信完了通知が“J（ジョブ完了）”の場合、「&EDATE」、「&ETIME」、「&DATE」、「&TIME」は、集信後ジョブの完了日時ではなく、転送の完了日時に変換されます。

- 配信前ジョブで「&SDATE」、「&STIME」を使用した場合、開始日付と開始時刻は配信要求を行ったときの日付、時刻になります。

- 配信が正常に完了した場合、「&RSNDNO」は“00000000”に変換されます。

表2.5 環境変数一覧

変数名 | 変換規則 | 配信前 | 配信後 | 集信後
--- | --- | --- | --- | ---
&MSG0 | メッセージ0に変換する | ○ | ○ | ○
&MSG1 | メッセージ1に変換する | ○ | ○ | ○
&MSG2 | メッセージ2に変換する | ○ | ○ | ○
&MSG3 | メッセージ3に変換する | ○ | ○ | ○
&MSG4 | メッセージ4に変換する | ○ | ○ | ○
&MSG5 | メッセージ5に変換する | ○ | ○ | ○
&MSGL0 | 拡張メッセージ0に変換する | ○ | ○ | ○
&MSGL1 | 拡張メッセージ1に変換する | ○ | ○ | ○

○ | : | 利用可能
－ | : | 利用不可

= 備考 =

- 「&」は16進コードで「0x50」です。

- 「&MSG0」～「&MSG5」、および「&MSGL0」～「&MSGL1」には、システム動作環境設定の環境変数の頭文字選択（INDOPTVAR）は使用されません。

- 「&MSG0」～「&MSG5」は、頭文字に0x50（&）または0xE0のどちらを指定しても記述できますが、0xE0は、使用しているエミュレーターのCCSIDの値により表示が異なるため、頭文字には0x50（&）を指定することを推奨します。

  本書では、16進コードの0xE0は「$」と表記しています。

注意

- 「&RCOUNT」は、配信件数または集信件数が2147483647件を超えた場合、“2147483647”と変換されますので注意してください。

- 起動JCL内に指定された環境変数を変換した結果、JCLの1レコードの80カラム目を超えた場合、配信前ジョブ、配信後ジョブ、または集信後ジョブは正常に実行されません。環境変数は、変換結果がJCLの1行を超えないように設定してください。

  ただし、「&MSGL0」および「&MSGL1」の変換結果が、配信前ジョブ、配信後ジョブ、または集信後ジョブのJCLの1レコードの80カラム目を超える場合、変換結果を80カラム目まで出力した後改行し、次のレコードの先頭1カラム目より出力を継続します。

- 以下のいずれかの場合、「&DSNAME」、「&MSG0」～「&MSG5」、および「&MSGL0」～「&MSGL1」の環境変数でファイル名やファイルパスに置き換えられる文字列は、半角英数字で指定してください。

  - 配信側ホストと集信側ホストでシステム動作環境設定のHULFTキャラクターセット（HULCHARSET）が異なる場合

  - HULFT Ver.8.1未満と通信する場合

  - HULFT7通信モードが“有効”の場合

- 「&VOL」には、実際の配信ファイルまたは集信ファイルがアロケーションされているボリューム名は引き継がれません。

ジョブ起動情報のジョブを指定するときに、表2.4 の環境変数を起動JCL内に指定すると、自動的に環境変数の値に置き換えてJCLを起動します。

表2.6 変換例

変換する項目 | 変換値
--- | ---
集信側ホスト名 | HOST0001
ファイルID | FILEID01
配信開始日 | 20151201
配信終了時刻 | 155432
配信したファイルのレコード件数 | 12000
配信ファイルのデータ・セット名 | FILEID01.DATA
ボリューム通番 | HUL001
完了コード | 0000

【変換前のJCL例】

    //HUL001 JOB MSGCLASS=B,CLASS=A
    //STEP01 EXEC PGM=PGM01,PARM='&HOST,&FILEID,&EDATE,&ETIME'
    //U01 DD DSN=&DSNAME,DISP=SHR,UNIT=SYSDA,VOL=SER=&VOL
    //SYSIN DD *
    &COUNT,&STATUS
    //

パラメーター名 | 項目名 | 説明
--- | --- | ---
UNIT | SYSDA | UNIT

【変換後のJCL例】

    //HUL001   JOB  MSGCLASS=B,CLASS=A
    //STEP01   EXEC PGM=PGM01,PARM='HOST0001,FILEID01,20151201,155432'
    //U01      DD   DSN=FILEID01.DATA,DISP=SHR,UNIT=SYSDA,VOL=SER=HUL001
    //SYSIN    DD   *
    0012000,0000
    //

パラメーター名 | 項目名 | 説明
--- | --- | ---
UNIT | SYSDA | UNIT

## ジョブ実行時の留意点

配信前ジョブ、配信後ジョブ、または集信後ジョブが実行できない場合は、以下の内容を確認してください。

ジョブ起動情報の設定確認

ジョブ起動情報の以下の設定を確認してください。

- JCLライブラリー（DSNAME）のデータ・セット名の設定

- メンバー名（MEMBER DEF～DEFEND）のメンバー名の設定

JCLライブラリー、メンバーの存在確認

記述したデータ・セット名が存在するか、またはメンバー名が記述したデータ・セットに存在するか確認してください。

JCLの確認

ジョブ起動情報に登録されたメンバー名を実行し、正常に起動されるか確認してください。

起動JCL内に指定された環境変数を変換した結果、JCLの1行に記載できるバイト数を超えていないか確認してください。

システム動作環境設定の確認

配信後ジョブまたは集信後ジョブが実行できない場合は、システム動作環境設定の以下の設定を確認してください。

- 転送動作モード（TTMODE）の設定値

- 配信後ジョブ実行（TTSNDJOB）の設定値

- 集信後ジョブ実行（TTRCVJOB）の設定値

転送動作モード（TTMODE）が“1（テストモード）”かつ配信後ジョブ実行（TTSNDJOB）が“2（配信後ジョブにTYPRUN=SCANを付加して実行する）”の場合、配信後ジョブ実行履歴には先頭のメンバーの実行結果のみが出力されます。そのとき、ステータスは“0（実行待ち）”となります。

また、転送動作モード（TTMODE）が“1（テストモード）”かつ集信後ジョブ実行（TTRCVJOB）が“2（集信後ジョブにTYPRUN=SCANを付加して実行する）”の場合、集信後ジョブ実行履歴には先頭のメンバーの実行結果のみが出力されます。そのとき、ステータスは“0（実行待ち）”となります。

配信後ジョブまたは集信後ジョブの実行結果を確認する場合は、OSのジョブログを参照してください。

なお、転送テスト機能を利用した転送の場合、配信後ジョブおよび集信後ジョブの実行結果を出力するには、転送履歴出力（TTSNDRCVLOG）に“1（ 配信履歴および集信履歴を出力する）”を指定する必要があります。