MORE_RECORDS = YES;
PUT SKIP LIST('READY FOR READ');
GET FILE (SYSIN) LIST (INVENTORY_RECORD);
PUT SKIP LIST(INVENTORY_RECORD);
DO WHILE (MORE_RECORDS);
CALL VALIDATE_DATA;
IF DATA_ERROR
THEN PUT SKIP LIST ('DATA ERROR > ', INVENTORY_RECORD);
ELSE CALL WRITE_MASTER_DATA;
GET FILE (SYSIN) LIST (INVENTORY_RECORD);
END;
/* VALIDATE_DATA */
VALIDATE_DATA: PROCEDURE;
PUT SKIP LIST('VALIDATE_DATA: PROCEDURE');
DATA_ERROR = NO;
END VALIDATE_DATA;
/* WRITE_MASTER_DATA */
WRITE_MASTER_DATA: PROCEDURE;
PUT SKIP LIST('WRITE_MASTER_DATA: PROCEDURE');
PUT SKIP LIST(INVENTORY_RECORD);
END WRITE_MASTER_DATA;
END CREATE;
The JCL to run the program is
Code:
000900 //***** TO RUN THE JOB
001000 //STEP010 EXEC PGM=SAMPLE2,COND=(9,LT)
001100 //STEPLIB DD DSN=INGSYD.PLI.LOADLIB,DISP=SHR
001300 //SYSIN DD DSN=INGSYD.PLI.INPUT1,DISP=SHR
001610 //SYSPRINT DD SYSOUT=*
001700 //
The input file is
Code:
EDIT INGSYD.PLI.INPUT1 Data set saved
Command ===> Scroll ===> CSR
****** ***************************** Top of Data ******************************
000001 aaaaaaaaa
000002 bbbbbbbbb
000003 ccccccccc
****** **************************** Bottom of Data ****************************
SDSF OUTPUT DISPLAY INGSYDA JOB04287 DSID 105 LINE 20 COLUMNS 02- 81
COMMAND INPUT ===> SCROLL ===> PAGE
Condition Information for Active Routines
Condition Information for IBMRERRI (DSA address 000306B8)
CIB Address: 00030EE0
Current Condition:
IBM0033S ONCODE=613 The CONVERSION condition was raised because a conve
arithmetic on input or output.
Location:
Program Unit: IBMRERRI Entry: IBMRERRI Statement: Offset: +0000045A
Onchar= A Character causing conversion error
Onsource= AAAAAAAAA
Storage dump near condition, beginning at location: 0001C78A
+000000 0001C78A 5050D080 58A0C2B8 58F0A01C 4110D080 05EF9108 404F4710 B
File Status and Attributes:
Attributes of file: SYSPRINT
STREAM OUTPUT PRINT ENVIRONMENT( VB BLKSIZE(129) RECSIZE(125) BUFFERS(1) )
Contents of buffers
FOR GET LIST statements, the input data should match the characteristics of the variables into which you are GETting.
In this case, the input file should look something like
Code:
EDIT INGSYD.PLI.INPUT1 Data set saved
Command ===> Scroll ===> CSR
****** ***************************** Top of Data ******************************
000001 'aaaaaaaaa'
000002 'bbbbbbbbb'
000003 'ccccccccc'
****** **************************** Bottom of Data ****************************