View previous topic :: View next topic
|
Author |
Message |
Leah Dela Cruz
New User
Joined: 27 May 2008 Posts: 13 Location: Philippines
|
|
|
|
Hello.
I created a REXX program that opens a dataset for browsing. This REXX program is called by the panel I created called S2SC000.
However when I am done browsing the dataset and presses the PF3 key, I'm getting the below error:
Code: |
*********************************************************************
* ISPP100
*
* Panel 'S2SC000' error
* Panel not found.
*
*
*
*
*
*
* Panel line where error was detected:
* ZSEL = PANEL(S2SC000)
*
* Enter HELP command for further information regarding this error.
* Press ENTER key to terminate the dialog.
*
* |
How do I get back to the S2SC000 panel?
Below is the REXX code:
Code: |
/*REXX*/
TRACE O
USER = SYSVAR(SYSUID)
DROPBUF
"ISPEXEC VGET B"
IF B='1' THEN A='PX61057.IPO.EMFPARM.C749(T01I749)'
IF B='2' THEN A='PX61057.IPO.EMFPARM.C749(T02I749)'
IF B='3' THEN A='PX61057.IPO.EMFPARM.C749(T03I749)'
IF B='4' THEN A='PX61057.IPO.EMFPARM.C749(T04I749)'
IF PFKEY0='PF03' THEN EXIT
/* OPEN DATASET CORRESPONDING DATASET CORRESPONDING TO CHOICE */
"ISPEXEC BROWSE DATASET ('"A"')"
|
|
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8797 Location: Welsh Wales
|
|
|
|
Is the library containing the panel source concatenated into ISPPLIB
If not, take a look at LIBDEF to make the concatenation valid for your session. |
|
Back to top |
|
|
Leah Dela Cruz
New User
Joined: 27 May 2008 Posts: 13 Location: Philippines
|
|
|
|
Hi, sorry, I don't exactly know what you mean.
How would I know if the library containing the panel source is concatenated into ISPPLIB?
thanks. |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8797 Location: Welsh Wales
|
|
|
|
You know where the source of the panel is.
On the command line type TSO ISRDDN and find ISPPLIB under the heading DDName. Look at the datasets allocated and see if your one is there. If not, use LIBDEF to add your dataset to the concatenation. |
|
Back to top |
|
|
Aaru
Senior Member
Joined: 03 Jul 2007 Posts: 1287 Location: Chennai, India
|
|
|
|
Expat,
Quote: |
Is the library containing the panel source concatenated into ISPPLIB |
Leah wrote:
Quote: |
However when I am done browsing the dataset and presses the PF3 key, I'm getting the below error: |
My understanding from OP first post
- Panel is displayed and input is got
- Based on the input, dataset is browsed
- when PF3 pressed, error occurs
I think the panel was displayed without any problem.
Leah,
Am I correct?
Sorry If I am wrong. |
|
Back to top |
|
|
Leah Dela Cruz
New User
Joined: 27 May 2008 Posts: 13 Location: Philippines
|
|
|
|
Hi Aaru. You're correct. |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8797 Location: Welsh Wales
|
|
|
|
But where is the panel called by name, and where in the code is the call to display the panel. Hence my question. From the REXX code above the panel used will be the system default ISPF panel.
More information needed.
What is the start of the procedure, how do you invoke the panel to then invoke the REXX ? |
|
Back to top |
|
|
Leah Dela Cruz
New User
Joined: 27 May 2008 Posts: 13 Location: Philippines
|
|
|
|
it is called by another panel.
Here's the code:
Code: |
)PROC
&PFKEY0 = .PFKEY
VER(&ZUSER,LIST,PX61057,MSG='RCMS008')
IF (&PFKEY0 = 'PF03','PF15','PF12','PF24')
&ZSEL = 'EXIT'
IF (&ZUSER = 'PX61057')
&ZSEL = 'PANEL(S2SC000)'
)END |
|
|
Back to top |
|
|
Leah Dela Cruz
New User
Joined: 27 May 2008 Posts: 13 Location: Philippines
|
|
|
|
correction to the above post:
the panel S2SC000 is invoked by another panel. Here's the code:
Code: |
)PROC
&PFKEY0 = .PFKEY
VER(&ZUSER,LIST,PX61057,MSG='RCMS008')
IF (&PFKEY0 = 'PF03','PF15','PF12','PF24')
&ZSEL = 'EXIT'
IF (&ZUSER = 'PX61057')
&ZSEL = 'PANEL(S2SC000)'
)END |
and the here's how the REXX program is invoked by the S2SC000 panel:
Code: |
)PROC
&PFKEY0 = .PFKEY
VER(&A,NB,LIST,E,B,MSG='RCMS006')
VER(&B,NB,LIST,1,2,3,4,MSG='RCMS006')
VER(&PFKEY0,LIST,PF03,MSG='RCMS000')
IF (&A = 'B')
&ZSEL = 'CMD(TBLB749)'
IF (&A = 'E' & &B = '1')
&ZSEL = 'CMD(T01E749)'
IF (&A = 'E' & &B = '2')
&ZSEL = 'CMD(T02E749)'
IF (&A = 'E' & &B = '3')
&ZSEL = 'CMD(T03E749)'
IF (&A = 'E' & &B = '4')
&ZSEL = 'CMD(T04E749)'
IF (&PFKEY0 = 'PF03')
&ZSEL = 'EXIT'
VPUT B SHARED
)END |
|
|
Back to top |
|
|
Aaru
Senior Member
Joined: 03 Jul 2007 Posts: 1287 Location: Chennai, India
|
|
|
|
Expat,
Quote: |
and where in the code is the call to display the panel. Hence my question. |
Yep, you are correct. May be he would have missed copying it.
Quote: |
What is the start of the procedure, how do you invoke the panel to then invoke the REXX ? |
Normally it would go like this
- REXX code would first display the panel
- Get the input and when enter pressed control goes back to the REXX code
- Then if needed panel can be thrown again.
No idea as to how OP is doing it.
Leah,
This is a very basic requirement and i guess you have made it complicated by using panels and all. More information needed. |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8797 Location: Welsh Wales
|
|
|
|
Looking at the comments from Aaru I would agree with him, this is far more complicated than it need be.
I would have the control of the flow maintained by the REXX code, same as Aaru
1) Display panel and get options
2) Process options
Maybe something like
Code: |
"Ispexec display panel(ABC123)"
If RC = 8 then exit
If E = 'E' then ACT = 'EDIT'
Else ACT = 'BROWSE'
Logic for assigning dataset name based on B goes here.
"Ispexec "ACT" Dataset('"dataset"')"
|
|
|
Back to top |
|
|
Leah Dela Cruz
New User
Joined: 27 May 2008 Posts: 13 Location: Philippines
|
|
|
|
ok, i guess I'll just follow your suggestions then to make it simpler.
thanks for all the help Expat and Aaru. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
Hello,
Quote: |
ok, i guess I'll just follow your suggestions then to make it simpler. |
No need to sound disappointed, if you were
Making the code simpler will be very much in your favor in the long run. The code will be much easier to work with. |
|
Back to top |
|
|
|