View previous topic :: View next topic
|
Author |
Message |
ibmmainframe1
New User
Joined: 26 Jul 2005 Posts: 64 Location: India
|
|
|
|
I am new to PLI programming. I tried a example from john huges.
The code is
Code: |
CREATE: PROCEDURE OPTIONS (MAIN);
DCL DATA_ERROR BIT(1);
DCL INVENTORY_RECORD CHAR (12);
DCL MORE_RECORDS BIT(1);
DCL NO BIT(1) INIT('0'B);
DCL YES BIT(1) INIT('1'B);
ON ENDFILE(SYSIN)
MORE_RECORDS = NO;
/* PROGRAM STARTS HERE */
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 ****************************
|
When I run the JCl I am getting the abend
Code: |
20.09.19 JOB04287 $HASP165 INGSYDA ENDED AT N1 - ABENDED S000 U4038 CN(INTERNA
L)
***
|
This is the CEEDUMP
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
Please help me in resolving this abend.
Thanks. |
|
Back to top |
|
|
k_vikram07
New User
Joined: 23 Nov 2005 Posts: 35
|
|
|
|
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 **************************** |
|
Back to top |
|
|
ibmmainframe1
New User
Joined: 26 Jul 2005 Posts: 64 Location: India
|
|
|
|
Hi Vikram,
Thanks for your input. Its working now. |
|
Back to top |
|
|
|