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.

Table 1. 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:
  • CTL (PUNCH) statements.
  • N or . (IGNORE) statements.
  • COMPARE statements.
  • CALL statements with functions of SKIP and START. Any control statements that appear between SKIP and START CALLs are not punched.
  • CALL statements with functions of STAK and END. Control statements that appear between STAK and END CALLS are saved and then punched the number of times indicated in the STAK CALL.
  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:

  1. Code only the CALL statements for a new test. Do not code the COMPARE statements.
  2. Verify that each call was executed correctly.
  3. 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