Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Passing variables with Panel *REXX

274 views
Skip to first unread message

Arthur Gutowski

unread,
Oct 7, 2008, 7:00:21 PM10/7/08
to
All -

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

Pedro Vera

unread,
Oct 7, 2008, 7:29:06 PM10/7/08
to
> SMF ID &ZSMFID,

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

Mark Zelden

unread,
Oct 8, 2008, 9:32:22 AM10/8/08
to

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

Seibert, Dave

unread,
Oct 8, 2008, 9:38:13 AM10/8/08
to
I assumed it was the combination of using HTML as the msg format and the
listserv...

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.

Mark Zelden

unread,
Oct 8, 2008, 10:01:00 AM10/8/08
to

>'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).

Paul Gilmartin

unread,
Oct 8, 2008, 10:13:51 AM10/8/08
to
On Oct 8, 2008, at 07:29, Mark Zelden wrote:
>>
>> Use &ZSMFID instead of &ZSMFID,

>>
>
> I'm sure that is just the brain dead listserv software displaying it
> that way.
>
Is there any way to get such errors reported and fixed? The list
owners don't care -- it's really not their job. And I once went
to L-Softs web site and discovered, of course, that I don't have
credentials to report a problem.

-- gil

Arthur Gutowski

unread,
Oct 8, 2008, 10:23:41 AM10/8/08
to
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...

Arthur Gutowski

unread,
Oct 8, 2008, 10:29:29 AM10/8/08
to
Yes, it was either the brain-dead listserv or HTML "formatting". I neglected to
attach the output from the message that would have clarified.

With '&amp;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.

Mark Zelden

unread,
Oct 8, 2008, 10:38:30 AM10/8/08
to
On Wed, 8 Oct 2008 10:20:09 -0400, Arthur Gutowski <agut...@FORD.COM> wrote:

>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,

Arthur Gutowski

unread,
Oct 8, 2008, 12:59:45 PM10/8/08
to
On Wed, 8 Oct 2008 10:34:52 -0400, Mark Zelden
<mark....@ZURICHNA.COM> wrote:
>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.

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?

Hardee, Charles H

unread,
Oct 8, 2008, 1:13:26 PM10/8/08
to
I'm just guessing here as I haven't really looked at what you have been
trying to do, but shouldn't it read:

&ZSMFID = ' '
*REXX(*,ZSMFID)
ZSMFID = mvsvar("SYSSMFID")
*ENDREXX

The LITERAL SYSSMFID should be in quotes or apostrophes????

Chuck

Arthur Gutowski

unread,
Oct 8, 2008, 2:13:32 PM10/8/08
to
On Wed, 8 Oct 2008 13:10:06 -0400, Hardee, Charles H
<Charles...@CA.COM> wrote:

[...]


>&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

Don Leahy

unread,
Oct 8, 2008, 5:17:54 PM10/8/08
to
There is (was?) a restriction with panel rexx and panel exits that
prohibits you from changing the length of a passed variable. You can
change the contents, but not the length.

Arthur Gutowski

unread,
Oct 9, 2008, 8:46:32 AM10/9/08
to
On Wed, 8 Oct 2008 08:10:12 -0600, Paul Gilmartin <PaulGB...@AIM.COM>
wrote:

Interesting, because now it's '&' in both, and the '&amp;' has mysteriously
disappeared...

Arthur Gutowski

unread,
Oct 9, 2008, 8:54:02 AM10/9/08
to
On Wed, 8 Oct 2008 09:58:26 -0400, Mark Zelden
<mark....@ZURICHNA.COM> wrote:
>[...]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'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

Ryerse, Robin

unread,
Oct 9, 2008, 10:06:44 AM10/9/08
to
In cascading the ALTLIB configuration from LOGON to ISPF, are you able
to cascade that config into subsequent "split"s of the primary ISPF?

-----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

Pinnacle

unread,
Oct 9, 2008, 7:11:52 PM10/9/08
to
----- Original Message -----
From: "Ryerse, Robin" <robin....@EDS.COM>
Newsgroups: bit.listserv.ispf-l
Sent: Thursday, October 09, 2008 10:06 AM
Subject: Cascading the ALTLIB confirguartion


> 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

0 new messages