# メッセージ送信

配信システムから集信システムにファイルを転送するのと同時に、任意のメッセージを送信することができます。メッセージは「集配信履歴への出力」、「各種管理情報の動的変更」（例：集信ファイル名の動的変更）、「起動ジョブへの環境変数としての引継」などに利用することができます。

使用している言語が異なるホスト同士のメッセージ送信の場合は、「メッセージ送信の注意点」を参照してください。

## メッセージ送信機能について

メッセージを送信するには、要求発行コマンドのパラメーターにメッセージを指定します。配信要求時は配信要求コマンド、送信要求時は送信要求コマンドとなります。

環境変数を使用することで、管理情報の設定値を動的に変更することができます。パラメーターに指定したメッセージは、以下の環境変数で使用することができます。

- &MSG0～&MSG5

  「&MSG0」～「&MSG5」の6つで、それぞれ50バイトまでのメッセージを指定できます。配信要求コマンドまたは送信要求コマンドのパラメーター「MSG0」～「MSG5」で指定したメッセージに置換されます。

- &MSGL0～&MSGL1

  「&MSGL0」～「&MSGL1」の2つで、それぞれ200バイトまでのメッセージを指定できます。配信要求コマンドまたは送信要求コマンドのパラメーター「MSGL0」～「MSGL1」で指定したメッセージに置換されます。

管理情報内に指定したメッセージを、送信側にて指定しなかった場合、受信側では0バイトメッセージとして扱います。

メッセージの置換を行うには、システム動作環境設定のメッセージ動的パラメーター指定（MSGDYNPARAM）を有効にしなければなりません。システム動作環境設定については、「システム動作環境の設定について」を参照してください。

= 備考 =

メッセージ内の文字は、システム動作環境設定のHULFTキャラクタセット（HULCHARSET）に設定されている値を用いて文字コードの変換を行います。詳細は、「メッセージ送信の注意点」を参照してください。

注意

メッセージ送信側で指定したメッセージの置換を行う際、以下のような場合はファイル転送前にエラーとなります。

- 管理情報にて指定できるサイズを超えていた場合

- 配信ファイル名の置換時にファイル名として適用できない場合

## メッセージ指定可能な設定情報について

メッセージ置換で指定可能な管理情報の設定値・IDは以下のとおりです。

[配信管理情報]

  - 配信ファイル名

  - 転送グループID

  - 配信前ジョブID

  - 正常時ジョブID

  - フォーマットID

  - マルチフォーマットID

[集信管理情報]

  - 集信ファイル名

  - 転送グループID

  - 正常時ジョブID

[ジョブ起動情報]

  - 起動ジョブの引数

注意

- HULFT for MainframeおよびHULFT for IBMiの各設定値またはIDは、英大文字で登録されています。英小文字のメッセージを指定した場合、メッセージの置換は英小文字のままとなります。各設定値またはIDとして指定する場合は英大文字で指定してください。

- メッセージを起動ジョブの引数で使用する場合、1つのメッセージにつき1つのパラメーターを指定してください。

  <メッセージを起動ジョブの引数で使用する場合の留意点>

  - メッセージと文字列、メッセージとメッセージの連結はできません（メッセージの置換は行われません）。

    【誤】

        CALL ライブラリー名/プログラム名 PARM(&MSGn&MSGn)

        CALL ライブラリー名/プログラム名 PARM(文字列&MSGn)

        CALL ライブラリー名/プログラム名 PARM(&MSGn文字列)

  - 1つのメッセージは1つのパラメーターとして扱います。

    【正】

        CALL ライブラリー名/プログラム名 PARM(&MSGn)

    上記の例でMSGnに「'XXX' 'YYY'」と指定した場合、'XXX','YYY'の2つのパラメーターとしては扱わず、1つのパラメーター「''XXX' 'YYY''」として扱います。

## 配信時のメッセージ置換処理

図2.18 メッセージ送信（配信時）

1) 配信要求コマンドからメッセージ送信指示

配信要求コマンドから配信システムに対して、「ファイルID」と「メッセージ」を指定して配信要求します。

2) 配信管理情報の内容の変更

配信システムは指定された「ファイルID」の配信管理情報に設定されている「&MSG0」～「&MSG5」および「&MSGL0」～「&MSGL1」を、1) の配信要求コマンドで指定された「メッセージ」に置換します。配信処理は、置換された値に従って実行されます。

3) 集信側へメッセージを送信

配信システムは配信要求コマンドで指定された「メッセージ」をデータ転送前に集信システムへ通知します。

4) 配信後ジョブへ環境変数設定

配信システムは、配信後ジョブでジョブ起動情報のメッセージ置換を行えるように、配信要求コマンドで指定された「メッセージ」を環境変数（「&MSG0」～「&MSG5」および「&MSGL0」～「&MSGL1」）に設定します。

## 集信時のメッセージ置換処理

図2.19 メッセージ送信（集信時）

1) 配信システムからのメッセージ通知の受付

集信システムは配信システムから「ファイルID」および、「メッセージ」の通知を受けます。

2) 集信管理情報の内容の変更

集信システムは配信システムから通知された「ファイルID」の集信管理情報に設定されている「&MSG0」～「&MSG5」および「&MSGL0」～「&MSGL1」を、通知された「メッセージ」に置換します。置換された値に従って集信処理を実行します。

3) 集信後ジョブへ環境変数設定

集信システムは、集信後ジョブでジョブ起動情報のメッセージ置換を行えるように、配信から通知された「メッセージ」を環境変数（「&MSG0」～「&MSG5」および「&MSGL0」～「&MSGL1」）に設定します。

## 送信要求時のメッセージ置換処理

図2.20 メッセージ送信（送信要求時）

1) 送信要求コマンドからメッセージ送信指示

送信要求コマンドにて、「ファイルID」と「メッセージ」を指定します。送信要求コマンドは、集信管理情報に設定されている「&MSG0」～「&MSG5」および「&MSGL0」～「&MSGL1」を指定された「メッセージ」に置換します。

2) 送信要求の発行

送信要求コマンドは、配信システムへ要求発行とともに指定された「メッセージ」も通知します。

3) 配信管理情報の内容の変更

配信システムは送信要求コマンドから通知された「ファイルID」の配信管理情報に設定されている「&MSG0」～「&MSG5」および「&MSGL0」～「&MSGL1」を、通知された「メッセージ」に置換します。置換された値に従って配信処理を実行します。

4) 集信側へメッセージを送信

配信システムは送信要求コマンドから通知された「メッセージ」をデータ転送前に通知します。

5) 配信システムからのメッセージの通知受付

集信システムは配信システムから「ファイルID」および、「メッセージ」の通知を受けます。

6) 集信管理情報の内容の変更

集信システムは配信システムから通知された「ファイルID」の集信管理情報に設定されている「&MSG0」～「&MSG5」および「&MSGL0」～「&MSGL1」を、通知された「メッセージ」に置換します。置換された値に従って集信処理を実行します。

## メッセージ送信の注意点

文字コードの変換について

メッセージ内の文字は、システム動作環境設定のHULFTキャラクタセット（HULCHARSET）に設定されている値に従って文字コードの変換が行われます。

メッセージにマルチバイトを指定した場合の注意点

- 自ホストと相手ホストとで使用している言語が異なる場合に、マルチバイト文字を送信すると、転送が異常終了したり、メッセージが正しく置換できないことがあります。

- 相手ホストが以下の場合は、マルチバイト文字で使用できる文字は日本語のみです。

  - 相手ホストがHULFT Ver.8.1.0未満

  - 相手ホストがHULFT Ver.8.1.0以降で、相手ホストの「HULFT7通信モード」が“有効”

旧互換の動作について

HULFTキャラクタセット（HULCHARSET）に設定される値によっては、HULFT for IBMi Ver.8.1未満と異なる変換結果となります。このため、互換性を保つ機能が提供されています。

1バイト文字の変換結果をHULFT for IBMi Ver.8.1未満と同様にしたい場合は、メッセージキャラクタセット選択（CHARSETOPTMSG）に“I（IBM英小文字拡張モード）”を設定してください。

ただし、HULFT for IBMi Ver.8.1以降では、HULFTキャラクタセット（HULCHARSET）の使用をお勧めします。