Joined: 07 Jan 2003 Posts: 1056 Topics: 91 Location: The Blue Planet
Posted: Mon Jan 13, 2003 4:14 am Post subject:
Manas,
Thanks you for reply. I have used ISPPLIB & ISPMLIB but I haven't used ISPTLIB in any of my programs. Can you kindly explain me what is it. And also about SYSPROC, what should it contain ?
My Rexx program is 'ADVFIND' which is residing in the PDS 'TSONJAY.REXX.UTILS' and it used panels which I've stored in the PDS 'TSONJAY.REXX.PANELS' and messages in 'TSONJAY.REXX.MESSAGES'.
Can you kindly help me resolving this problem.
Thanks & Regards,
Navin. J
Joined: 29 Nov 2002 Posts: 382 Topics: 27 Location: Chennai, India
Posted: Mon Jan 13, 2003 5:51 am Post subject:
Hi Navin,
How can you throw a panel if you are executing your REXX routine from a JCL. You cannot do it. We generally invoke such REXX rountines from JCL which do some processing and do not need any communication in the form of panels. If you are using panels, then use REXX in the foreground.
As far as the ISPPROF error is concerned, try giving the followinf DDNAME along with the others in IKJEFT01 -
Joined: 07 Jan 2003 Posts: 1056 Topics: 91 Location: The Blue Planet
Posted: Mon Jan 13, 2003 6:32 am Post subject:
Manas,
Thank you very much for clarifying my doubts. since, you speficied PANEL libraries ISPPLIB... in your code I thought we can invoke a PANEL. Well, thanks for clarifying that.
Can you kindly tell why we need to use these PANEL libraries in the job when we cannot invoke a PANEL from a JCL.
Joined: 29 Nov 2002 Posts: 382 Topics: 27 Location: Chennai, India
Posted: Mon Jan 13, 2003 8:19 am Post subject:
Hi Navin,
Frankly speaking I don't know. I use standard JCLs in our installation for running REXX routines. Yes, logically we don't need ISPPLIB in the JCL, but it is always there in the JCL and it contains a list of system datasets allocated to it. Maybe these system panel datasets are required for ISPF services but I am not sure. You will also probably get a JCL in yorub installation. Just concatenate your datasets to SYSPROC, ISPTLIB, ISPTABL and try running the job.
Maybe some other members of this board can help clarify on why we need ISPPLIB in the JCL to run REXX routines in batch.
Joined: 07 Jan 2003 Posts: 1056 Topics: 91 Location: The Blue Planet
Posted: Mon Jan 13, 2003 8:48 am Post subject:
Manas,
Thanks for your reply. I tried to run the jcl with the ISPPROF card as you specified, but still I got an error RC = 0998 saying that ISPSLIB is missing, then I provided the ISPSLIB card appropriately (ISPSLIB DD DSN = TSONJAY.ISPSLIB,DISP=SHR), then It showed me an error message (RC=0998) again saying that Message ISV010 is not found the ISPMLIB library. then I created a message PS in the ISPMLIB library. But still it gave an error RC = 0998 but without any error message.
Then I removed all ISPPLIB, ISPSLIB, ISPTLIB, ISPMLIB,... and ran the JCL and it worked fine. Here is the JCL.
//TSONJAYB JOB (ACCOUNT),'SRCHJCL',CLASS=E,
// TIME=(1440),
// MSGCLASS=X,NOTIFY=&SYSUID,MSGLEVEL=(1,1)
//R010 EXEC PGM=IKJEFT01
//SYSPROC DD DSN=TSONJAY.REXX.UTILS,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
ADDSAY 'HELLO'
/*
//* HELLO is the parameter I'm passing to the REXX routine
//
I am getting the ISPPROF not found error only when I specify 'ISPSTART CMD (ADDSAY)', but when I tried to run as shown above I got no errors.
Joined: 03 Dec 2002 Posts: 114 Topics: 0 Location: Sydney, Australia
Posted: Mon Jan 13, 2003 5:38 pm Post subject:
In a follow up to Phantom's reply, basically there are three methods of invoking A rexx program via JCL, depending upon the environmental requirements.
The simplest method of running a Rexx program in batch is to utilise the IRXJCL program, however this has limitations in that TSO/E or ISPF environments are not available.
The next method is to utilise the IKJEFT01 program (or one of the similar TSO/E programs) in conjunction with using either the parm field or data passed via sysin to invoke the Rexx program directly. With this method a TSO/E environment is available, but not ISPF.
Note You could invoke the MYEXEC REXX by changing the SYSTSIN dd statement to be DUMMY (or just have no data) in conjunction with adding PARM='MYEXEC' on the program EXEC statement. In fact you can have both a PARM and data for SYSTSIN, the PARM statement gets invoked first.
NoteThe REXX program can be placed into a library concatendated to either the SYSEXEC ddname or to the SYSPROC ddname. If the latter than the REXX program must have the word REXX in the first line which must also be a comment.
The third method is an extension of the above method and allows/starts and ISPF Environment. You need to add the ISPF libraries (as previous posts have explained). You the invoke the ISPF environment via the ISPSTART command using the CMD option to specify the Rexx program (this is not limited to just Rexx programs) and any parameters you wish to pass to the Rexx program.
Personally I tend to use the first, as per the order I've discussed them, that meets the environmental requirements. In you case using IRXJCL would suffice. _________________ Regards,
Mike.
Joined: 03 Jan 2003 Posts: 1014 Topics: 13 Location: Atlantis
Posted: Mon Jan 13, 2003 10:28 pm Post subject:
And a reminder that a program to automatically create the JCL to invoke ISPF in batch using your shop's ISPF libraries can be found at http://www.sillysot.com/mvs under BATCHPDF
Joined: 29 Nov 2002 Posts: 382 Topics: 27 Location: Chennai, India
Posted: Tue Jan 14, 2003 12:59 am Post subject:
Hi Tallyman, Mike and Semigeezer,
One part of Phantom's question(well my question too now) still remains unanswered. Let us consider the case when we are using ISPF services in our REXX program. In that case we have to use ISPSTART and we have to specify ISPPLIB although we have nothing to do with panels. Why is that??
Joined: 03 Jan 2003 Posts: 1014 Topics: 13 Location: Atlantis
Posted: Tue Jan 14, 2003 1:56 am Post subject:
ISPF just requires it. If for example, there is an error at run time, ISPF will normally display an error panel. Even though you can't see that in BATCH, ISPF is operating the same way it does in foreground. It processes panels in batch the same way it does in foreground so the panel libraries (and messages and skeletons) are required - just in case. The messages are, in fact, used for logging.
You'd see the same error in foreground if you were to run, without ISPPLIB, a command that doesn't display a panel such as
ISPSTART PGM(IEFBR14)
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum