Joined File Break
Files that are joined and then transferred can be split and output as separate files. When this function outputs the files, it splits the files while carrying out code conversion based on the information that was used to join the files and the parameter specified below.
The Joined File Break function is available only when you have specified 'I' (IBM Kanji) for the Code Set for Transfer (CS4TRNSFR) in the System Environment Settings.
(1) Joined File Break Program (XRBREAK)
Program Name
XRBREAK
Execution parameters (for EXEC statement)
a b [UNIT=xxxxxx][,ABDISP=KEEP|DELETE]
- a. Unit name
-
This parameter defines the unit name of the output destination file. (Optional)
HULFT sets the Unit Name that you define here to the XRCRD definition card if you omit the definition of the unit name on the XRCRD definition card.
Defaulting this parameter sets 'SYSDA.'
- b. Keep file in case of error
-
In the case that an error occurs during splitting of the joined file, this parameter defines whether to keep the output file up to the point when the error occurred or delete it. (Optional)
- KEEP:
-
In the case that an error occurs and interrupts splitting, keep the output file up to the point when the error occurred.
- DELETE:
-
In the case that an error occurs and interrupts splitting, delete the output file.
Omitting this field sets "DELETE".
NoteRegardless of the setting of this field, if the output file is a partitioned file, the member to which output was interrupted is deleted.
XRSYSIN Definition Card
This card defines the System Environment Settings of HULFT system. For details on the definitions, refer to the explanation of the System Environment Settings in Administration Manual.
Format of definition card
GAIJIFILE=Use Custom Character Table OPLSELECT=Operation Log Output Option (*1) CS4TRNSFR=Code Set for Transfer
*1 |
: |
When you use the operation log output function, you must include definitions related to operation logs. For details, refer to Definitions for operation logs. |
XRCRD Definition Card
The following shows the format of the definition card for defining the file to be split and the output destination:
Format of definition card
a b {SEQNO=99999[-99999]|TGTFILE="xxxxx...xxx"} ,{DD=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}]
If the definition card spans two lines, use either of the following two methods to define the definition card:
-
Describe the first line up to column 71, and then insert a hyphen (-) in column 72. Describe the second line starting in column 1.
-
Describe a line up to a comma (,) that follows a parameter, insert a single-byte space, and then insert a hyphen (-) in column 71 or before.
Input contents of definition card
- a. File definition method
-
This parameter defines the file to be extracted from the joined file. (Mandatory)
- SEQNO:
-
Specify the sequential number of the file to be extracted from the joined file.
Specify a value from "1" to "65535" for this parameter.
- TGTFILE:
-
Specify the file name of the file to be extracted from the joined file. Enclose the file name within double quotation marks ("). To split all files that comprise the joined file, specify 'TGTFILE=*.'
NoteWhen you define a partitioned data set (PDS) for 'TGTFILE,' also define the member name.
- b. Specification of the output destination
-
This parameter defines the DD name or the volume serial number of the output destination. (Mandatory)
- DD:
-
Specify the DD name of the output destination. You can specify only a Sequential Organization file or a partitioned data set (PDS). In the DD statement with the specified DD name, specify an existing data set.
You cannot define an output destination if you specify a range of files to be extracted or if you specify all the files to be split.
- VOL:
-
Specify the serial number of the volume in which HULFT is to create the output destination data set.
- c. Space
-
This parameter defines the space capacity that HULFT uses when HULFT creates a new file in the output destination (Optional). Define this parameter in the format of 'CYL|TRK,(default value, secondary extent, number of directory blocks).'
- CYL:
-
Specify the number of cylinders.
- TRK:
-
Specify the number of tracks.
Space capacity is determined in the following order:
1) The value specified for the DD name of the Specification of the output destination
2) The value specified for this field
3) The value stored in the joined file
4) The default value below
If the output destination file is a Sequential Organization file:
CYL (5,3)
If the output destination file is a Partitioned Organization file:
CYL (5,3,50)
Note-
If you define both the DD name for the Specification of the output destination and the Space, an error occurs.
-
When the output destination is a Sequential Organization file, the setting of the number of directory blocks is disabled.
-
On HULFT for XSP, when splitting a joined file that was created with "AUTO" specified for the Obtain input file attributes, if the number of directory blocks is not specified when it is split, HULFT makes up for the difference between host types.
A value four times the number of directory blocks stored when the joined file was created is automatically set and the file is split.
- d. Format of output file
-
This parameter defines the format of the output destination file. (Optional)
- RECFM:
-
Specify the record format of the output destination file.
F: Fixed
V: Var
If HULFT other than HULFT for Mainframe created the joined file, defaulting this parameter defines fixed length format. If HULFT for Mainframe created the joined file, defaulting this parameter defines the record format of the joined file.
- LRECL:
-
Specify the record length of the output destination data set.
Specify a value from '1' to '32760' if the Record Format (RECFM) is set to 'F' (Fixed).
Specify a value from '5' to '32756' if the Record Format (RECFM) is set to 'V' (Var).
Defaulting this parameter sets the same record length as that of the joined file. However, if you split a file whose file type is 'F' (Format data) or 'M' (Multi Format data), HULFT automatically creates the split file based on the Format Information.
If the record format is in a variable length format, HULFT adds 4 to the record length.
- BLKSIZE:
-
Specify the block size of the output destination data set.
Specify an integral multiple of the record length if the Record Format (RECFM) is 'F' (Fixed).
Specify a value that is higher than the record length plus 4 if the Record Format (RECFM) is 'V' (Var).
Defaulting this parameter defines the block size of the joined file.
NoteIf you define both the DD name for the Specification of the output destination and the Format of output file, an error occurs.
- e. EBCDIC Set
-
This parameter defines the Type-EBCDIC Code Set on the local host that HULFT uses to split the joined file. (Optional)
- 0:
-
Autoconfiguration
- A:
-
EBCDIC Katakana
- B:
-
EBCDIC Lowercase
- C:
-
EBCDIC-ASCII
- D:
-
EBCDIC-ASPEN
- E:
-
Japan (Latin) for IBM
- F:
-
Japan (Latin) Extended for IBM
- G:
-
NEC Katakana
- H:
-
Japan (Katakana) Extended for IBM
- V:
-
User Table 1
- W:
-
User Table 2
- X:
-
User Table 3
Defaulting this parameter sets '0' (Autoconfiguration),
- f. Shift code mode
-
This parameter defines the shift code mode for code conversion. (Optional)
- Y:
-
Add shift codes.
- N:
-
Do not add shift codes.
Defaulting this field sets 'Y' (Add).
- g. Output mode
-
This parameter defines the output mode that HULFT uses when HULFT overwrites the output destination file. (Optional)
If a file with the same name as the file to be extracted exists in the same volume as the output destination, HULFT cannot create a new output destination file. Specify 'REP' to overwrite the existing file that has the same name.
NoteIf you specify the DD name for the Specification of the output destination, HULFT overwrites the file regardless of the setting of the output mode.
- h. Tab conversion processing
-
This parameter defines the tab conversion processing. (Optional)
- 1:
-
Convert tabs of ASCII into space codes of EBCDIC.
- 2:
-
Convert tabs of ASCII into tabs of EBCDIC.
Defaulting this parameter sets '1.'
NoteIf an EBCDIC user table is registered and one of the following values is specified for EBCDIC Set, the Tab conversion processing parameter has no effect even if specified, and tabs are converted according to the registered contents in the EBCDIC user table:
-
V (User Table 1)
-
W (User Table 2)
-
X (User Table 3)
- i. Unit name
-
This parameter defines the unit name of the output destination file. (Optional)
Defaulting this parameter sets the Unit Name that is defined for the execution parameter (for the EXEC statement).
- j. Unused area
-
This parameter defines whether or not to release the unused area that exists in the new output destination file that you created. (Optional)
- Y:
-
Release the unused area.
- N:
-
Do not release the unused area.
Defaulting this parameter sets 'Y.'
Note-
If you define both the DD name for the Specification of the output destination and the Unused area, an error occurs.
-
When you output a partitioned data set (PDS), specify 'N.' If you default this parameter or if you specify 'Y,' the size of the output file may exceed the capacity.
- k. Catalog
-
This parameter defines whether or not to catalog the output file. (Optional)
- Y:
-
Catalog the file.
- N:
-
Do not catalog the output file.
Defaulting this parameter sets 'N.'
If you specify 'C,' HULFT catalogs the output file the same way as when you specify 'Y.'
NoteIf you define both the DD name for the Specification of the output destination and the Format of output file, an error occurs.
Points to be noted
-
Joined file name or output destination file name
-
When you define a file name that spans multiple lines on a definition card, write the first part of the file name up to column 71. Enclose this part of the file name within double quotation marks (") and add a hyphen (-) at the end of the line. In the subsequent line, write the remaining part of the file name starting in column 1 and enclose this part of the file name within double quotation marks ("). Use only uppercase alphabetic characters (not lowercase alphabetic characters) to define the file name.
-
If the joined file name contains multi-byte codes, an error occurs when the file is split.
-
-
Space
If you define the DD name for the Specification of the output destination, you cannot define the Space.
-
Format of output file
-
If you define the DD name for the Specification of the output destination, you cannot define the Format of the output file.
-
To split a file for which 'B' (Binary data) is defined for the file type when the file is joined in one of the following products, the Specification of the output destination determines whether or not you can default the Format of the output file:
-
HULFT for Windows
-
HULFT for UNIX
-
HULFT for Linux
Specification of Output Destination
Whether Format of Output File Can be Defaulted
DD Name
Optional
Volume Serial
Mandatory
-
-
To split a file for which 'T' (Text data) or 'B' (Binary data) is defined for the file type when the file is joined in one of the following products, HULFT does not use the information stored in the joined file if you define a range for the split target files:
-
HULFT for Windows
-
HULFT for UNIX
-
HULFT for Linux
-
-
HULFT does not support output to records in a non-blocked format.
-
-
EBCDIC Set
-
If you define any of the following values for the EBCDIC Set, you must specify the corresponding EBCDIC user table in advance:
-
V (User Table 1)
-
W (User Table 2)
-
X (User Table 3)
For details on the setting of EBCDIC user tables, refer to Administration Manual.
In order to specify any of the above, there are conditions that must be met. Even if the conditions for specification are met, an error may occur during sending. For details, refer to Code Conversion Manual.
-
-
If the Code Set for Transfer of the joined file is set to 'UTF-8' and you specify one of the following, an error occurs:
-
V (User Table 1)
-
W (User Table 2)
-
X (User Table 3)
-
-
If you default the EBCDIC Set or you set '0' for the EBCDIC Set, specifying 'I' (IBM Kanji) for the Code Set for Transfer (CS4TRNSFR) in the System Environment Settings of the local host automatically sets 'F' (Japan (Latin) Extended for IBM) for the EBCDIC Set.
-
-
Splitting files in SMS-managed environment
HULFT does not support splitting files in an SMS-managed environment.
Format of joined file
DD Name |
XRJOIN |
File Organization |
Sequential Organization File |
Record Length |
1024 bytes |
Record Format |
Fixed-length blocked format |
Example of JCL
Example of JCL 1
The following shows an example of the JCL for defining a DD name for the output destination.
//XRBREAK JOB CLASS=A,MSGCLASS=B //XRBREAK EXEC PGM=XRBREAK,REGION=4096K //STEPLIB DD DSN=HULFT.LOAD,DISP=SHR //XRSYSIN DD DSN=HULFT.PARMLIB(HULPRM),DISP=SHR [//XREXTLIB DD DSN=HULFT.LOAD,DISP=SHR] //XROUT DD DSN=HULFT.DATA(DATA1),DISP=(OLD,KEEP) //XRJOIN DD DSN=HULFT.JOIN.FILE,DISP=SHR //XRPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //XRCRD DD * TGTFILE="HULFT.TXT",DD=XROUT //
DD Name |
Value |
Description |
---|---|---|
STEPLIB |
HULFT.LOAD |
HULFT load module library |
XRSYSIN |
HULFT.PARMLIB(HULPRM) |
System Environment Settings File |
XREXTLIB |
HULFT.LOAD |
HULFT load module library (*1) |
XROUT |
HULFT.DATA(DATA1) |
Output Destination File |
XRJOIN |
HULFT.JOIN.FILE |
Joined File |
*1 |
: |
If you specify conversion of custom character code using a custom character table when you split a joined file, you must add a library to store the custom character table. For details on custom character tables, refer to Administration Manual. |
Example of JCL 2
The following shows an example of the JCL for defining a volume serial for the output destination.
//XRBREAK JOB CLASS=A,MSGCLASS=B //XRBREAK EXEC PGM=XRBREAK,REGION=4096K //STEPLIB DD DSN=HULFT.LOAD,DISP=SHR //XRSYSIN DD DSN=HULFT.PARMLIB(HULPRM),DISP=SHR [//XREXTLIB DD DSN=HULFT.LOAD,DISP=SHR] //XRJOIN DD DSN=HULFT.JOIN.FILE,DISP=SHR //XRPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //XRCRD DD * SEQNO=0001-0012,RECFM=F,LRECL=256,BLKSIZE=2560,CODESET=A,SHIFT=N, - VOL=WRKX01 //
DD Name |
Value |
Description |
---|---|---|
STEPLIB |
HULFT.LOAD |
HULFT load module library |
XRSYSIN |
HULFT.PARMLIB(HULPRM) |
System Environment Settings File |
XREXTLIB |
HULFT.LOAD |
HULFT load module library (*1) |
XRJOIN |
HULFT.JOIN.FILE |
Joined File |
*1 |
: |
If you specify conversion of custom character code using a custom character table when you split a joined file, you must add a library to store the custom character table. For details on custom character tables, refer to Administration Manual. |
File Naming Conventions
If you omit the specification of the output file name when you split a joined file, HULFT automatically creates the output file based on the machine type on which HULFT created the joined file, using the rules explained below:
When the machine type that creates the joined file is Windows
When the input file name upon creation of the joined file complies with the naming conventions for mainframes, HULFT uses the input file name the way it is as the output file name.
When the input file name does not comply with the naming conventions for mainframes, HULFT creates an output file name from the input file name upon creation of the file that was joined, based on the rules in the following table:
Input File Name at Creation of Joined File |
Output File Name |
---|---|
c:\test1\test\test3.txt |
TEST3.TXT |
..\test1\test2\TEST3.TXT |
TEST3.TXT |
test1.test2.test3.txt |
TEST1.TEST2.TEST3.TXT |
When the machine type that creates the joined file is UNIX or Linux
When the input file name upon creation of the joined file complies with the naming conventions for mainframes, HULFT uses the input file name the way it is as the output file name.
When the input file name does not comply with the naming conventions for mainframes, HULFT creates an output file name from the input file name upon creation of the file that was joined, based on the rules in the following table:
Input File Name at Creation of Joined File |
Output File Name |
---|---|
/test1/test2/test3.txt |
TEST3.TXT |
../test1/test2/TEST3.TXT |
TEST3.TXT |
test1.test2.test3.txt |
TEST1.TEST2.TEST3.TXT |
When the machine type that creates the joined file is IBMi
HULFT creates an output file name from the input file name upon creation of the joined file based on the rules in the following table:
Input File Name at Creation of Joined File |
Output File Name |
---|---|
MYLIB/TXT(TEST) |
TXT(TEST) |
In this case, the output file is a partitioned data set (PDS).
When the machine type that creates the joined file is Mainframe
HULFT uses the input file name upon creation of the joined file the way it is as the output file name, as shown in the following table:
File Organization |
Input File Name at Creation of Joined File |
Output File Name |
---|---|---|
Sequential Organization File |
TEST1.TEST2.TEST3.TXT |
TEST1.TEST2.TEST3.TXT |
Partitioned Data Set (PDS) |
TEST1.TEST2.TXT(TEST3) |
TEST1.TEST2.TXT(TEST3) |
If the file name (including the member name) does not comply with the naming conventions for mainframes, HULFT creates a data set name that starts with "HUL" followed by a sequence number (00001 to 65535) for the file name.
The following shows an example when HULFT for IBMi creates the joined file.
- Example:
-
Input File Name at Creation of Joined File
Output File Name
MYLIB/TXT_1(TEST)
HUL00001.DATA
Since the file name of the joined file that HULFT for IBMi creates contains '_,' HULFT cannot use this file name as a data set name.
Therefore, HULFT automatically creates a Sequential Organization file with the name "HUL00001.DATA".