Re: REXX Question - Variable Control Passing (IPCS/ISPF)

2007-02-07 Thread Shmuel Metz (Seymour J.)
In [EMAIL PROTECTED],
on 12/21/2006
   at 09:19 AM, Thompson, Steve (SCI TW)
[EMAIL PROTECTED] said:

Any suggestions?

Maintain your variables in a file. At the beginning of each REXX
routine that needs the variables, read the file, parse it and use the
VALUE function to set the variables. If you change any of the
variables, rewrite the file. You may need some synchronization if a
routine using the file calls another routine using the file.

Has anybody submitted a requirement for an equivalent to GLOBALV in
VM? Preferably via VALUE.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: REXX Question - Variable Control Passing (IPCS/ISPF)

2006-12-23 Thread Shmuel Metz (Seymour J.)
In [EMAIL PROTECTED],
on 12/21/2006
   at 09:19 AM, Thompson, Steve (SCI TW)
[EMAIL PROTECTED] said:

Any suggestions?

I concur with the SHARED suggestion. Or you could pass the variables
in a file and use the VALUE function. Meanwhile you might want to
submit a requirement for GLOBALV in TSO/E REXX, similar to what is
available in z/VM.

Also, putting these variables into each EXEC that needs them makes
this a maint nightmare because one would have to know every place
they exist...

Unless and until IBM adds an INCLUDE facility or ports OREXX to MVS,
you're stuck with that. Have a sufganyah; you'll feel better about it.

-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


REXX Question - Variable Control Passing (IPCS/ISPF)

2006-12-21 Thread Thompson, Steve (SCI TW)
I have a problem where I would like to pass some number of variables
between different REXX sources (in this case 200).

 

I have placed the variables into a single REXX source. And I know that
this can't be called and then have those variables available in the
calling REXX exec (if I can, that would be wonderful). I can't find a
copy statement that would allow me to copy the one source (similar to
ALC or COBOL to copy a common record description) so that each EXEC that
uses the common variables can get them. 

 

Also, putting these variables into each EXEC that needs them makes this
a maint nightmare because one would have to know every place they
exist...

 

My options at this point seem to be IPCS EQUATE for each variable or
ISPF VGET/VPUT. Since we do handle multi-address space dumps, the IPCS
EQUATE seems to be headed toward heartburn. The ISPF VGET/VPUT brings up
its own set of heartburn in that if you change from one dump to another,
you have to re-establish the variables.

 

Any suggestions?

 

Regards,

Steve Thompson


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: REXX Question - Variable Control Passing (IPCS/ISPF)

2006-12-21 Thread McKown, John
 -Original Message-
 From: IBM Mainframe Discussion List 
 [mailto:[EMAIL PROTECTED] On Behalf Of Thompson, Steve (SCI TW)
 Sent: Thursday, December 21, 2006 8:19 AM
 To: IBM-MAIN@BAMA.UA.EDU
 Subject: REXX Question - Variable Control  Passing (IPCS/ISPF)
 
snip

 My options at this point seem to be IPCS EQUATE for each variable or
 ISPF VGET/VPUT. Since we do handle multi-address space dumps, the IPCS
 EQUATE seems to be headed toward heartburn. The ISPF 
 VGET/VPUT brings up
 its own set of heartburn in that if you change from one dump 
 to another,
 you have to re-establish the variables.
 
 Any suggestions?
 
 Regards,
 
 Steve Thompson

Have you tried VPUT / VGET to the PROFILE pool instead of the
application or shared pool? Just asking.

--
John McKown
Senior Systems Programmer
HealthMarkets
Keeping the Promise of Affordable Coverage
Administrative Services Group
Information Technology

The information contained in this e-mail message may be privileged
and/or confidential.  It is for intended addressee(s) only.  If you are
not the intended recipient, you are hereby notified that any disclosure,
reproduction, distribution or other use of this communication is
strictly prohibited and could, in certain circumstances, be a criminal
offense.  If you have received this e-mail in error, please notify the
sender by reply and delete this message without copying or disclosing
it. 

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: REXX Question - Variable Control Passing (IPCS/ISPF)

2006-12-21 Thread Rob Scott
Steve,

I wrote a couple of fairly simple assembler REXX functions a few years
ago to pass stem variables between two separate REXX execs in the same
address space.

They are called STEMPUSH and STEMPULL and can be found in the downloads
section of www.mximvs.com 

STEMPUSH puts the rexx variables into a dataspace stack and returns the
caller the STOKEN for the dataspace.

STEMPULL pulls the rexx variables from the dataspace identfied by the
STOKEN - you can keep or delete the dataspace after you pull.

I know that these functions are being used heavily at certain sites with
thousands of varibles being loaded. 


Rob Scott
Rocket Software, Inc
275 Grove Street
Newton, MA 02466
617-614-2305
[EMAIL PROTECTED]
http://www.rs.com/portfolio/mxi_g2

-Original Message-
From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On
Behalf Of Thompson, Steve (SCI TW)
Sent: 21 December 2006 09:19
To: IBM-MAIN@BAMA.UA.EDU
Subject: REXX Question - Variable Control  Passing (IPCS/ISPF)

I have a problem where I would like to pass some number of variables
between different REXX sources (in this case 200).

 

I have placed the variables into a single REXX source. And I know that
this can't be called and then have those variables available in the
calling REXX exec (if I can, that would be wonderful). I can't find a
copy statement that would allow me to copy the one source (similar to
ALC or COBOL to copy a common record description) so that each EXEC that
uses the common variables can get them. 

 

Also, putting these variables into each EXEC that needs them makes this
a maint nightmare because one would have to know every place they
exist...

 

My options at this point seem to be IPCS EQUATE for each variable or
ISPF VGET/VPUT. Since we do handle multi-address space dumps, the IPCS
EQUATE seems to be headed toward heartburn. The ISPF VGET/VPUT brings up
its own set of heartburn in that if you change from one dump to another,
you have to re-establish the variables.

 

Any suggestions?

 

Regards,

Steve Thompson

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: REXX Question - Variable Control Passing (IPCS/ISPF)

2006-12-21 Thread Arthur T.
On 21 Dec 2006 06:20:47 -0800, in bit.listserv.ibm-main 
(Message-ID:[EMAIL PROTECTED]) 
[EMAIL PROTECTED] (Thompson, Steve  , SCI TW) 
wrote:


I have a problem where I would like to pass some number of 
variables

between different REXX sources (in this case 200).


I have placed the variables into a single REXX source. And 
I know that
this can't be called and then have those variables 
available in the
calling REXX exec (if I can, that would be wonderful). I 
can't find a
copy statement that would allow me to copy the one 
source (similar to
ALC or COBOL to copy a common record description) so that 
each EXEC that

uses the common variables can get them.


 There is probably a function package for something 
like this.  Failing that, here's the kluge that was 
proposed in a different REXX newsgroup:


 Create a single string with all of the assignment 
statements separated by some character (e.g. ';').  Use 
that as the return string from a function call.  Parse the 
return and interpret each assignment.  Trivial (but tested) 
example follows:


Main program:
temp = called()
do while temp  ''
  parse var temp equ ';' temp
  interpret equ
end
say a b c

Called program:
exit 'a=5;b=6;c=0'

--
I cannot receive mail at the address this was sent from.
To reply directly, send to ar23hur at intergate dot com

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: REXX Question - Variable Control Passing (IPCS/ISPF)

2006-12-21 Thread Dave Salt

Have you tried VPUT / VGET to the PROFILE pool instead of the
application or shared pool? Just asking.


I wouldn't recommend it. Unlike the SHARED pool (which is dynamically 
created and deleted during ISPF sessions), the PROFILE pool is kept 
'forever'; i.e. it's saved on disk. And just like every other data set that 
gets saved on disk, it can run out of space. In addition, each individual 
PROFILE member has a fixed size (something like 64K). If this size is 
exceeded, nasty things happen.


VPUT PROFILE should be used as sparingly as possible, and generally only 
used when a variable needs to be available for use at some point in the 
future (e.g. tomorrow or next week etc). To pass variables between programs, 
I'd recommend using the SHARED pool or perhaps creating a temporary ISPF 
table that other programs can read to find the values they need.


HTH,

Dave Salt
SimpList(tm) - The easiest, most powerful way to surf a mainframe!
http://www.mackinney.com/products/SIM/simplist.htm

_
Enter the Telus Mobility Xbox a Day contest for your chance to WIN!  Telus 
Mobility is giving away an Microsoft Xbox® 360 every day from November 20 to 
December 31, 2006! Just download Windows Live (MSN) Messenger to your 
IM-capable TELUS mobile phone, and you could be a winner!  
http://www.telusmobility.com/msnxbox/


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: REXX Question - Variable Control Passing (IPCS/ISPF)

2006-12-21 Thread Thompson, Steve (SCI TW)
-Original Message-
From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On
Behalf Of Arthur T.
Sent: Thursday, December 21, 2006 9:55 AM
To: IBM-MAIN@BAMA.UA.EDU
Subject: Re: REXX Question - Variable Control  Passing (IPCS/ISPF)

SNIP
  Create a single string with all of the assignment 
statements separated by some character (e.g. ';').  Use 
that as the return string from a function call.  Parse the 
return and interpret each assignment.  Trivial (but tested) 
example follows:
SNIP

Duh! 

What you described is effectively the REXX version of COPY. 

I guess I just got too close to the problem to see a simple solution.

(Meanwhile, I was taking the original list of variables being assigned
their values and was processing with a MACRO and PUNCH...  I've been
doing too many conversions).

Thanx,
Steve Thompson

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: REXX Question - Variable Control Passing (IPCS/ISPF)

2006-12-21 Thread Hunkeler Peter (KIUK 3)
Assuming you want to stick to REXX and the variables are in
a separate member, something like this should work:

/*REXX*/
...
ALLOC F(COPYBOOK) DS('datastname(member)') SHR
EXECIO * DISKR COPYBOOK (STEM cb_vars. FINIS
FREE F(COPYBOOK)

do i = 1 to cb_vars.0
   interpret cb_vars.i
   end

Peter Hunkeler
CREDIT SUISSE

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: REXX Question - Variable Control Passing (IPCS/ISPF)

2006-12-21 Thread Thompson, Steve (SCI TW)
-Original Message-
From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On
Behalf Of Hunkeler Peter (KIUK 3)
Sent: Thursday, December 21, 2006 9:35 AM
To: IBM-MAIN@BAMA.UA.EDU
Subject: Re: REXX Question - Variable Control  Passing (IPCS/ISPF)

Assuming you want to stick to REXX and the variables are in
a separate member, something like this should work:
SNIP

That works when you know where the member is that holds what you are
after.

However, by taking the member and having it issue a MAKEBUF and then
QUEUEing the variables into there, the calling EXEC can then issue PULL
var_name followed by INTERPRET var_name.

That is as close to a COPY member as I can get with REXX.

And it worked on the third try (too much chocolate stuff stuck to
fingers makes for finger checks and messy kegtops.

See what I mean?

Thanks for the ideas to all. The MAKEBUF/QUEUE/PULL/INTERPRET wokrs
exactly like I need.

Regards,
Steve Thompson

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


AW: REXX Question - Variable Control Passing (IPCS/ISPF)

2006-12-21 Thread Volkmar Langer
You are right.
I'm using this construct in several REXX procedures and it works fine.
Volkmar



Von: IBM Mainframe Discussion List im Auftrag von Hunkeler Peter (KIUK 3)
Gesendet: Do 21.12.2006 16:35
An: IBM-MAIN@BAMA.UA.EDU
Betreff: Re: REXX Question - Variable Control  Passing (IPCS/ISPF)



Assuming you want to stick to REXX and the variables are in
a separate member, something like this should work:

/*REXX*/
...
ALLOC F(COPYBOOK) DS('datastname(member)') SHR
EXECIO * DISKR COPYBOOK (STEM cb_vars. FINIS
FREE F(COPYBOOK)

do i = 1 to cb_vars.0
   interpret cb_vars.i
   end

Peter Hunkeler
CREDIT SUISSE

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html