# ジョブ実行

## 配信前ジョブ

配信要求および送信要求を受け付けた時点でユーザージョブを起動することができます。

起動したユーザージョブが正常終了（起動したジョブの重大度がジョブ中断重大度（JOBSTOPSEV）（「システム動作環境の設定について」参照）を超えない場合）すると配信処理を開始します。異常終了すると配信処理を行いません。たとえば、配信要求または送信要求を受け付けた時点で、配信データを作成するユーザージョブを起動し、配信データが作成された時点で、その配信データを配信するという処理に使用することができます。

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

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

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

配信処理または集信処理が正常終了した場合にユーザージョブを起動するには、ジョブ起動情報に登録されているジョブIDを配信管理情報または集信管理情報の正常時ジョブID（JOBID）に設定してください。

配信処理または集信処理が異常終了した場合にユーザージョブを起動するには、ジョブ起動情報に登録されているジョブIDを配信管理情報または集信管理情報の異常時ジョブID（ERRJOBID）に設定してください。

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

## 環境変数への変換

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

表2.3 環境変数一覧

変数名 | タイプ | 長さ | 変換規則 | 配信前 | 配信後 | 集信後
--- | --- | --- | --- | --- | --- | ---
&HOST | *CHAR | 8 | 配信ホスト名または集信ホスト名に変換する | － | ○ | ○
&HOST2 | *CHAR | 32 | 配信ホスト名または集信ホスト名に変換する | － | ○ | ○
&FILEID | *CHAR | 8 | ファイルIDに変換する | ○ | ○ | ○
&FILEID2 | *CHAR | 32 | ファイルIDに変換する | ○ | ○ | ○
&COUNT | *DEC | 15 5 | 配信したファイルまたは集信したファイルのレコード件数に変換する | － | ○ | ○
&LIBNM | *CHAR | 10 | 配信ファイルまたは集信ファイルのライブラリー名に変換する | ○ | ○ | ○
&FILENM | *CHAR | 10 | 配信ファイルまたは集信ファイルのファイル名に変換する | ○ | ○ | ○
&MBRNM | *CHAR | 10 | 配信ファイルまたは集信ファイルのメンバー名に変換する | ○ | ○ | ○
&STATUS | *DEC | 15 5 | 配信完了コードまたは集信完了コード（形式：9999） 完了コードは、以下を参照 HULFT10 for IBMi エラーコード・メッセージ : 履歴情報エラーコード概要 | － | ○ | ○
&DETAIL | *DEC | 15 5 | 配信詳細コードまたは集信詳細コード（形式：9999） 詳細コードは、以下を参照 HULFT10 for IBMi エラーコード・メッセージ : 履歴情報エラーコード概要 | － | ○ | ○
&SDATE | *DEC | 15 5 | 配信開始日または集信開始日に変換する(*1) | － | ○ | ○
&EDATE | *DEC | 15 5 | 配信終了日または集信終了日に変換する(*1) | － | ○ | ○
&STIME | *DEC | 15 5 | 配信開始時刻または集信開始時刻に変換する（形式：HHMMSS） | － | ○ | ○
&ETIME | *DEC | 15 5 | 配信終了時刻または集信終了時刻に変換する（形式：HHMMSS） | － | ○ | ○
&MSG0 | *CHAR | 32 | メッセージ0に変換する | ○ | ○ | ○
&MSG1 | *CHAR | 32 | メッセージ1に変換する | ○ | ○ | ○
&MSG2 | *CHAR | 32 | メッセージ2に変換する | ○ | ○ | ○
&MSG3 | *CHAR | 32 | メッセージ3に変換する | ○ | ○ | ○
&MSG4 | *CHAR | 32 | メッセージ4に変換する | ○ | ○ | ○
&MSG5 | *CHAR | 32 | メッセージ5に変換する | ○ | ○ | ○
&MSGL0 | *CHAR | 32 | 拡張メッセージ0に変換する | ○ | ○ | ○
&MSGL1 | *CHAR | 32 | 拡張メッセージ1に変換する | ○ | ○ | ○

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

注意

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

パラメーターに値をセットするには、ジョブ起動情報とCLプログラムの両方で指定しなければなりません。

<ジョブ起動情報での指定方法>

    CALL ライブラリー名/プログラム名 PARM(&HOST2 &FILEID &LIBNM &FILENM &MBRNM
       &STATUS &SDATE &STIME &EDATE &ETIME)

<CLプログラムでの指定方法>

    START:PGM PARM(&HNM &ID &LNM &FNM &MNM &STATUS &SDATE &STIME &EDATE &ETIME)

       DCL   VAR(&HNM)     TYPE(*CHAR)  LEN(32)
       DCL   VAR(&ID)      TYPE(*CHAR)  LEN(8)
       DCL   VAR(&LNM)     TYPE(*CHAR)  LEN(10)
       DCL   VAR(&FNM)     TYPE(*CHAR)  LEN(10)
       DCL   VAR(&MNM)     TYPE(*CHAR)  LEN(10)
       DCL   VAR(&STATUS)  TYPE(*DEC)   LEN(15 5)
       DCL   VAR(&SDATE)   TYPE(*DEC)   LEN(15 5)
       DCL   VAR(&STIME)   TYPE(*DEC)   LEN(15 5)
       DCL   VAR(&EDATE)   TYPE(*DEC)   LEN(15 5)
       DCL   VAR(&ETIME)   TYPE(*DEC)   LEN(15 5)
                          :
                          :

### 環境変数の文字変換

ジョブ実行時の環境変数について、システム動作環境設定ファイルの「HULFTキャラクターセット」とジョブの実行環境のCCSIDの値の組み合わせに基づき、文字変換を実施していました。

この変換について、Ver.8.4.2より変換方法を選択することが可能となりました。

システム動作環境設定のジョブ環境変数の文字変換モード（JOBENVCNVMODE）の設定値により、以下のような変換となります。

互換モード（0）

HULFT for IBMi Ver.8.4.2未満と同様の動作です。

ジョブ実行の際、環境変数の文字がジョブの実行環境のCCSID（コード化文字セット識別コード）において表記文字（グラフィック文字）の英小文字（a～z）に該当する場合、英大文字（A～Z）に変換されます。

無変換モード（1）

環境変数の文字コードは変換されずに、そのまま使用されます。

システム動作環境設定については、「コード変換関連設定」を参照してください。

### 変換例

環境変数について、システム動作環境設定ジョブ環境変数の文字変換モード（JOBENVCNVMODE）の設定値による変換例は以下となります。

= 備考 =

環境変数の文字変換は、以下に設定されたCCSIDの値を使用します。

変換前

  HULFTの実行環境のシステム動作環境設定ファイルの「HULFTキャラクターセット」

変換後

  ジョブ実行時のCCSID（コード化文字セット識別コード）

なお、「無変換モード（1）」の場合、CCSIDの値に関わらず変換は行いません。

HULFTキャラクターセット「5026」とジョブ実行時のCCSID「5026」での変換例

図2.21 HULFTキャラクターセット「5026」とジョブ実行時のCCSID「5026」での変換例

HULFTキャラクターセット「5035」とジョブ実行時のCCSID「5035」での変換例

図2.22 HULFTキャラクターセット「5035」とジョブ実行時のCCSID「5035」での変換例

HULFTキャラクターセット「5026」とジョブ実行時のCCSID「65535」での変換例

ジョブ実行時のCCSIDが「65535」の場合、「省略時のコード化文字セットID」の「5026」が使用されます。

図2.23 HULFTキャラクターセット「5026」とジョブ実行時のCCSID「65535」での変換例

HULFTキャラクターセット「5035」とジョブ実行時のCCSID「65535」での変換例

ジョブ実行時のCCSIDが「65535」の場合、「省略時のコード化文字セットID」の「5026」が使用されます。

このため半角カナの「ｲ（0x62）」は、CCSIDが「5026」の場合「a（0x62）」として扱われるため、英大文字「A（0xC1）」に変換されます。

「ｲ（0x62）」と同様に、「ｳ（0x63）」「ｴ（0x64）」「ｵ（0x65）」も英小文字に該当するため、英大文字に変換されます。

図2.24 HULFTキャラクターセット「5035」とジョブ実行時のCCSID「65535」での変換例

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

ジョブが実行できない場合（たとえば、ジョブ実行履歴の状態が実行不能となっている場合）は、以下の内容を確認してください。

権限の確認

権限によってはジョブが起動されない場合があります。それぞれのジョブの実行権限は以下のとおりです。

配信前ジョブ

  : 配信要求コマンド（UTLSEND）発行ユーザーの権限

配信後ジョブ

  : 配信システム起動ユーザーの権限（原則としてQSECOFR相当）

集信後ジョブ

  : 集信システム起動ユーザーの権限（原則としてQSECOFR相当）

詳細は、「HULFTシステムの起動と停止について」を参照してください。

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

- シングルクォーテーションの扱い（以下参照）

  HULFT10 for IBMi オペレーション マニュアル : ジョブ起動情報

- ジョブ記述の設定

- コマンドの設定

ジョブ記述の存在確認

ジョブ記述が指定したライブラリーに存在するかどうか確認し、ジョブ記述の設定内容も確認してください。

コマンドの確認

ジョブ起動情報に登録されているコマンドをコマンドラインで実行し確認してください。