Re: REXX Question - Variable Control Passing (IPCS/ISPF)
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)
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)
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)
-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)
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)
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)
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)
-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)
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)
-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)
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