I read a post from last year regarding manipulating variables in panel REXX,
and tried to follow Peter's suggestion, but I'm still having trouble passing a
value back to my panel, which in turn passes it to a message. Here's the
code I have so far -
The panel (lifted from ISR@PRIM, and massaged):
...
)INIT
...
&ZSMFID = ' '
*REXX(*,ZSMFID)
...
ZSMFID = mvsvar(SYSSMFID)
*ENDREXX
...
VGET (ZOSRSU ZCLONE ZJES ZSYSRES ZFAC) SYMDEF +
SYMNAMES(OSRSULV SYSCLONE SSJES SYSR1 FAC)
...
IF (&ZLOGO = 'YES')
IF (&ZSPLIT = 'NO')
IF (&ZCMD = &Z)
IF (&ZLOGOPAN ¬= 'DONE')
.MSG = ITILO000
.RESP = ENTER
&ZLOGOPAN = 'DONE'
&ZCLEAN = 'NO'
IF (&ZCMD ¬= &Z) &ZLOGOPAN = 'DONE'
VPUT (ZLOGOPAN) SHARED
IF (&ZSPLIT = 'YES') &ZLOGOPAN = 'DONE'
...
The message (lifted from ISRLO999 and massaged):
ITILO000 ' ' .ALARM=NO NOKANA
'Ford Motor Company ITI zSeries Platform ' +
'User &ZUSER logged on to TSO&ZCLONE via PROC &ZSYSPROC ' +
'Sysplex &ZSYSPLEX, Facility &ZFAC, System &ZSYSID, SMF ID &ZSMFID, ' +
'&ZJES Node &ZSYSNODE ' +
'IPLed from &ZSYSRES with &ZOS390RL at &ZOSRSU, &ZENVIR '
Everything works except for ZSMFID. When I use Dialog Test, I can see the
ZSMFID variable, but it has blanks for a value. When I add a "say" statement
to the Rexx code, I get a value back, so I know the Rexx call is working.
A little help?
Thanks,
Art Gutowski
Ford Motor Company IT Infrastructure
Your message has & which will cause the ampersand character to be
displayed within the message. That is, the message does not try to show
the &ZSMFID variable, but only the text '&ZSMFID'
Use &ZSMFID instead of &ZSMFID,
Pedro Vera
I'm sure that is just the brain dead listserv software displaying it
that way.
Mark
--
Mark Zelden
Sr. Software and Systems Architect - z/OS Team Lead
Zurich North America / Farmers Insurance Group - ZFUS G-ITO
mailto:mark....@zurichna.com
z/OS Systems Programming expert at http://expertanswercenter.techtarget.com/
Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html
Dave
The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it.
>'Sysplex &ZSYSPLEX, Facility &ZFAC, System &ZSYSID, SMF ID &ZSMFID, ' +
>'&ZJES Node &ZSYSNODE
' +
>'IPLed from &ZSYSRES with &ZOS390RL at &ZOSRSU, &ZENVIR '
>
>Everything works except for ZSMFID. When I use Dialog Test, I can see the
>ZSMFID variable, but it has blanks for a value. When I add a "say" statement
>to the Rexx code, I get a value back, so I know the Rexx call is working.
>
>A little help?
>
>Thanks,
>Art Gutowski
>Ford Motor Company IT Infrastructure
Hi Art,
I've never played with this yet, but I already had my own version of
ISRLO99 in my personal ISPMLIB ahead of IBM's so I decided to give it
a go. I copied IBM's ISR@PRIM and all I did was add this to the init
section (per your code above):
&ZSMFID = ' '
*REXX(*,ZSMFID)
ZSMFID = mvsvar(SYSSMFID)
*ENDREXX
And then added &ZSMFID to my ISRLO999 message and it worked. So I don't
know what you are doing wrong. Placement in the init section? Something
else you left out above (where "..." is)? I did cut/paste your entire
ITILO000 message into my ISRLO999 and it worked, but your line with
&ZJES wouldn't fit in 80 cols (the + is in col 81). So I tweaked that and
it still worked (except for your local vars that I don't have).
-- gil
>[...] Placement in the init section? Something
>else you left out above (where "..." is)?
I thought placement, too, so I moved it to the beginning of the )INIT and that
did not help. Perhaps something later in the code is intefering. Thanks for
letting me know it works on some system other than mine. What level of ISPF
are you at? What is your approximate RSU? I looked around on IBMlink, but
maybe I missed something...
With '&ZSMFID':
Ford Motor Company ITI zSeries Platform
User SDTS001 logged on to TSOT1 via PROC SDSTD
In Sysplex DBNTPLEX, Facility T, System SYT1, SMF ID ;ZSMFID, JES3 Node
NJ00T
IPLed from SYTRY1 with z/OS 01.08.00 at RSU0806, ISPF 5.8MVS TSO
With '&ZSMFID':
Ford Motor Company ITI zSeries Platform
User SDTS001 logged on to TSOT1 via PROC SDSTD
In Sysplex DBNTPLEX, Facility T, System SYT1, SMF ID , JES3 Node NJ00T
IPLed from SYTRY1 with z/OS 01.08.00 at RSU0806, ISPF 5.8MVS TSO
As I said, the variable is available (DT 7.3), but blank. I'm reviewing the code
per Mark's suggestion to see if I'm doing something that would wipe out the
variable.
>On Wed, 8 Oct 2008 09:58:26 -0400, Mark Zelden
><mark....@ZURICHNA.COM> wrote:
>
>>[...] Placement in the init section? Something
>>else you left out above (where "..." is)?
>
>I thought placement, too, so I moved it to the beginning of the )INIT and that
>did not help. Perhaps something later in the code is intefering. Thanks for
>letting me know it works on some system other than mine. What level of ISPF
>are you at? What is your approximate RSU? I looked around on IBMlink, but
>maybe I missed something...
>
I tested it on a z/OS 1.9 system at RSU0803+. But if your system supports
panel rexx than I highly doubt the maintenance level is the problem.
Try getting back to basics... do what I did and see if that works and go on
from there.
Cheers,
OK, FWIW, we're z/OS 1.8 at RSU0806+. Maintenance may not be the issue,
but we are a release apart. I took ISR@PRIM from SYS1.AISPPENU and added:
&ZSMFID = ' '
*REXX(*,ZSMFID)
ZSMFID = mvsvar(SYSSMFID)
*ENDREXX
JUST before the nested IF's to display the logo. I get:
Ford Motor Company ITI zSeries Platform
User SDTS001 logged on to TSO via PROC SDSTD
In Sysplex DBNTPLEX, Facility , System SYT1, SMF ID , Node NJ00T
IPLed from with z/OS 01.08.00 at , ISPF 5.8MVS TSO
The ISPF variables display fine, but ZSMFID is still blank. I next tried moving
the ZSMFID assignment just after the )INIT statment, and discovered it has
to be after the .ZVARS declaration. Still, same result as above. Per panel
rexx rules, I cannot change the length of ZSMFID, but I believe this restriction
is lifted in 1.9 or 1.10. So, I think I may have found the problem...
when I add "say length(ZSMFID)" to the Rexx code, it spits back 4, but with:
IF (VER (&ZSMFID,LEN,NE,4))
.MSG=ITILO001
The message is set. A little tweaking to the message, and the length of
&ZSMFID is 0 (zero). Hm... maybe I need to assign a 'dummy' value of 4-
characters...
Ford Motor Company ITI zSeries Platform
User SDTS001 logged on to TSO via PROC SDSTD
In Sysplex DBNTPLEX, Facility , System SYT1, SMF ID SYT1, Node NJ00T
IPLed from with z/OS 01.08.00 at , ISPF 5.8MVS TSO
Ta-Da! Looks like the initial length of the variable is the problem. Though
Section 7.2.1 of the 1.8 ISPF DD Guide says:
The literal ' ' represents a single blank. To define a null, you must use the &Z
literal.
D'oh!
Art Gutowski
Ford Motor Company IT Infrastructure
PS - Apologies for the stream-of-consciousness rambling, but I had to "talk
this out" as I tried stuff. If I'm not clinically insane, this sounds like a problem
either with the documentation or with the code, right?
&ZSMFID = ' '
*REXX(*,ZSMFID)
ZSMFID = mvsvar("SYSSMFID")
*ENDREXX
The LITERAL SYSSMFID should be in quotes or apostrophes????
Chuck
[...]
>&ZSMFID = ' '
>*REXX(*,ZSMFID)
> ZSMFID = mvsvar("SYSSMFID")
>*ENDREXX
>
>The LITERAL SYSSMFID should be in quotes or apostrophes????
>
>Chuck
I verified the Rexx call to mvsvar with a SAY statement. My most recent post
today indicates the problem is with the ISPF variable &ZSMFID having a zero
length from the initial assignment. When I change the code to:
&ZSMFID = 'DMMY'
[panel Rexx here]
It works.
Regards
Art Gutowski
Interesting, because now it's '&' in both, and the '&' has mysteriously
disappeared...
I'm not a big fan of in-line mixed language programming, but I tried it to deal
with ALTLIB not passing through from logon into ISPF initialization. I got that
fairly easily, then someone in our group pined about logon messages that
others thought useful, so I started moving them into a pop-up on the main
menu. ISRLO99 seemed easier than ADDPOP...
Thanks again for your help.
Art
-----Original Message-----
From: ISPF discussion list [mailto:ISP...@LISTSERV.ND.EDU] On Behalf Of
Arthur Gutowski
Sent: October 9, 2008 8:52 AM
To: ISP...@LISTSERV.ND.EDU
Subject: Re: Passing variables with Panel *REXX
> In cascading the ALTLIB configuration from LOGON to ISPF, are you able
> to cascade that config into subsequent "split"s of the primary ISPF?
>
Robin,
No.
Regards,
Tom Conley