I am getting these error messages when I try to compile my program:
IEW2747S D90C ABEND 013-18 OCCURRED WHILE PROCESSING SEQUENTIAL DATA SET WITH DD
IEW2230S 0414 MODULE HAS NO TEXT.
IEW2677S 5130 A VALID ENTRY POINT COULD NOT BE DETERMINED.
IEW2008I 0F03 PROCESSING COMPLETED. RETURN CODE = 12.
Here is the JCL:
000100 //IBMP5 JOB (COMPILE),USERID,MSGCLASS=H,REGION=0M,
000200 // MSGLEVEL=(1,1),CLASS=A,NOTIFY=&SYSUID
000300 //*******************************************************************
000400 //* *
000401 //* THIS JCL WILL COMPILE, LINK-EDIT (BIND) AND RUN A PROGRAM *
000402 //* *
000410 //*******************************************************************
000420 //* COMPILATION STEP
000430 //*
001100 //STEP1 EXEC PGM=IBMZPLI,REGION=1M,PARM=('MACRO,OBJECT,INSOURCE')
001200 //STEPLIB DD DSNAME=IEL380.SIBMZPRC,DISP=SHR
001201 // DD DSNAME=IEL380.SIBMZCMP,DISP=SHR
001204 //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
002000 //SYSPRINT DD SYSOUT=*
002010 //SYSOUT DD SYSOUT=*
002100 //*
002510 //* SOURCE CODE MEMBER
002520 //*
002530 //PLI.SYSIN DD DSN=INVAT.SOURCE(PROG5),DISP=SHR
002531 //*
002532 //* TARGET FOR OBJECT FILE
002535 //*
002536 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=(OLD,PASS),UNIT=SYSALLDA,
002537 // SPACE=(CYL,(1,1)),DCB=(LRECL=80,BLKSIZE=800)
002540 //*
002541 //* LINKAGE (BIND) STEP
002542 //*
002550 //STEP2 EXEC PGM=IEWL,REGION=0M
002560 //SYSLIB DD DSNAME=SYS1.LINKLIB,DISP=SHR
002570 // DD DSNAME=CEE.SCEELKED,DISP=SHR
002580 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=SHR
002590 //LKED.SYSLMOD DD DSN=INVAT.LOAD(PROG5),DISP=SHR
002600 //SYSUT1 DD UNIT=SYSALLDA,SPACE=(TRK,(10,10))
002700 //SYSPRINT DD SYSOUT=*
002800 //*
002900 //* EXECUTION STEP
003000 //*
003100 //STEP3 EXEC PGM=PROG5
003200 //STEPLIB DD DSN=INVAT.LOAD(PROG5),DISP=SHR
003300 //SYSPRINT DD SYSOUT=*
003400 //SYSIN DD *
003800 /*
003900 //
normally (in all of the compile JCL I have ever looked at) the SYSLMOD, does not specify the member. So you that line would look something like this:
//SYSLMOD DD DSN=INVAT.LOAD,DISP=SHR
and then underneath that, you would include the member in the sysin:
//LKED.SYSIN DD *
ENTRY PROG5
NAME PROG5(R)
/*
all that together would give you something like this:
000100 //IBMP5 JOB (COMPILE),USERID,MSGCLASS=H,REGION=0M,
000200 // MSGLEVEL=(1,1),CLASS=A,NOTIFY=&SYSUID
000300 //*******************************************************************
000400 //* *
000401 //* THIS JCL WILL COMPILE, LINK-EDIT (BIND) AND RUN A PROGRAM *
000402 //* *
000410 //*******************************************************************
000420 //* COMPILATION STEP
000430 //*
001100 //STEP1 EXEC PGM=IBMZPLI,REGION=1M,PARM=('MACRO,OBJECT,INSOURCE')
001200 //STEPLIB DD DSNAME=IEL380.SIBMZPRC,DISP=SHR
001201 // DD DSNAME=IEL380.SIBMZCMP,DISP=SHR
001204 //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
002000 //SYSPRINT DD SYSOUT=*
002010 //SYSOUT DD SYSOUT=*
002100 //*
002510 //* SOURCE CODE MEMBER
002520 //*
002530 //PLI.SYSIN DD DSN=INVAT.SOURCE(PROG5),DISP=SHR
002531 //*
002532 //* TARGET FOR OBJECT FILE
002535 //*
002536 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=(OLD,PASS),UNIT=SYSALLDA,
002537 // SPACE=(CYL,(1,1)),DCB=(LRECL=80,BLKSIZE=800)
002540 //*
002541 //* LINKAGE (BIND) STEP
002542 //*
002550 //STEP2 EXEC PGM=IEWL,REGION=0M
002560 //SYSLIB DD DSNAME=SYS1.LINKLIB,DISP=SHR
002570 // DD DSNAME=CEE.SCEELKED,DISP=SHR
002580 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=SHR
002590 //SYSLMOD DD DSN=INVAT.LOAD,DISP=SHR
002600 //SYSUT1 DD UNIT=SYSALLDA,SPACE=(TRK,(10,10))
002700 //SYSPRINT DD SYSOUT=*
//LKED.SYSIN DD *
ENTRY PROG5
NAME PROG5(R)
/*
002800 //*
002900 //* EXECUTION STEP
003000 //*
003100 //STEP3 EXEC PGM=PROG5
003200 //STEPLIB DD DSN=INVAT.LOAD(PROG5),DISP=SHR
003300 //SYSPRINT DD SYSOUT=*
003400 //SYSIN DD *
003800 /*
003900 //
give that a try and see if that helps.
EDIT:
What you were missing and ultimately fixed this JCL was the SYSIN lines that I added to the link edit (LKED) step (one line for ENTRY and one line for NAME). Basically what was happening the link edit step (which is the last step in the compile and is responsible for copying the compiled code to the loadlib) did not know the entry name or the name of the program you were trying to compile. You had specified a SYSIN, but because the SYSIN was empty, you received the error saying the module had not text.