Example 9
MODE CONTINUE
VERIFY FROM(CHECK) ON(2,3,PD) LIMIT(500)
DISPLAY FROM(CHECK) LIST(PDREPORT) BLANK LIMIT(500) -
HEADER('Relative Record') ON(NUM) -
HEADER('Numeric') ON(2,3,PD) -
HEADER('Hexadecimal') ON(2,3,HEX) -
HEADER('Associated Field') ON(21,20,CH)
This example shows how each record containing an invalid decimal value can be identified either by its relative record number or an associated field in the record.
The MODE operator ensures that the DISPLAY operator is processed if the VERIFY operator identifies an invalid decimal value.
The VERIFY operator checks for invalid digits (A-F) and invalid signs (0-9) in the packed decimal values from positions 2-4 of the CHECK data set. Messages ICE618A and ICE649A are printed in the TOOLMSG data set for each value (if any) that contains an invalid digit or sign. If 500 invalid values are found, the operation is terminated.
The DISPLAY operator checks for invalid digits (A-F) in the packed decimal values from positions 2-4 of the CHECK data set. Messages ICE618A and ICE649A are printed in the TOOLMSG data set for each value (if any) that contains an invalid digit. If 500 invalid values are found, the operation is terminated. If a check for invalid signs is required, the VERIFY operator must be used, because the DISPLAY operator only checks for invalid digits. The VERIFY operator is not required if signs need not be checked.
- A heading line containing the specified underlined headings
- Data lines in the BLANK format containing:
- The relative record number. This number can be matched against the RECORD numbers printed in the ICE618A messages to find the records with invalid signs.
- The numeric representation of the packed decimal value in positions 2-4. Asterisks are shown for values with invalid digits, making them easy to identify. Asterisks are not shown for values with invalid signs; these must be identified by matching the relative record number against the RECORD number in ICE618A.
- The hexadecimal representation of the packed decimal value in positions 2-4 (also shown in ICE649A). This makes it easy to find the specific hexadecimal digits or signs that are invalid.
- The characters in positions 21-40. An associated field such as this can be used to make identification of the records with invalid values easier.
The ICE618A and ICE649A messages in TOOLMSG for the VERIFY operator are:
ICE618A 0 INVALID (2,3,PD) VALUE - RECORD: 000000000000003
ICE649A 0 HEX VALUE: 53A54C
ICE618A 0 INVALID (2,3,PD) VALUE - RECORD: 000000000000012
ICE649A 0 HEX VALUE: 621540
ICE618A 0 INVALID (2,3,PD) VALUE - RECORD: 000000000000019
ICE649A 0 HEX VALUE: 400F3C
The ICE618A and ICE649A messages in TOOLMSG for the DISPLAY operator are:
ICE618A 0 INVALID (2,3,PD) VALUE - RECORD: 000000000000003
ICE649A 0 HEX VALUE: 53A54C
ICE618A 0 INVALID (2,3,PD) VALUE - RECORD: 000000000000019
ICE649A 0 HEX VALUE: 400F3C
The PDREPORT output looks as follows:
Relative Record Numeric Hexadecimal Associated Field
--------------- ------- ----------- --------------------
1 18600 18600C Wagar
2 -93 00093B Gellai
3 ****** 53A54C Giulianelli
4 86399 86399C Mehta
5 24215 24215F Johnson
6 8351 08351C Packer
7 19003 19003C Childers
8 -31285 31285D Burg
9 88316 88316C Monkman
10 1860 01860C Vezinaw
11 -29285 29285D Mead
12 62154 621540 Wu
13 -328 00328D Madrid
14 -11010 11010D Warren
15 1363 01363F Burt
16 92132 92132C Mao
17 -48500 48500D Shen
18 -55 00055D Yamamoto-Smith
19 ****** 400F3C Yaeger
20 33218 33218C Leung
21 96031 96031C Kaspar
- Record 3 has an invalid digit of A and an associated field of "Giulianelli"
- Record 12 has an invalid sign of 0 and an associated field of "Wu"
- Record 19 has an invalid digit of F and an associated field of "Yaeger".