PUNCH CTL statement
The PUNCH CTL statement allows you to produce an output data set consisting of COMPARE PCB statements, COMPARE DATA statements, COMPARE AIB statements, other control statements, or combinations of these statements.
The following table shows the format and keyword parameters for the PUNCH CTL statement.
Column | Function | Code | Description |
---|---|---|---|
1-3 | Identifies control statement | CTL | PUNCH statement. |
4-9 | Reserved | b | |
10-13 | Punch control | PUNC | Begin punching (no default values). |
NPUN | Stop punching (default value). | ||
14-15 | Reserved | b | |
16-72 | Keyword parameters: | ||
OTHER | Reproduces all input control statements except:
|
||
DATAL | Create a full data COMPARE using all of the data returned to the I/O area. Multiple COMPARE statements and continuations are produced as needed. | ||
DATAS | Create a single data COMPARE statement using only the first 56 bytes of data returned to the I/O area. | ||
PCBL | Create a full PCB COMPARE using the complete key feedback area returned in the PCB. Multiple COMPARE statements and continuations are produced as needed. | ||
PCBS | Create a single PCB COMPARE statement using only the first 48 bytes of the key feedback area returned in the PCB. | ||
SYNC/NOSYNC | If a GB status code is returned on a Fast Path call while in STAK, but prior to exiting STAK, this function issues or does not issue SYNC. | ||
START= | 00000001 to 99999999. This is the starting sequence number to be used for the punched statements. Eight numeric bytes must be coded. |
||
INCR= | 1 to 9999. Increment the sequence number of each punched statement by this value. Leading zeros are not required. |
||
AIB | Create an AIB COMPARE statement. | ||
73-80 | Sequence indication | nnnnnnnn | For SYSIN2 statement override. |
To change the punch control options while processing a single DFSDDLT0 input stream, always use PUNCH CTL statements in pairs of PUNC and NPUN.
One way to use the PUNCH CTL statement is as follows:
- Code only the CALL statements for a new test. Do not code the COMPARE statements.
- Verify that each call was executed correctly.
- Make another run using the PUNCH CTL statement to have DFSDDLT0 merge the proper COMPARE statements and produce a new output data set that can be used as input for subsequent regression tests.
You can also use PUNCH CTL if segments in an existing database are changed. The control statement causes DFSDDLT0 to produce a new test data set that has the correct COMPARE statements rather than you having to manually change the COMPARE statements.
Parameters in the CTL statement must be the same length as described in the previous table, and they must be separated by commas.
Example of PUNCH CTL statement
|---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----<
CTL PUNC PCBS,DATAS,OTHER,START=00000010,INCR=0010 33212010
CTL NPUN 33212020
The DD statement for the output data set is labeled PUNCHDD. The data sets are fixed block with LRECL=80. Block size as specified on the DD statement is used. If not specified, the block size is set to 80. If the program is unable to open PUNCHDD, DFSDDLT0 issues abend 251.
Example of PUNCH CTL statement for all parameters
|---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----<
CTL PUNC OTHER,DATAL,PCBL,START=00000001,INCR=1000,AIB 33212010