# 配信要求API

該当ファイルIDに対して配信要求を行います。

簡易転送の場合は、配信ファイルおよび集信側ホストを指定して簡易転送配信要求を行います。

言語環境（LE）で動作するため、LEライブラリー（OS導入時、省略時のライブラリー名：CEE.SCEERUN）が必要です。

= 備考 =

同期転送モードの配信要求はサポートしていません。

## 呼び出し形式（COBOL）

    CALL 'XRSNDAP'  USING  パラメーターエリア

パラメーターエリア説明

パラメーターエリアの項目を以下の表に示します。なお、簡易転送で配信要求APIを使用する場合は項目が異なります。簡易転送の場合のパラメーターエリアで指定する項目については表7.2 を参照してください。

表7.1 配信要求APIのパラメーターエリア

項目 | 属性 | 長さ | 入出力 | 説明
--- | --- | --- | --- | ---
動作バージョン | キャラクター | 6 | 入力 | パラメーターエリアのバージョンを指定します。 以下のいずれかを指定してください。 V08L01 V08L02 V08L04 どれを指定しても動作は変わりません。
配信ファイルID | キャラクター | 50 | 入力 | 配信依頼をするファイルIDを指定します。
完了コード | バイナリー | 2 | 出力 | 実行後、完了コードが設定されます。
詳細コード | バイナリー | 2 | 出力 | 実行後、詳細コードが設定されます。

表7.2 簡易転送時の配信要求APIのパラメーターエリア

項目 | 属性 | 長さ | 入出力 | 説明
--- | --- | --- | --- | ---
動作バージョン | キャラクター | 6 | 入力 | パラメーターエリアのバージョンを指定します。 以下を指定してください。 V08L04
配信ファイルID | キャラクター | 50 | 入力 | 何も指定しないでください。
完了コード | バイナリー | 2 | 出力 | 実行後、完了コードが設定されます。
詳細コード | バイナリー | 2 | 出力 | 実行後、詳細コードが設定されます。
配信ファイル名 | キャラクター | 44 | 入力 | 配信ファイルを指定します。
ホスト名 | キャラクター | 50 | 入力 | 集信側ホストのホスト名を指定します。
ポート番号 | バイナリー | 4 | 入力 | 集信側ホストのポート番号を指定します（省略可）。
保存先 | キャラクター | 200 | 入力 | 集信ファイルの保存先を指定します（省略可）。
集信ファイル名 | キャラクター | 200 | 入力 | 集信ファイルのファイル名を指定します（省略可）。
転送タイプ | キャラクター | 1 | 入力 | 転送タイプを指定します（省略可）。
転送優先度 | バイナリー | 2 | 入力 | 転送優先度を指定します（省略可）。

## 完了コード

完了コードを以下の表に示します。なお、簡易転送で配信要求APIを使用する場合は出力される完了コードが異なります。簡易転送の場合の完了コードについては表7.4 を参照してください。

表7.3 配信要求APIの完了コード

完了コード | 内容
--- | ---
0 | 正常に実行しました。
1 | 該当ファイルIDは存在しません。
2 | 配信管理情報取得で入出力エラーが発生しました。
3 | 配信管理情報に転送グループ情報が設定されていません。
4 | フォーマット転送でフォーマット情報が設定されていません。
5 | 配信制御ファイルのオープンに失敗しました。
6 | 配信ワークファイル作成処理に失敗しました。詳細は詳細コードに設定されています。
7 | 配信制御ファイルへの登録に失敗しました。
8 | フォーマット情報取得で入出力エラーが発生しました。
9 | 該当の転送グループ情報は存在しません。
10 | 転送グループ情報取得で入出力エラーが発生しました。
11 | 配信ワークファイル作成処理に失敗しました。詳細は詳細コードに設定されています。
12 | 配信ファイルのクリア処理で排他制御の異常が発生しました。
13 | 配信ファイルのクリアに失敗しました。
14 | 配信要求指示に失敗しました。
16 | マルチフォーマット転送でマルチフォーマット情報が設定されていません。
17 | マルチフォーマット情報取得で入出力エラーが発生しました。
18 | マルチフォーマット情報の展開処理で異常が発生しました。
19 | 配信前ジョブ実行に失敗しました。
20 | ダイレクト転送時、配信ファイルのクリア指定は複数ホスト転送をサポートしていません。
21 | 配信管理情報に指定されているUNIT情報の取得に失敗しました。
22 | 配信ファイルの削除に失敗しました。
23 | 配信ファイルの属性情報が取得できません。詳細は詳細コードに設定されています。
25 | 配信ファイルのレコード形式が、HULFTがサポートしていないレコード形式になっています。
26 | 配信ファイルのレコード長またはブロック長が0バイトになっています。
27 | 区分編成ファイル、VSAMファイルを削除することはできません。
28 | 区分編成ファイル、VSAMファイルをクリアすることはできません。
29 | 指定した配信ファイルは区分編成ファイルです。メンバー名まで指定してください。
30 | フォーマット情報が登録されていません。
31 | マルチフォーマット情報が登録されていません。
34 | 動作バージョンがサポートされていません。
38 | システム動作環境設定の「転送コードセット」が“UTF-8”の場合、配信側変換は行えません。
40 | ダイレクト転送で、かつRDW付配信時、レコード形式が可変長、かつレコード長が32752バイト以下のファイル以外は配信できません。
41 | 簡易転送の配信要求の発行はできません。
50 | UTF-8へのコード変換時、ユーザーテーブルは指定できません。
51 | UTF-8へのコード変換後、レコード長が32750バイトを超えました。
54 | 通信対象のバージョンとの間で利用できない機能が指定されています。 ファイルIDに9バイト以上設定している
68 | 世代管理ファイルの相対世代番号へのプラス記号の指定はサポートしていません。

表7.4 簡易転送時の配信要求APIの完了コード

完了コード | 内容
--- | ---
0 | 正常に実行しました。
5 | 配信制御ファイルのオープンに失敗しました。
7 | 配信制御ファイルの出力に失敗しました。
14 | 配信要求のMODIFYコマンドの発行に失敗しました。
23 | 配信ファイルの属性情報が取得できません。
24 | 配信ファイルのデータセット編成が、HULFTがサポートしていないデータセット編成です。
25 | 配信ファイルのデータセット形式が、HULFTがサポートしていないデータセット形式です。
26 | 配信ファイルのレコード長またはブロック長が0 バイトになっています。
29 | 指定した配信ファイルは区分編成ファイルにメンバー名を指定していません。
34 | 動作バージョンがサポートされていません。
61 | メモリー不足により、内部プログラムのローディングに失敗しました。 問題が解決しない場合、技術サポート契約を締結していらっしゃるお客様は、技術サポートサービス窓口までお問い合わせください。
62 | 配信制御ファイルが存在しません。
63 | 配信制御ファイルの解放に失敗しました。
64 | インターフェイス上に設定されている内容に誤りがあります。
65 | 配信制御ファイルの読み込みに失敗しました。
66 | 本プログラムが動作するためのメモリーが足りません。
68 | 世代管理ファイルの相対世代番号へのプラス記号の指定はサポートしていません。
101 | システム動作環境設定に指定した「簡易転送コマンド発行用配信制御ファイル(INSTTRANSCMDQUE)」のアロケーションに失敗しました。
102 | 集信ファイルの保存先のUTF-8への変換でエラーが発生しました。 「オペレーション マニュアル」の簡易転送配信要求APIの章を確認し、集信ファイルの保存先に指定した内容を確認してください。また、問題が解決しない場合、技術サポート契約を締結していらっしゃるお客様は、技術サポートサービス窓口までお問い合わせください。
103 | 集信ファイル名のUTF-8への変換でエラーが発生しました。 「オペレーション マニュアル」の簡易転送配信要求APIの章を確認し、集信ファイル名に指定した内容を確認してください。また、問題が解決しない場合、技術サポート契約を締結していらっしゃるお客様は、技術サポートサービス窓口までお問い合わせください。

## 詳細コード（完了コードが「6」および「11」の場合のみ、16進数表記）

詳細コード | 内容
--- | ---
0001 | OBTAINマクロに失敗しました。
0002 | 該当ボリュームにデータセットが存在しません。
0003 | データセットがカタログ簿に存在しません。
0008 | 該当ボリュームに配信ファイルは存在しません。
0009 | 配信ファイルの該当メンバーは存在しません。
C3F7 | コード変換で異常が発生しました。
C5D9 | 配信ワークファイルアクセスエラーが発生しました。
C7D4 | 領域不足が発生しました。リージョンサイズを大きく設定してください。
D3D5 | 配信ファイルの長さがフォーマット情報とあっていません。
D4C6 | マルチフォーマット変換処理で異常が発生しました。
D6D7 | 配信ファイルのオープンに失敗しました。
E4E3 | 1バイトコードのユーザー変換テーブルは定義されていません。
その他 | DYNALLOCマクロで異常が発生しました。コードとして、当マクロの詳細コードが設定されています。

## 使用例

COBOLで使用する場合

配信要求API（XRSNDAP）を利用して、配信要求を発行するサンプルプログラムです。

サンプルプログラムは、HULFT JCLライブラリー内のメンバー名「SMPSNDAP」と「SMPHSAP」の2種類です。

簡易転送の場合、「SMPHSAP」を使用してください。

使用するデータ（SMPSNDAP）

配信管理情報の「ファイルID」

  : FILEID

          *
          * HULFT SEND FILE API SAMPLE
          *
           IDENTIFICATION     DIVISION.
           PROGRAM-ID.        SMPSNDAP.
           ENVIRONMENT        DIVISION.
           DATA               DIVISION.
           WORKING-STORAGE    SECTION.
          *
          * XRSNDAP PARAMETER AREA
          *
           01  XRSNDAP-PARM.
               02 XRSNDAP-VER      PIC X(6).
               02 XRSNDAP-FILEID   PIC X(50).
               02 XRSNDAP-RTNCD    PIC 9(4)  COMP.
               02 XRSNDAP-ERRCD    PIC 9(4)  COMP.
          *------------------------------------------------*
           PROCEDURE          DIVISION.
          *
          * XRSNDAP PARAMETER AREA INITIALIZATION
          *
               INITIALIZE XRSNDAP-PARM.
          *
          * ISSUE REQUEST FOR SEND FILE
          *
               MOVE 'V08L04'       TO XRSNDAP-VER.
               MOVE 'FILEID'       TO XRSNDAP-FILEID.
               CALL 'XRSNDAP' USING XRSNDAP-PARM.
          *
               STOP RUN.

使用するデータ（SMPHSAP）

配信ファイルの「ファイル名」

  : SNDFILE

集信側ホストの「ホスト名」

  : ZOS

集信側ホストの「ポート番号」

  : 30000

集信ファイルの「保存先」

  : HUL001

集信ファイルの「ファイル名」

  : RCVFILE

「転送タイプ」

  : T

「転送優先度」

  : 50

          *
          * HULFT INSTANT TRANSFER API SAMPLE
          *
           IDENTIFICATION     DIVISION.
           PROGRAM-ID.        SMPHSAP.
           ENVIRONMENT        DIVISION.
           DATA               DIVISION.
           WORKING-STORAGE    SECTION.
          *
          * XRSNDAP PARAMETER AREA
          *
           01  XRSNDAP-PARM.
               02 XRSNDAP-VER      PIC X(6).
               02 XRSNDAP-FILEID   PIC X(50).
               02 XRSNDAP-RTNCD    PIC 9(4)  COMP.
               02 XRSNDAP-ERRCD    PIC 9(4)  COMP.
               02 XRSNDAP-FILE     PIC X(44).
               02 XRSNDAP-HOST     PIC X(50).
               02 XRSNDAP-PORT     PIC 9(5)  COMP.
               02 XRSNDAP-RCVL     PIC X(200).
               02 XRSNDAP-RCVF     PIC X(200).
               02 XRSNDAP-MODE     PIC X(1).
               02 XRSNDAP-P        PIC 9(3)  COMP.
          *------------------------------------------------*
           PROCEDURE          DIVISION.
          *
          * XRSNDAP PARAMETER AREA INITIALIZATION
          *
               INITIALIZE XRSNDAP-PARM.
          *
          * ISSUE REQUEST FOR INSTANT TRANSFER
          *
               MOVE 'V08L04'                        TO XRSNDAP-VER.
               MOVE 'SNDFILE'                       TO XRSNDAP-FILE.
               MOVE 'ZOS'                           TO XRSNDAP-HOST.
               MOVE 30000                           TO XRSNDAP-PORT.
               MOVE 'HUL001'                        TO XRSNDAP-RCVL.
               MOVE 'RCVFILE'                       TO XRSNDAP-RCVF.
               MOVE 'T'                             TO XRSNDAP-MODE.
               MOVE 50                              TO XRSNDAP-P.
               CALL 'XRSNDAP' USING XRSNDAP-PARM.
               DISPLAY XRSNDAP-RTNCD.
          *
               STOP RUN.

注意

実行するJCLに以下のDDステートメントの記述をしてください。

- JCL例

    //XRFILE   DD DSN=HULFT.FILE,DISP=SHR
    //XRHOST   DD DSN=HULFT.HOST,DISP=SHR
    //XRQUE    DD DSN=HULFT.QUEUE,DISP=SHR
    //XRSYSIN  DD DSN=HULFT.PARMLIB(HULPRM),DISP=SHR
    [//XREXTLIB DD DSN=HULFT.LOAD,DISP=SHR]

DD名 | 項目名 | 説明
--- | --- | ---
XRFILE | HULFT.FILE | 集配信管理ファイル
XRHOST | HULFT.HOST | 詳細ホスト情報ファイル
XRQUE | HULFT.QUEUE | 配信制御ファイル
XRSYSIN | HULFT.PARMLIB(HULPRM) | システム動作環境設定ファイル
XREXTLIB | HULFT.LOAD | HULFTロードモジュールライブラリー(*1)

*1 | : | 配信側で外字コードを外字テーブルで変換させるときに、外字テーブルが格納されているライブラリーを付加します。外字テーブルの詳細は、「アドミニストレーション マニュアル」を参照してください。