View previous topic :: View next topic |
Author |
Message |
misi01 Advanced
Joined: 02 Dec 2002 Posts: 629 Topics: 176 Location: Stockholm, Sweden
|
Posted: Mon Oct 01, 2018 9:45 am Post subject: Setting error messages in a panel containing Rexx code |
|
|
Here's where I am at the moment. I have a simple panel that contains the following:-
Code: |
)PROC
VER(&SECURE,NONBLANK,LIST,Y,N) /* Y or N */
VER(&MINIMUM,NONBLANK,LIST,Y,N) /* Y or N */
VER(&PRODBUG,NONBLANK,LIST,Y,N) /* Y or N */
*REXX(PRODBUG,TFSNR)
select
when prodbug = 'N' then
ZRXRC = 0
when tfsnr <> '' then
ZRXRC = 0
otherwise
do
/* Note that these DON'T need to be defined as */
/* arguments/variables when passed to this Rexx script */
ZRXMSG = 'GDPR001'
ZRXRC = 8
end
end
*ENDREXX
|
My message file that is allocated when the script showing the panel is defined as:-
Quote: |
GDPR001 'TFS number required ' .TYPE=WARNING
'You MUST specify a TFS number when copying because of ' +
'production defect'
|
Now, I'll be quite honest, I'm not a great fan of these sorts of ISPF messages. Normally, in my Rexx script, I prefer to write them as something like:-
Code: |
/**********************************************************************
**********************************************************************/
dsorg_not_found:
arg dataset
zedsmsg = ""
zedlmsg = "Dataset "dataset" not found - create it first"
rc = ISPFMSG()
return 0
/**********************************************************************
Show info/error messages to user
**********************************************************************/
ISPFMSG:
zcmd = ''
Address ISPEXEC
'VPUT (ZCMD,ZEDSMSG,ZEDLMSG)'
'SETMSG MSG(ISRZ001)'
Return 0
|
What I'm wondering is if there is a way of issuing the message via the Rexx in the panel - something possibly like this:-
Code: |
*REXX(PRODBUG,TFSNR)
select
when prodbug = 'N' then
ZRXRC = 0
when tfsnr <> '' then
ZRXRC = 0
otherwise
do
zerrsm = "short message text" <--------- something like this
zerrlm = "long message text" <--------- would be nice if possible
ZRXRC = 8
end
end
*ENDREXX
|
_________________ Michael |
|
Back to top |
|
|
kolusu Site Admin
Joined: 26 Nov 2002 Posts: 12376 Topics: 75 Location: San Jose
|
Posted: Mon Oct 01, 2018 11:02 am Post subject: |
|
|
misi01,
You almost got it with zerrsm and zerrlm
something like this
Code: |
if rc = 0 then do
zerrsm = "Short message text"
zerrlm = "long message text",
" continued on next line."
"SETMSG MSG(ISRZ002)"
"DISPLAY PANEL(your panel name)"
end
|
You can also check the following topic
http://www.mvsforums.com/helpboards/viewtopic.php?t=3947 _________________ Kolusu
www.linkedin.com/in/kolusu |
|
Back to top |
|
|
misi01 Advanced
Joined: 02 Dec 2002 Posts: 629 Topics: 176 Location: Stockholm, Sweden
|
Posted: Tue Oct 02, 2018 12:22 am Post subject: |
|
|
I think (?) there was a misunderstanding in how you read my situation. I changed the code to the following
Code: |
*REXX(PRODBUG,TFSNR)
select
when prodbug = 'N' then
ZRXRC = 0
when tfsnr <> '' then
ZRXRC = 0
otherwise
do
/* Note that these DON'T need to be defined as */
/* arguments/variables when passed to this Rexx script */
/* ZRXMSG = 'DIAL01A' */
/* RC = 8 */
zerrsm = "Short message text"
zerrlm = "long message text continued on next line."
"SETMSG MSG(ISRZ002)"
"DISPLAY PANEL(GDPR0001)"
end
end
*ENDREXX
|
and received the following errors
Quote: |
COMMAND SETMSG NOT FOUND
25 *-* "SETMSG MSG(ISRZ002)"
+++ RC(-3) +++
SYMBOLIC PARMS IN VALUE LIST IGNORED - PANEL(GDPR0001)+
COMMAND PROCEDURE HAS NO PROC STMT
ISPF service call not allowed during exit invocation.
|
Remember, the Rexx code is in the actual panel and not in a Rexx script driving the panel. _________________ Michael |
|
Back to top |
|
|
expat Intermediate
Joined: 01 Mar 2007 Posts: 475 Topics: 9 Location: Welsh Wales
|
Posted: Tue Oct 02, 2018 12:55 am Post subject: |
|
|
Isn't RC(-3) to do with the ISPF environment - he says from memory as I haven't logged onto TSO in four years _________________ If it's true that we are here to help others,
then what exactly are the others here for ? |
|
Back to top |
|
|
Nic Clouston Advanced
Joined: 01 Feb 2007 Posts: 1075 Topics: 7 Location: At Home
|
Posted: Tue Oct 02, 2018 4:01 am Post subject: |
|
|
Try Quote: | ADDRESS ISPEXEC(... |
_________________ Utility and Program control cards are NOT, repeat NOT, JCL. |
|
Back to top |
|
|
misi01 Advanced
Joined: 02 Dec 2002 Posts: 629 Topics: 176 Location: Stockholm, Sweden
|
Posted: Mon Oct 08, 2018 2:36 am Post subject: |
|
|
Nic - I assume you were thinking of something like this ?
Code: |
CSR = 'TFSNR'
/* ZRXMSG = 'DIAL010A' */
zedsmsg = "Unbalanced strings"
zedlmsg = "Your code contains unbalanced code"
zcmd = ''
Address ISPEXEC */
'VPUT (ZCMD,ZEDSMSG,ZEDLMSG)' */
'SETMSG MSG(ISRZ001)'
ZRXRC = 8
|
which gave the following
Quote: |
28 *-* zcmd = ''
>L> ""
29 *-* Address ISPEXEC
30 *-* 'VPUT (ZCMD,ZEDSMSG,ZEDLMSG)'
>L> "VPUT (ZCMD,ZEDSMSG,ZEDLMSG)"
+++ RC(-3) +++
31 *-* 'SETMSG MSG(ISRZ001)'
>L> "SETMSG MSG(ISRZ001)"
+++ RC(-3) +++
|
I then tried variations on this but haven't been able to get anything to work. _________________ Michael |
|
Back to top |
|
|
Nic Clouston Advanced
Joined: 01 Feb 2007 Posts: 1075 Topics: 7 Location: At Home
|
Posted: Mon Oct 08, 2018 5:07 am Post subject: |
|
|
This is my reference snippet:
Code: |
Do
zedsmsg = "LIBRARY ERROR"
zedlmsg = source.count "ERROR"
"ISPEXEC SETMSG MSG(ISRZ000)"
Exit
End
|
but this is for a rexx program not a panel edit rexx. I do not even know if you can do this in "panel" rexx. It was just a blind guess without referencing the appropriate manual. _________________ Utility and Program control cards are NOT, repeat NOT, JCL. |
|
Back to top |
|
|
Steve Coalbran Beginner
Joined: 09 Mar 2005 Posts: 22 Topics: 0 Location: Stockholm, Sweden
|
Posted: Wed Oct 10, 2018 12:08 am Post subject: |
|
|
You cannot issue ISPF Services within a REXX section.
Something more like this I do a lot... this is not taken from a live example so may be typos!
Code: | &ZERRSM = ''
&ZERRLM = ''
&ZERRHM = 'NONE'
&ZERRALRM = 'YES'
*REXX(*,ZERRSM,ZERRLM,...)
zerrsm = '...'
zerrlm = '...'
*ENDREXX
IF( &ZERRSM NE '') .MSG = ISRZ002 | |
|
Back to top |
|
|
Steve Coalbran Beginner
Joined: 09 Mar 2005 Posts: 22 Topics: 0 Location: Stockholm, Sweden
|
Posted: Wed Oct 10, 2018 12:53 am Post subject: |
|
|
Steve Coalbran wrote: | Beginner |
Just spotted my 'level': 'Beginner'
I think in IBM UK Portsmouth Northern Road, we started with ISPF in 1979 and I worked with CLISTs writing dialogues as soon as I discovered them.
Migrated to REXX as soon as it became available on TSO.
I have developed in it most of the time since then except for a year when I migrated to Sweden when I played with UNIX briefly.
Perhaps 'Beginner' is a little inaccurate? |
|
Back to top |
|
|
Nic Clouston Advanced
Joined: 01 Feb 2007 Posts: 1075 Topics: 7 Location: At Home
|
Posted: Wed Oct 10, 2018 1:54 am Post subject: |
|
|
Steve, you have to turn up every day and give teacher an apple to get past beginner _________________ Utility and Program control cards are NOT, repeat NOT, JCL. |
|
Back to top |
|
|
kolusu Site Admin
Joined: 26 Nov 2002 Posts: 12376 Topics: 75 Location: San Jose
|
Posted: Wed Oct 10, 2018 11:15 am Post subject: |
|
|
Steve Coalbran wrote: | Steve Coalbran wrote: | Beginner |
Just spotted my 'level': 'Beginner'
I think in IBM UK Portsmouth Northern Road, we started with ISPF in 1979 and I worked with CLISTs writing dialogues as soon as I discovered them.
Migrated to REXX as soon as it became available on TSO.
I have developed in it most of the time since then except for a year when I migrated to Sweden when I played with UNIX briefly.
Perhaps 'Beginner' is a little inaccurate? |
Steve,
I apologize for the "beginner" tag, As Nic kindly pointed out the software is designed to assign ranks based on how many posts you posted. You have been a miser on that front. You just have 22 posts since 2005. So You may want to share all your knowledge that you gained since 1979.
Btw you are more than welcome to choose your own title and I will more than happy to add it. Would the title "Dinosaur" be any better than "Beginner"? Personally I prefer having the title as "beginner" so that I can always learn something new every day. _________________ Kolusu
www.linkedin.com/in/kolusu |
|
Back to top |
|
|
misi01 Advanced
Joined: 02 Dec 2002 Posts: 629 Topics: 176 Location: Stockholm, Sweden
|
Posted: Thu Oct 11, 2018 2:07 am Post subject: |
|
|
I think I'm going to have to go with that what I wanted to do (from the first append) isn't doable.
I found the following link https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.f54dg00/ispdg180.htm which talks about setting ZRXMSG and
ZRXRC.
If I comment out the setting of ZRXMSG, then I get "Rexx-defined failure" (SMSG) and "Panel Rexx routine-defined failure" (LMSG), so I think the long and the short of it is that you have to set ZRXMSG and ZRXRC _________________ Michael |
|
Back to top |
|
|
|
|