Example Using CONCAT Keyword
Figure 1. Data Description Specifications Using the
CONCAT Keyword
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
A LOGICAL FILE LF1 FOR CONCAT KEYWORD EXAMPLES
A
A R RECORD1 PFILE(PF1)
A
A DATE CONCAT(MTH DAY YEAR)
A
A K MTH
A K DAY
For the logical file described by Figure 1, COPY DDS generates keys and key names derived from the physical file.
Figure 2. Example Using the CONCAT Keyword
FD LF1 LABEL RECORDS ARE STANDARD.
01 LOG-RECORD.
COPY DDS-ALL-FORMATS OF LF1.
05 LF1-RECORD PIC X(8).
* I-O FORMAT:RECORD-1 FROM FILE LF1 OF LIBRARY COPYDDS
*
*THE KEY DEFINITIONS FOR RECORD FORMAT RECORD1
* NUMBER NAME RETRIEVAL TYPE ALTSEQ
* 0001 MTH-DDS ASCENDING AN NO
* KEY NAME ORIGINATES FROM PHYSICAL FILE
* 0002 DAY-DDS-DDS ASCENDING AN NO
* KEY NAME ORIGINATES FROM PHYSICAL FILE
05 RECORD1 REDEFINES LF1-RECORD.
06 DATE-DDS PIC X(8).
06 FILLER REDEFINES DATE-DDS.
07 MTH-DDS PIC X(2).
07 DAY-DDS-DDS PIC X(2).
07 FILLER PIC X(4).
The COPY statement adds the suffix -DDS to the field names MTH and DATE because MTH is a key that originates from the physical file, and DATE is an ILE COBOL reserved word. The COPY statement adds the suffix -DDS twice to the field name DAY because DAY is both a key that originates from the physical file and an ILE COBOL reserved word.
Note that if you move your COPY statement from the File Section to the Working-Storage Section or to the Linkage Section, the fields subordinate to DATE-DDS are no longer available:
Figure 3. Example Using the CONCAT Keyword—Working-Storage
Section
WORKING-STORAGE SECTION.
01 WRK-RECORD.
COPY DDS-ALL-FORMATS OF LF1.
05 LF1-RECORD PIC X(8).
* I-O FORMAT:RECORD-1 FROM FILE LF1 OF LIBRARY COPYDDS
*
05 RECORD1 REDEFINES LF1-RECORD.
06 DATE-DDS PIC X(8).