結合ファイル分解
結合して転送されたファイルを分解して別々のファイルに出力できます。ファイルに出力するときは、結合したときの情報と指定したパラメータに基づき、コード変換などを行いながら分解されます。
(1) 結合ファイル分解プログラム
プログラム名
XRBREAK
実行(PARA文)パラメータ
a b [UNIT=xxxxxx][,ABDISP=KEEP|DELETE]
- a.ユニット名
-
出力先ファイルのユニット名を指定します(省略可)。
XRCRD定義カードの「ユニット名」を省略した場合、ここで指定したユニット名がXRCRD定義カードに設定されます。
省略すると、“DA”が設定されます。
- b.異常時のファイル保持
-
結合ファイルの分解中にエラーが発生した場合、出力ファイルの削除を行わず、エラー発生時点までの出力ファイルを保持するかどうかを指定します(省略可)。
- KEEP
-
: 分解中にエラーが発生して中断した場合、エラー発生時点までの出力ファイルを保持します。
- DELETE
-
: 分解中にエラーが発生して中断した場合、出力ファイルを削除します。
省略すると、"DELETE"が設定されます。
注意この項目の指定にかかわらず、出力先のファイルが区分編成の場合、出力中だったメンバは削除されます。
XRSYSIN定義カード
HULFTシステムの動作環境を設定します。設定内容の詳細は、「アドミニストレーション マニュアル」のシステム動作環境の説明を参照してください。
定義カードの形式
GAIJIFILE=外字テーブル使用 OPLSELECT=操作ログ出力選択 (*1)
*1 |
: |
操作ログ出力機能を使用する場合は、操作ログ関連の設定が必要です。詳細は「操作ログの動作設定」を参照してください。 |
XRCRD定義カード
分解するファイルとその出力先を指定するための定義カードは以下のとおりです。
定義カードの形式
a b {SEQNO=99999[-99999]|TGTFILE="xxxxx・・・xxx"} ,{FD=xxxxxxxx|VOL=xxxxxxxx} c d [,SPACE=(xxx,(9999,9999,9999))][,RECFM={F|V},LRECL=99999,BLKSIZE=99999] e f g h [,CODESET={0|A|B|C|D|E|F|G|H|V|W|X}][,SHIFT={Y|N}][,REP][,TABCHG={1|2}] i j k [,UNIT=xxxxxx][,RLSE={Y|N}][,CATLG={Y|N}]
定義カードが2行にまたがる場合は、以下のいずれかの方法で定義カードを記述してください。
-
1行目は71カラム目まで記述した後、72カラム目に「-」(ハイフン)を記述する。2行目は1カラム目から記述する。
-
パラメータの後の「,」(カンマ)まで記述した後、半角スペースを空けた上で71カラム目までに「-」(ハイフン)を記述する。
定義カードの入力内容
- a.ファイルの指定方法
-
結合ファイルの中のどのファイルを分解するかを指定します(省略不可)。
- SEQNO
-
: 結合ファイルの何番目のファイルを分解するかを指定します。
“1”~“65535”の範囲で指定します。
- TGTFILE
-
: 結合ファイルの中のファイル名を指定します。ファイル名は「"」(ダブルクォーテーション)で囲ってください。結合ファイルの中に存在するすべてのファイルを分解するには、「TGTFILE=*」と指定します。
注意区分編成ファイル(PDS)で“TGTFILE”を指定する場合は、メンバ名まで指定してください。
- b.出力先の指定
-
出力先をFD名、またはボリューム通番で指定します(省略不可)。
- FD
-
: 出力先のFD名を指定します。順編成ファイルおよび区分編成ファイル(PDS)のみ指定できます。指定したFD名のFD文では、既存のファイルを指定してください。
分解するファイルを範囲で指定または全件で指定している場合は、出力先を指定できません。
- VOL
-
: 出力先ファイルを作成するボリューム通番を指定します。
- c.スペース
-
新規に出力先のファイルを作成するときのスペース容量を指定します(省略可)。「CYL|TRK,(初期値,増分量,ディレクトリブロック数)」の形式で指定します。
- CYL
-
: シリンダ数で指定します。
- TRK
-
: トラック数で指定します。
スペース容量は、以下の優先順位に従って決定されます。
1) 「出力先の指定」のDD名に指定した値
2) この項目で指定した値
3) 結合ファイル内に保持されている値
4) 以下のデフォルト値
出力先のファイルが順編成になる場合
: CYL(5,3)
出力先のファイルが区分編成になる場合
: CYL(5,3,50)
注意-
「出力先の指定」にFD名を指定する場合、「スペース」を指定するとエラーになります。
-
出力先が順編成ファイルの場合、ディレクトリブロック数の指定は無効です。
-
HULFT for zOSまたはHULFT for MSPで「入力ファイル属性取得」に“AUTO”を指定して作成した結合ファイルを分解する際、分解時にディレクトリブロック数を指定していない場合は、機種間の差分を吸収します。
このため、分解時には、結合ファイル作成時に保持されたディレクトリブロック数の4分の1の値を自動的に設定し、分解を行います。
- d.出力ファイル形式
-
出力先のファイルの形式を指定します(省略可)。
- RECFM
-
: 出力先のファイルのレコード形式を指定します。
F: 固定長
V: 可変長
省略すると、HULFT for Mainframe以外で結合されたファイルは固定長に、HULFT for Mainframeで結合されたファイルは、結合されたファイルのレコード形式を使用します。
- LRECL
-
: 出力先ファイルのレコード長を指定します。
レコード形式(RECFM)が“F(固定長)”の場合は、“1”~“32760”の範囲で指定します。
レコード形式(RECFM)が“V(可変長)”の場合は、“5”~“32756”の範囲で指定します。
省略すると、結合されたファイルのレコード長を使用します。ただし、ファイルタイプが“F(フォーマット形式)”または“M(マルチフォーマット形式)”のファイルを分解する場合は、フォーマット情報から自動生成されます。
また、可変長のレコード形式の場合は「レコード長+4」の値となります。
- BLKSIZE
-
: 出力先ファイルのブロック長を指定します。
レコード形式(RECFM)が“F(固定長)”の場合は、レコード長の整数倍で指定します。
レコード形式(RECFM)が“V(可変長)”の場合は、「レコード長+4」より大きな値で指定します。
省略すると、結合されたファイルのブロック長を使用します。
注意「出力先の指定」にFD名を指定する場合、「出力ファイル形式」を指定するとエラーになります。
- e.EBCDICセット
-
分解するときに使用する、自ホストのEBCDIC系コードセットを指定します(省略可)。
- 0
-
: 自動
- A
-
: EBCDICカナ文字
- B
-
: EBCDIC英小文字
- C
-
: EBCDIC-ASCII
- D
-
: EBCDIC-ASPEN
- E
-
: IBM英小文字
- F
-
: IBM英小文字拡張
- G
-
: NECカナ文字
- H
-
: IBMカナ文字拡張
- V
-
: ユーザテーブル1
- W
-
: ユーザテーブル2
- X
-
: ユーザテーブル3
省略すると“0(自動)”が設定されます。
- f.シフトコードの扱い
-
コード変換時のシフトコードの扱いを指定します(省略可)。
- Y
-
: シフトコードを付加します。
- N
-
: シフトコードを付加しません。
省略すると“Y(付加する)”が設定されます。
- g.出力モード
-
出力先のファイルに上書きする場合に指定します(省略可)。
分解するファイル名と同名のファイルが同一ボリューム上に存在する場合、出力先のファイルを新規に作成できません。同名のファイルに上書きで出力する場合に“REP”を指定します。
注意「出力先の指定」にFD名を指定する場合、「出力モード」指定の有無にかかわらず上書きされます。
- h.タブの変換処理
-
タブの変換処理を指定します(省略可)。
- 1
-
: ASCIIのタブをEBCDICのスペースに変換します。
- 2
-
: ASCIIのタブをEBCDICのタブに変換します。
省略すると、“1”が設定されます。
注意EBCDICユーザーテーブルが登録されている場合、「EBCDICセット」に以下のいずれかの値を指定すると、「タブの変換処理」を指定しても無効となり、EBCDICユーザテーブルに登録した内容で変換されます。
-
V(ユーザテーブル1)
-
W(ユーザテーブル2)
-
X(ユーザテーブル3)
- i.ユニット名
-
出力先のファイルのユニット名を指定します(省略可)。
省略すると、実行(PARA文)パラメータで指定した「ユニット名」が設定されます。
- j.未使用域
-
新規に作成した出力先のファイルに存在する未使用域を解放するかどうかを指定します(省略可)。
- Y
-
: 未使用域を解放する。
- N
-
: 未使用域を解放しない。
省略すると、“Y”が設定されます。
注意-
「出力先の指定」にFD名を指定する場合、「未使用域」を指定するとエラーになります。
-
区分編成ファイル(PDS)を出力する際は、“N”を指定してください。省略または“Y”を指定した場合、出力ファイルが容量オーバーになる可能性があります。
- k.カタログ有無
-
出力ファイルをカタログするかどうかを指定します(省略可)。
- Y
-
: カタログする。
- N
-
: カタログしない。
省略すると、“N”が設定されます。
なお、“C”を指定した場合、“Y”の指定と同様にカタログします。
注意「出力先の指定」にFD名を指定する場合、「出力ファイル形式」を指定するとエラーになります。
注意点
-
結合ファイル名または出力先ファイル名
-
定義カードの行をまたがって指定する場合は、71カラム目まで記述し、ファイル名の途中までを「"」(ダブルクォーテーション)で囲み、その後に「-」(ハイフン)を記述します。継続行は途中からのファイル名を「"」(ダブルクォーテーション)で囲み、1カラム目から記述してください。また、英小文字ではなく英大文字を指定してください。
-
結合ファイル名にマルチバイトコードが含まれている場合、ファイルを分解するときにエラーとなります。
-
-
スペース
「出力先の指定」にFD名を指定する場合、「スペース」は指定できません。
-
出力ファイル形式
-
「出力先の指定」にFD名を指定する場合、「出力ファイル形式」は指定できません。
-
以下のいずれかの製品において、ファイルタイプに“B(バイナリ形式)”を指定して結合されたファイルを分解する場合、「出力先の指定」の指定により「出力ファイル形式」の省略が可能かどうかが異なります。
-
HULFT for Windows
-
HULFT for UNIX
-
HULFT for Linux
「出力先の指定」の指定内容
「出力ファイル形式」の省略可否
FD名
省略可
ボリューム通番
省略不可
-
-
以下のいずれかの製品において、ファイルタイプに“T(テキスト形式)”または“B(バイナリ形式)”を指定して結合されたファイルを分解する場合、分解するファイルが範囲指定されていると、結合ファイルで保持している情報は使用しません。
-
HULFT for Windows
-
HULFT for UNIX
-
HULFT for Linux
-
-
非ブロック化形式のレコードへの出力はサポートしておりません。
-
-
EBCDICセット
-
「EBCDICセット」に以下のいずれかを指定する場合は、あらかじめEBCDICユーザテーブルを設定しておく必要があります。
-
V(ユーザテーブル1)
-
W(ユーザテーブル2)
-
X(ユーザテーブル3)
EBCDICユーザテーブルの設定に関する詳細は、「アドミニストレーション マニュアル」を参照してください。
なお、上記のいずれかを指定するには、条件があります。また、指定可能な条件であっても、配信するとエラーになる場合があります。詳細は、「コード変換 マニュアル」を参照してください。
-
-
結合されているファイルの転送コードセットが「UTF-8」の場合、以下のいずれかを指定すると、エラーになります。
-
V(ユーザテーブル1)
-
W(ユーザテーブル2)
-
X(ユーザテーブル3)
-
-
「EBCDICセット」を省略した場合、または「EBCDICセット」に“0”を指定した場合、「EBCDICセット」に“A(EBCDICカナ文字)”が自動的に設定されます。
-
-
結合元ファイルの容量が4ギガバイトを超えるファイルの分解はサポートしていません。
結合ファイルの形式
FD名 |
XRJOIN |
ファイル編成 |
順編成ファイル |
レコード長 |
1024バイト |
レコード形式 |
固定長ブロック化形式 |
JCL例
JCL例1
以下に、出力先にFD名を指定した場合のJCL例を示します。
\ JOB XRBREAK,LIST=(A,JS) \XRBREAK EX XRBREAK,RSIZE=4096K \ FD STEPCAT=DA,FILE=USERCAT [\ FD XREXTLIB=DA,FILE=HULFT.LOAD] \ FD XRJOIN=DA,FILE=HULFT.JOIN.FILE \ FD XRSYSIN=DA,FILE=HULFT.PARMLIB,MEMBER=HULPRM \ FD XROUT=DA,FILE=HULFT.DATA,MEMBER=DATA1 \ FD SYSOUT=DA,TRK=(10,10),VOL=WORK,SOUT=A \ FD XRCRD=* TGTFILE="HULFT.TXT",FD=XROUT,REP \ JEND
FD名 |
項目名 |
説明 |
---|---|---|
STEPCAT |
USERCAT |
カタログ簿データセット名 |
XREXTLIB |
HULFT.LOAD |
HULFTロードモジュールライブラリ(*1) |
XRJOIN |
HULFT.JOIN.FILE |
結合ファイル |
XRSYSIN |
HULFT.PARMLIB(HULPRM) |
システム動作環境設定ファイル |
XROUT |
HULFT.DATA |
出力先ファイル |
*1 |
: |
分解時に外字コードを外字テーブルで変換させるときに、外字テーブルが格納されているライブラリを付加します。外字テーブルの詳細については、「アドミニストレーション マニュアル」を参照してください。 |
JCL例2
以下に、出力先にボリューム通番を指定した場合のJCL例を示します。
\ JOB XRBREAK,LIST=(A,JS) \XRBREAK EX XRBREAK,RSIZE=4096K \ FD STEPCAT=DA,FILE=USERCAT [\ FD XREXTLIB=DA,FILE=HULFT.LOAD] \ FD XRJOIN=DA,FILE=HULFT.JOIN.FILE \ FD XRSYSIN=DA,FILE=HULFT.PARMLIB,MEMBER=HULPRM \ FD SYSOUT=DA,TRK=(10,10),VOL=WORK,SOUT=A \ FD XRCRD=* SEQNO=0001-0012,RECFM=F,LRECL=256,BLKSIZE=2560,CODESET=A,SHIFT=N, - VOL=WRKX01 \ JEND
FD名 |
項目名 |
説明 |
---|---|---|
STEPCAT |
USERCAT |
カタログ簿データセット名 |
XREXTLIB |
HULFT.LOAD |
HULFTロードモジュールライブラリ(*1) |
XRJOIN |
HULFT.JOIN.FILE |
結合ファイル |
XRSYSIN |
HULFT.PARMLIB(HULPRM) |
システム動作環境設定ファイル |
*1 |
: |
分解時に外字コードを外字テーブルで変換させるときに、外字テーブルが格納されているライブラリを付加します。外字テーブルの詳細については、「アドミニストレーション マニュアル」を参照してください。 |
ファイル命名規約
分解時に出力ファイル名を省略した場合は、結合ファイルの作成機種により、以下の規則に従ってファイルが自動生成されます。
結合ファイルの作成機種がWindowsの場合
結合ファイル作成時の入力ファイル名がMainframeの命名規約に沿っている場合、そのまま出力ファイル名として使用されます。
Mainframeの命名規約に沿っていない場合、以下の表の規則に従って結合ファイル作成時の入力ファイル名から出力ファイル名が作成されます。
結合ファイル作成時の入力ファイル名 |
出力ファイル名 |
---|---|
c:\test1\test\test3.txt |
TEST3.TXT |
..\test1\test2\TEST3.TXT |
TEST3.TXT |
test1.test2.test3.txt |
TEST1.TEST2.TEST3.TXT |
結合ファイルの作成機種がUNIXまたはLinuxの場合
結合ファイル作成時の入力ファイル名がMainframeの命名規約に沿っている場合、そのまま出力ファイル名として使用されます。
Mainframeの命名規約に沿っていない場合、以下の表の規則に従って結合ファイル作成時の入力ファイル名から出力ファイル名が作成されます。
結合ファイル作成時の入力ファイル名 |
出力ファイル名 |
---|---|
/test1/test2/test3.txt |
TEST3.TXT |
../test1/test2/TEST3.TXT |
TEST3.TXT |
test1.test2.test3.txt |
TEST1.TEST2.TEST3.TXT |
結合ファイルの作成機種がIBMiの場合
以下の表の規則に従って結合ファイル作成時の入力ファイル名から出力ファイル名が作成されます。
結合ファイル作成時の入力ファイル名 |
出力ファイル名 |
---|---|
MYLIB/TXT(TEST) |
TXT(TEST) |
出力ファイルは区分編成ファイル(PDS)となります。
結合ファイルの作成機種がMainframeの場合
以下のように、結合ファイル作成時の入力ファイル名がそのまま出力ファイル名として使用されます。
ファイル編成 |
結合ファイル作成時の入力ファイル名 |
出力ファイル名 |
---|---|---|
順編成ファイル |
TEST1.TEST2.TEST3.TXT |
TEST1.TEST2.TEST3.TXT |
区分編成ファイル(PDS) |
TEST1.TEST2.TXT(TEST3) |
TEST1.TEST2.TXT(TEST3) |
ファイル名(メンバ名を含む)がMainframeの命名規約に沿っていない場合は、「HUL」に順序番号(00001~65535)を付与したファイル名になります。
以下に、結合ファイルの作成がHULFT for IBMiの場合の例を示します。
- 例)
-
結合ファイル作成時の入力ファイル名
出力ファイル名
MYLIB/TXT_1(TEST)
HUL00001.DATA
HULFT for IBMiで結合されたファイルに「_」があるため、ファイル名として使用できません。
そのため、「HUL00001.DATA」という名前の順編成ファイルが自動生成されます。