# 複数ファイル結合

複数のファイルを1つのファイルに結合します。すでに存在する結合ファイルへの追加や、他機種で作成された結合ファイルへの追加も可能です。

## 複数ファイル結合プログラム

### プログラム名

XRJOIN

### 実行（EXECステートメント）パラメーター

        a             b             c             d
    [REP|MOD],[CONTINUE|ABEND][,UNIT=xxxxxx][,ATTR=AUTO|NO]

a.出力モード

  出力ファイルへの出力モードを選択します（省略可）。

  REP

    : 結合ファイルに上書きで出力します。新規作成したファイルへ結合を行う場合は、必ず置き換えで行ってください。

  MOD

    : 結合ファイルに追加書きで出力します。追加書きは、すでに結合されているファイルに対して行ってください。新規作成したファイル（結合されていないファイル）に行うと誤動作します。

  省略すると、“REP”が設定されます。

b.カードエラーの処理

  カードの途中でエラーが発生したときの処理を選択します（省略可）。

  CONTINUE

    : エラーの発生したカードを読み飛ばして次のカードを処理します。

  ABEND

    : エラーの発生した時点ですべての処理を終了します。

  省略すると、“CONTINUE”が設定されます。

c.ユニット名

  入力データ・セットのユニット名を指定します（省略可）。

  XRCRD定義カードの「ユニット名」を省略した場合、ここで指定したユニット名がXRCRD定義カードに設定されます。

  省略すると、“SYSDA”が設定されます。

d.入力ファイル属性取得

  入力ファイルの属性を結合ファイル内に保持するかどうかを指定します（省略可）。

  AUTO

    : 入力ファイルの属性のすべてを結合ファイル内に保持します。

    入力ファイルの属性を保持すると、分解時に保持した情報を利用して出力ファイルのサイズと属性を自動設定できます。

  NO

    : 入力ファイルの属性の一部を結合ファイル内に保持します。

    “NO”を指定してファイルを結合した場合、結合ファイル内に保持できない属性は、分解時に結合ファイル分解プログラム（XRBREAK）のXRCRD定義カードで出力ファイルのサイズと属性を設定します。

  省略すると、"NO"が設定されます。

  結合ファイル内に保持し、分解時に利用できるファイルの属性は以下です。

  表6.1 結合ファイルに保持できるファイルの属性

  ファイルの属性 | “AUTO”を指定 | “NO”を指定、または省略
  --- | --- | ---
  レコード形式 | ○ | ○
  レコード長 | ○ | ○
  ブロック長 | ○ | ○
  一次要求量 | ○ | ×
  増分量 | ○ | ×
  スペースの単位（CYL,TRK） | ○ | ×
  ディレクトリーブロック数 | ○ | ×
  印刷文字を含むレコード形式 | ○ | ×

  ○ | : | 保持する
  × | : | 保持しない

  注意

  - 「入力ファイル属性取得」に“AUTO”を指定して結合したファイルを分解および内容表示できるのは、Ver.8.4以降のHULFT for Mainframeのみです。以下の製品では、「入力ファイル属性取得」に“AUTO”を指定して結合したファイルを分解および内容表示できません。

    - HULFT for Mainframe以外の製品

    - Ver.8.4未満のHULFT for Mainframe

  - HULFT for Mainframe以外の製品、またはHULFT for Mainframe Ver.8.4未満の複数ファイル結合コマンドでは、「入力ファイル属性取得」に“AUTO”を指定して結合したファイルに追加書きできません。

  - HULFT for Mainframe Ver.8.4以降で、「入力ファイル属性取得」に“AUTO”を指定して結合したファイルに追加書きで結合する場合は、「入力ファイル属性取得」に必ず“AUTO”を指定してください。

### XRSYSIN定義カード

HULFTシステムの動作環境を設定します。設定内容の詳細は、以下を参照してください。

HULFT10 for zOS アドミニストレーション マニュアル : 各項目の説明

定義カードの形式

    OPLSELECT=操作ログ出力選択 (*1)

*1 | : | 操作ログ出力機能を使用する場合は、操作ログ関連の設定が必要です。詳細は「操作ログの動作設定」を参照してください。

### XRCRD定義カード

定義カードで指定した情報に基づいて、分解時に、結合したときと同じ状態のファイルが作成されます。

結合するファイルを指定するための定義カードの形式は以下のとおりです。

定義カードの形式

                a             b               c             d
    DSNAME=xxxxxx...xxx[,VOL=xxxxxxxx] ,TYPE={T|B|F|M}[,ID=xxxxxxxx]
           e             f
    [,JIS={78|83}][,UNIT=xxxxxx]

= 備考 =

定義カードが2行にまたがる場合は、以下の方法で定義カードを記述してください。

- パラメーターの後の「,」（カンマ）まで記述した後、半角スペースを空けた上で71カラム目までに「-」（ハイフン）を記述する。

定義カードの入力内容

a.データセット名

  入力ファイルのデータ・セット名を指定します（省略不可）。

  指定できるファイルは、順編成（固定長または可変長）または区分編成（固定長）です。順編成ファイルは、世代管理ファイル、マルチボリュームファイルでも結合可能です。

  ワイルドカード（｢*｣）を使用して前方一致、後方一致の指定ができます。ワイルドカードは、順編成ファイルのデータ・セット名、および区分データ・セット（PDS）のメンバー名に指定可能です。

  注意

  - 世代ファイルを結合する場合は、以下のことに注意してください。

    - 世代ファイルを結合した場合、結合ファイル上のファイル名は絶対世代番号で格納されます。そのため、相対世代番号のファイルを結合した場合でも、メッセージに出力されるファイル名は絶対世代番号となります。

    - 世代ファイルをHULFT for Mainframeで結合し、ファイル名を省略してHULFT for Mainframeで分解した場合、絶対世代番号で分解されます。分解したファイルは世代ファイルとしての機能はなくなり、世代ファイルとしては扱われません。

  - データ・セット名にワイルドカードを指定する場合は「ボリューム通番」の指定が必要です。

  - マルチボリュームファイルの場合、ファイル名にワイルドカードを使用しないでください。マルチボリュームファイルは、必ずカタログされている必要があります。また、定義カードの「ボリューム通番」は省略してください。

b.ボリューム通番

  「データセット名」のボリューム通番を指定します（省略可）。

  以下の場合、「ボリューム通番」を指定してください。

  - 「データセット名」で指定されたデータ・セットがカタログされていない場合

  - 「データセット名」をワイルドカードで指定した場合

c.ファイルタイプ

  ファイルタイプを指定します（省略不可）。

  T

    : テキスト形式

  B

    : バイナリー形式

  F

    : フォーマット形式

  M

    : マルチフォーマット形式

d.ID

  フォーマット情報のフォーマットID（FMTID）、またはマルチフォーマット情報のマルチフォーマットID（MFMTID）を指定します（省略可）。

  「ファイルタイプ」に“F（フォーマット形式）”または“M（マルチフォーマット形式）”を指定した場合には省略できません。

e.日本語規格

  JIS年度を指定します（省略可）。

  78

    : JIS78

  83

    : JIS83

  省略すると、“83”が設定されます。

f.ユニット名

  「データセット名」で指定した入力データ・セット名のユニット名を指定します（省略可）。

  省略すると、実行（EXECステートメント）パラメーターで指定した「ユニット名」が設定されます。

### 注意事項

EBCDICセット（CODESET）の“D（EBCDIC-ASPEN）”および“G（NECカナ文字）”は非推奨です。“D（EBCDIC-ASPEN）”および“G（NECカナ文字）”を使用したファイルを結合すると、将来のバージョンで分解できなくなる可能性があります。

### 結合ファイルの形式

DD名 | XRJOIN
ファイル編成 | 順編成ファイル
レコード長 | 1024バイト
レコード形式 | 固定長ブロック化形式

注意

- 「DSNAME」指定時のそれぞれのファイルタイプ（転送タイプ）におけるレコード長の制限については、以下を参照してください。

  HULFT10 for zOS アドミニストレーション マニュアル : 配信ファイルについて

- 1つの結合ファイルに結合できるファイルの数は、最大65535ファイルです。この値を超えるファイルの結合はできません。ワイルドカード指定を行う際は、制限を超えないように注意してください。

- HULFT for Mainframe以外の製品、またはHULFT for Mainframe Ver.8.4未満の製品で結合ファイルを分解した場合、9999ファイルまでしか正常に分解できません。

- HULFT for Mainframe以外の製品、またはHULFT for Mainframe Ver.8.4未満の製品で結合ファイルの内容表示をした場合、9999ファイルまでしか正常に表示できません。

### JCL例

    //XRJOIN   JOB  CLASS=A,MSGCLASS=B
    //XRJOIN   EXEC PGM=XRJOIN,PARM='REP,ABEND'
    //STEPLIB  DD   DSN=HULFT.LOAD,DISP=SHR
    //XRFILE   DD   DSN=HULFT.FILE,DISP=SHR
    //XRHOST   DD   DSN=HULFT.HOST,DISP=SHR
    //XRSYSIN  DD   DSN=HULFT.PARMLIB(HULPRM),DISP=SHR
    //XRJOIN   DD   DSN=HULFT.JOIN.FILE,DISP=(NEW,KEEP),UNIT=SYSDA,
    //             VOL=SER=HUL001,DCB=(BLKSIZE=10240,LRECL=1024,RECFM=FB),
    //             SPACE=(CYL,(5,5),RLSE)
    //XRPRINT  DD   SYSOUT=*
    //SYSOUT   DD   SYSOUT=*
    //XRCRD    DD   *
    DSNAME=HULFT.DATA01,VOL=WRKVOL,TYPE=M,ID=MULTI03,JIS=78
    DSNAME=HULFT.DATA02,VOL=WRKVOL,TYPE=T
    //

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

パラメーター名 | 項目名 | 説明
--- | --- | ---
UNIT | SYSDA | UNIT
VOL=SER | HUL001 | ボリューム名