Discussion:
Got a question that may really be for ISPF
(too old to reply)
Bob Bridges
2017-02-10 22:25:34 UTC
Permalink
Raw Message
I just posted this at ISPF-L, but a) I haven't seen any new action there since 2015 and b) maybe this is more a REXX question after all - or at least maybe it admits of a REXX solution. Please forgive the cross-post, if that's what this is.

I'm mostly a command-driven kind of guy, rather than a menu user. I like ISPF just fine, but I mostly use my own REXX commands instead of the ISPF Edit, View and Browse menu items. That means I think it's easier to type "tso ed gen.clist" from any ISPF panel than to go back to ***@PRIM, hit '2' from there, and then type in "gen.clist" in the right field of ISREDM01 (the Edit panel).

But once I got in that habit I got tired of saying "GEN.CLIST" all the time; so I created a list of my most common DSNs and told ED, VW and BR to consult that list. And you know how it is; now that routine also translates relative GDG numbers to GoooVoos, if necessary, and knows how to spot DD names when offered one instead of a DSN, and other things like that. And the list of DSN shortcuts is not only for files I use very often but also for the ones I use occasionally but too seldom to remember; like where this particular client keeps their CFILE, or a particular system proclib, that sort of thing. And then, when I write a utility to look for "rendsn('CLEANUP')", that program will keep on working even when the DSN changes because I change it in one place (the RENDSN file) and all the programs that use that DS will be able to find it in its new location.

Ok, so I have a lot of REXXes that know and use this list of DSN shortcuts. But that list does me no good when I have to go outside my REXX commands to use the native ISPF panels. And recently, I've been doing a lot of 3.12s, which I never did much before. Now I have to remember and type out many long DSNs.

So I'm getting ambitious: What's a good way to translate 'TPARM' into 'SYS1.TXP93.PROD.PARMLIB' (or whatever) when I'm in an ISPF utility? Some possibilities:

1) Is there a way to get REXX to write a value onto the screen, as though I wrote it myself?

2) Can REXX write a value not to a position on the panel but to an ISPF variable, so that the panel will think it was written on the corresponding field of the current panel?

3) One way I know will work: I can put a dubbed copy of a panel into a private ISPPLIB of my own, and in that copy of the panel insert the REXX call for the DSN field.

Any other ideas, anyone?

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* Failure is the opportunity to begin again more intelligently. -ok, I found it in a fortune cookie, but it's not bad */

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Kopischke, David G.
2017-02-10 22:32:59 UTC
Permalink
Raw Message
Have you ever seen a product from CA called PDSMAN or EZYEDIT ??? It's basically an interface to edit and browse that starts with a numbered list of DSN's. If you check that out, it might give you some ideas on something you can design for yourself.

What you're describing is pretty much how the product interface is structured...





-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Bob Bridges
Sent: Friday, February 10, 2017 3:26 PM
To: TSO-***@VM.MARIST.EDU
Subject: [TSO-REXX] Got a question that may really be for ISPF [ EXTERNAL ]

I just posted this at ISPF-L, but a) I haven't seen any new action there since 2015 and b) maybe this is more a REXX question after all - or at least maybe it admits of a REXX solution. Please forgive the cross-post, if that's what this is.

I'm mostly a command-driven kind of guy, rather than a menu user. I like ISPF just fine, but I mostly use my own REXX commands instead of the ISPF Edit, View and Browse menu items. That means I think it's easier to type "tso ed gen.clist" from any ISPF panel than to go back to ***@PRIM, hit '2' from there, and then type in "gen.clist" in the right field of ISREDM01 (the Edit panel).

But once I got in that habit I got tired of saying "GEN.CLIST" all the time; so I created a list of my most common DSNs and told ED, VW and BR to consult that list. And you know how it is; now that routine also translates relative GDG numbers to GoooVoos, if necessary, and knows how to spot DD names when offered one instead of a DSN, and other things like that. And the list of DSN shortcuts is not only for files I use very often but also for the ones I use occasionally but too seldom to remember; like where this particular client keeps their CFILE, or a particular system proclib, that sort of thing. And then, when I write a utility to look for "rendsn('CLEANUP')", that program will keep on working even when the DSN changes because I change it in one place (the RENDSN file) and all the programs that use that DS will be able to find it in its new location.

Ok, so I have a lot of REXXes that know and use this list of DSN shortcuts. But that list does me no good when I have to go outside my REXX commands to use the native ISPF panels. And recently, I've been doing a lot of 3.12s, which I never did much before. Now I have to remember and type out many long DSNs.

So I'm getting ambitious: What's a good way to translate 'TPARM' into 'SYS1.TXP93.PROD.PARMLIB' (or whatever) when I'm in an ISPF utility? Some possibilities:

1) Is there a way to get REXX to write a value onto the screen, as though I wrote it myself?

2) Can REXX write a value not to a position on the panel but to an ISPF variable, so that the panel will think it was written on the corresponding field of the current panel?

3) One way I know will work: I can put a dubbed copy of a panel into a private ISPPLIB of my own, and in that copy of the panel insert the REXX call for the DSN field.

Any other ideas, anyone?

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* Failure is the opportunity to begin again more intelligently. -ok, I found it in a fortune cookie, but it's not bad */

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX


This e-mail transmission may contain information that is proprietary, privileged and/or confidential and is intended exclusively for the person(s) to whom it is addressed. Any use, copying, retention or disclosure by any person other than the intended recipient or the intended recipient's designees is strictly prohibited. If you are not the intended recipient or their designee, please notify the sender immediately by return e-mail and delete all copies. OppenheimerFunds may, at its sole discretion, monitor, review, retain and/or disclose the content of all email communications.
Dave Salt
2017-02-10 22:39:02 UTC
Permalink
Raw Message
You could also check out SimpList. It does what you're describing and a whole lot more.



Sent from my Samsung Galaxy smartphone.


-------- Original message --------
From: "Kopischke, David G." <***@OFIGLOBAL.COM>
Date: 2017-02-10 5:33 PM (GMT-05:00)
To: TSO-***@VM.MARIST.EDU
Subject: Re: Got a question that may really be for ISPF

Have you ever seen a product from CA called PDSMAN or EZYEDIT ??? It's basically an interface to edit and browse that starts with a numbered list of DSN's. If you check that out, it might give you some ideas on something you can design for yourself.

What you're describing is pretty much how the product interface is structured...





-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Bob Bridges
Sent: Friday, February 10, 2017 3:26 PM
To: TSO-***@VM.MARIST.EDU
Subject: [TSO-REXX] Got a question that may really be for ISPF [ EXTERNAL ]

I just posted this at ISPF-L, but a) I haven't seen any new action there since 2015 and b) maybe this is more a REXX question after all - or at least maybe it admits of a REXX solution. Please forgive the cross-post, if that's what this is.

I'm mostly a command-driven kind of guy, rather than a menu user. I like ISPF just fine, but I mostly use my own REXX commands instead of the ISPF Edit, View and Browse menu items. That means I think it's easier to type "tso ed gen.clist" from any ISPF panel than to go back to ***@PRIM, hit '2' from there, and then type in "gen.clist" in the right field of ISREDM01 (the Edit panel).

But once I got in that habit I got tired of saying "GEN.CLIST" all the time; so I created a list of my most common DSNs and told ED, VW and BR to consult that list. And you know how it is; now that routine also translates relative GDG numbers to GoooVoos, if necessary, and knows how to spot DD names when offered one instead of a DSN, and other things like that. And the list of DSN shortcuts is not only for files I use very often but also for the ones I use occasionally but too seldom to remember; like where this particular client keeps their CFILE, or a particular system proclib, that sort of thing. And then, when I write a utility to look for "rendsn('CLEANUP')", that program will keep on working even when the DSN changes because I change it in one place (the RENDSN file) and all the programs that use that DS will be able to find it in its new location.

Ok, so I have a lot of REXXes that know and use this list of DSN shortcuts. But that list does me no good when I have to go outside my REXX commands to use the native ISPF panels. And recently, I've been doing a lot of 3.12s, which I never did much before. Now I have to remember and type out many long DSNs.

So I'm getting ambitious: What's a good way to translate 'TPARM' into 'SYS1.TXP93.PROD.PARMLIB' (or whatever) when I'm in an ISPF utility? Some possibilities:

1) Is there a way to get REXX to write a value onto the screen, as though I wrote it myself?

2) Can REXX write a value not to a position on the panel but to an ISPF variable, so that the panel will think it was written on the corresponding field of the current panel?

3) One way I know will work: I can put a dubbed copy of a panel into a private ISPPLIB of my own, and in that copy of the panel insert the REXX call for the DSN field.

Any other ideas, anyone?

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* Failure is the opportunity to begin again more intelligently. -ok, I found it in a fortune cookie, but it's not bad */

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX


This e-mail transmission may contain information that is proprietary, privileged and/or confidential and is intended exclusively for the person(s) to whom it is addressed. Any use, copying, retention or disclosure by any person other than the intended recipient or the intended recipient's designees is strictly prohibited. If you are not the intended recipient or their designee, please notify the sender immediately by return e-mail and delete all copies. OppenheimerFunds may, at its sole discretion, monitor, review, retain and/or disclose the content of all email communications.

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Bob Bridges
2017-02-11 20:01:51 UTC
Permalink
Raw Message
Aha! I might, indeed, Dave; I forgot about that. Of course, I may decide
it's no fun using someone else's solution ... :).

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* Failure is the opportunity to begin again more intelligently. -ok, I
found it in a fortune cookie, but it's not bad */


-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of
Dave Salt
Sent: Friday, February 10, 2017 17:40

You could also check out SimpList. It does what you're describing and a
whole lot more.

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of
Bob Bridges
Sent: Friday, February 10, 2017 3:26 PM

I just posted this at ISPF-L, but a) I haven't seen any new action there
since 2015 and b) maybe this is more a REXX question after all - or at least
maybe it admits of a REXX solution. Please forgive the cross-post, if
that's what this is.

I'm mostly a command-driven kind of guy, rather than a menu user. I like
ISPF just fine, but I mostly use my own REXX commands instead of the ISPF
Edit, View and Browse menu items. That means I think it's easier to type
"tso ed gen.clist" from any ISPF panel than to go back to ***@PRIM, hit '2'
from there, and then type in "gen.clist" in the right field of ISREDM01 (the
Edit panel).

But once I got in that habit I got tired of saying "GEN.CLIST" all the time;
so I created a list of my most common DSNs and told ED, VW and BR to consult
that list. And you know how it is; now that routine also translates
relative GDG numbers to GoooVoos, if necessary, and knows how to spot DD
names when offered one instead of a DSN, and other things like that. And
the list of DSN shortcuts is not only for files I use very often but also
for the ones I use occasionally but too seldom to remember; like where this
particular client keeps their CFILE, or a particular system proclib, that
sort of thing. And then, when I write a utility to look for
"rendsn('CLEANUP')", that program will keep on working even when the DSN
changes because I change it in one place (the RENDSN file) and all the
programs that use that DS will be able to find it in its new location.

Ok, so I have a lot of REXXes that know and use this list of DSN shortcuts.
But that list does me no good when I have to go outside my REXX commands to
use the native ISPF panels. And recently, I've been doing a lot of 3.12s,
which I never did much before. Now I have to remember and type out many
long DSNs.

So I'm getting ambitious: What's a good way to translate 'TPARM' into
'SYS1.TXP93.PROD.PARMLIB' (or whatever) when I'm in an ISPF utility? Some
possibilities:

1) Is there a way to get REXX to write a value onto the screen, as though I
wrote it myself?

2) Can REXX write a value not to a position on the panel but to an ISPF
variable, so that the panel will think it was written on the corresponding
field of the current panel?

3) One way I know will work: I can put a dubbed copy of a panel into a
private ISPPLIB of my own, and in that copy of the panel insert the REXX
call for the DSN field.

Any other ideas, anyone?

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Dave Salt
2017-02-12 03:10:25 UTC
Permalink
Raw Message
It sounds like you've already built a lot of your own solutions. I'm not sure if you're aware of this, but it's really easy to integrate those solutions with the ones provided by SimpList to give you the best of both worlds; e.g. call your function to translate a DDNAME to a dataset name, then have your function call SimpList to do whatever needs to be done to the dataset (browse, copy, print, transfer to PC, etc.). If you have any questions let me know off-list and I'd be happy to answer.



Sent from my Samsung Galaxy smartphone.


-------- Original message --------
From: Bob Bridges <***@GMAIL.COM>
Date: 2017-02-11 3:02 PM (GMT-05:00)
To: TSO-***@VM.MARIST.EDU
Subject: Re: Got a question that may really be for ISPF

Aha! I might, indeed, Dave; I forgot about that. Of course, I may decide
it's no fun using someone else's solution ... :).

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* Failure is the opportunity to begin again more intelligently. -ok, I
found it in a fortune cookie, but it's not bad */


-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of
Dave Salt
Sent: Friday, February 10, 2017 17:40

You could also check out SimpList. It does what you're describing and a
whole lot more.

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of
Bob Bridges
Sent: Friday, February 10, 2017 3:26 PM

I just posted this at ISPF-L, but a) I haven't seen any new action there
since 2015 and b) maybe this is more a REXX question after all - or at least
maybe it admits of a REXX solution. Please forgive the cross-post, if
that's what this is.

I'm mostly a command-driven kind of guy, rather than a menu user. I like
ISPF just fine, but I mostly use my own REXX commands instead of the ISPF
Edit, View and Browse menu items. That means I think it's easier to type
"tso ed gen.clist" from any ISPF panel than to go back to ***@PRIM, hit '2'
from there, and then type in "gen.clist" in the right field of ISREDM01 (the
Edit panel).

But once I got in that habit I got tired of saying "GEN.CLIST" all the time;
so I created a list of my most common DSNs and told ED, VW and BR to consult
that list. And you know how it is; now that routine also translates
relative GDG numbers to GoooVoos, if necessary, and knows how to spot DD
names when offered one instead of a DSN, and other things like that. And
the list of DSN shortcuts is not only for files I use very often but also
for the ones I use occasionally but too seldom to remember; like where this
particular client keeps their CFILE, or a particular system proclib, that
sort of thing. And then, when I write a utility to look for
"rendsn('CLEANUP')", that program will keep on working even when the DSN
changes because I change it in one place (the RENDSN file) and all the
programs that use that DS will be able to find it in its new location.

Ok, so I have a lot of REXXes that know and use this list of DSN shortcuts.
But that list does me no good when I have to go outside my REXX commands to
use the native ISPF panels. And recently, I've been doing a lot of 3.12s,
which I never did much before. Now I have to remember and type out many
long DSNs.

So I'm getting ambitious: What's a good way to translate 'TPARM' into
'SYS1.TXP93.PROD.PARMLIB' (or whatever) when I'm in an ISPF utility? Some
possibilities:

1) Is there a way to get REXX to write a value onto the screen, as though I
wrote it myself?

2) Can REXX write a value not to a position on the panel but to an ISPF
variable, so that the panel will think it was written on the corresponding
field of the current panel?

3) One way I know will work: I can put a dubbed copy of a panel into a
private ISPPLIB of my own, and in that copy of the panel insert the REXX
call for the DSN field.

Any other ideas, anyone?

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Bob Bridges
2017-02-11 20:00:23 UTC
Permalink
Raw Message
The CA product will surely be compiled, no? So it won't tell me how it works underneath the covers. And I already have this working satisfactorily for Edit and View; what I want to do is use the same facility with other ISPF tools, for example 3.4, 3.12 and 3.14.

To explain in a little more detail: My REXX commands Ed, Vw and Br are really just shortcuts that call BEV with the argument "ED", "VW" or "BR". BEV (Browse/Edit/View) figures out whether the file is a DDN or DSN, translates the DSN or DDN, spots a call to an Edit profile if supplied, decides which ISPEXEC service to call and so forth.

One of the things it does with DSNs is run them through RENDSN, which determines whether the name I supplied is in my RENDSN list. If it is, RENDSN returns the translated name. For example if the file name is "CG", RENDSN returns "GEN.CLIST"; if I feed it "cfile" it returns "'SYS1.CA.TSS.CFILE(0)'". (Part of the logic also spots the relative generation number and translates it to "'SYS1.CA.TSS.CFILE.G0273V00'".)

This works fine with Edit, View and Browse. But now I'm wondering whether I can gin up a way to put "CG(*)" in the Dataset field of, say, 3.14, so I can search those members for a particular string. The CA product, if I were to acquire and examine it, would give me ideas about the user interface, but I have that already; what I'm looking for is a ~coding~ technique, in REXX and/or ISPF, to do the above.

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* Failure is the opportunity to begin again more intelligently. -ok, I found it in a fortune cookie, but it's not bad */


-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Kopischke, David G.
Sent: Friday, February 10, 2017 17:33

Have you ever seen a product from CA called PDSMAN or EZYEDIT ??? It's basically an interface to edit and browse that starts with a numbered list of DSN's. If you check that out, it might give you some ideas on something you can design for yourself.

What you're describing is pretty much how the product interface is structured...

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Bob Bridges
Sent: Friday, February 10, 2017 3:26 PM

I just posted this at ISPF-L, but a) I haven't seen any new action there since 2015 and b) maybe this is more a REXX question after all - or at least maybe it admits of a REXX solution. Please forgive the cross-post, if that's what this is.

I'm mostly a command-driven kind of guy, rather than a menu user. I like ISPF just fine, but I mostly use my own REXX commands instead of the ISPF Edit, View and Browse menu items. That means I think it's easier to type "tso ed gen.clist" from any ISPF panel than to go back to ***@PRIM, hit '2' from there, and then type in "gen.clist" in the right field of ISREDM01 (the Edit panel).

But once I got in that habit I got tired of saying "GEN.CLIST" all the time; so I created a list of my most common DSNs and told ED, VW and BR to consult that list. And you know how it is; now that routine also translates relative GDG numbers to GoooVoos, if necessary, and knows how to spot DD names when offered one instead of a DSN, and other things like that. And the list of DSN shortcuts is not only for files I use very often but also for the ones I use occasionally but too seldom to remember; like where this particular client keeps their CFILE, or a particular system proclib, that sort of thing. And then, when I write a utility to look for "rendsn('CLEANUP')", that program will keep on working even when the DSN changes because I change it in one place (the RENDSN file) and all the programs that use that DS will be able to find it in its new location.

Ok, so I have a lot of REXXes that know and use this list of DSN shortcuts. But that list does me no good when I have to go outside my REXX commands to use the native ISPF panels. And recently, I've been doing a lot of 3.12s, which I never did much before. Now I have to remember and type out many long DSNs.

So I'm getting ambitious: What's a good way to translate 'TPARM' into 'SYS1.TXP93.PROD.PARMLIB' (or whatever) when I'm in an ISPF utility? Some possibilities:

1) Is there a way to get REXX to write a value onto the screen, as though I wrote it myself?

2) Can REXX write a value not to a position on the panel but to an ISPF variable, so that the panel will think it was written on the corresponding field of the current panel?

3) One way I know will work: I can put a dubbed copy of a panel into a private ISPPLIB of my own, and in that copy of the panel insert the REXX call for the DSN field.

Any other ideas, anyone?

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Paul Gilmartin
2017-02-11 00:15:52 UTC
Permalink
Raw Message
Post by Bob Bridges
I just posted this at ISPF-L, but a) I haven't seen any new action there since 2015 and b) maybe this is more a REXX question after all - or at least maybe it admits of a REXX solution. Please forgive the cross-post, if that's what this is.
Strange. There was action today. What do you see at:
https://listserv.nd.edu/cgi-bin/wa?A0=ISPF-L
Or email to: ***@listserv.nd.edu
help
info ispf-l
Thanks
You want CMD.EXE, but without Windows.

A shell written in Rexx, to be invoked witth the ISPF TSO command,
PARSE PULLing commands in a loop and ADDRESSing ISPEXEC them?

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Bob Bridges
2017-02-11 19:47:20 UTC
Permalink
Raw Message
I think I know what happened, Gil. After I posted at TSO-REXX I got a
message back from ISPF-L saying they couldn't accept my post there, hinting
that the problem is my email address.

Well, come to think of it I fired AT&T a while back and promoted my backup
Gmail address to the standard. I thought I'd notified most of the right
folks, but I'm sure now that ISPF-L is one I missed.

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* Failure is the opportunity to begin again more intelligently. -ok, I
found it in a fortune cookie, but it's not bad */

-----Original Message-----
From: Paul Gilmartin [mailto:***@aim.com]
Sent: Friday, February 10, 2017 19:16
Strange. There was action today. What do you see at:
https://listserv.nd.edu/cgi-bin/wa?A0=ISPF-L
Or email to: ***@listserv.nd.edu
help
info ispf-l
Thanks
Post by Bob Bridges
I just posted this at ISPF-L, but a) I haven't seen any new action there
since 2015 and b) maybe this is more a REXX question after all - or at least
maybe it admits of a REXX solution. Please forgive the cross-post, if
that's what this is.

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Robin
2017-02-11 15:51:46 UTC
Permalink
Raw Message
Years ago when I was employed, I had the same frustration (with ISPF) as yourself. ISPF is barely customizable and even more so for those who are restricted in how much they can modify their own TSO/ISPF startup. But, It can be done and I did. I used my own PF key settings for the panels.

I had a REXX function (@CURSOR) which accessed unpublished ISPF control blocks to "return" the "word" where the cursor was positioned. Pressing a specific/customized PF key would then launch a desired REXX exec to act upon the "word" extracted by @CURSOR. Thus, no matter what ISPF panel was displayed, I could perform whatever app at the touch of a PF key.

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Bob Bridges
Sent: February 10, 2017 5:26 PM
To: TSO-***@VM.MARIST.EDU
Subject: [TSO-REXX] Got a question that may really be for ISPF

I just posted this at ISPF-L, but a) I haven't seen any new action there since 2015 and b) maybe this is more a REXX question after all - or at least maybe it admits of a REXX solution. Please forgive the cross-post, if that's what this is.

I'm mostly a command-driven kind of guy, rather than a menu user. I like ISPF just fine, but I mostly use my own REXX commands instead of the ISPF Edit, View and Browse menu items. That means I think it's easier to type "tso ed gen.clist" from any ISPF panel than to go back to ***@PRIM, hit '2' from there, and then type in "gen.clist" in the right field of ISREDM01 (the Edit panel).

But once I got in that habit I got tired of saying "GEN.CLIST" all the time; so I created a list of my most common DSNs and told ED, VW and BR to consult that list. And you know how it is; now that routine also translates relative GDG numbers to GoooVoos, if necessary, and knows how to spot DD names when offered one instead of a DSN, and other things like that. And the list of DSN shortcuts is not only for files I use very often but also for the ones I use occasionally but too seldom to remember; like where this particular client keeps their CFILE, or a particular system proclib, that sort of thing. And then, when I write a utility to look for "rendsn('CLEANUP')", that program will keep on working even when the DSN changes because I change it in one place (the RENDSN file) and all the programs that use that DS will be able to find it in its new location.

Ok, so I have a lot of REXXes that know and use this list of DSN shortcuts. But that list does me no good when I have to go outside my REXX commands to use the native ISPF panels. And recently, I've been doing a lot of 3.12s, which I never did much before. Now I have to remember and type out many long DSNs.

So I'm getting ambitious: What's a good way to translate 'TPARM' into 'SYS1.TXP93.PROD.PARMLIB' (or whatever) when I'm in an ISPF utility? Some possibilities:

1) Is there a way to get REXX to write a value onto the screen, as though I wrote it myself?

2) Can REXX write a value not to a position on the panel but to an ISPF variable, so that the panel will think it was written on the corresponding field of the current panel?

3) One way I know will work: I can put a dubbed copy of a panel into a private ISPPLIB of my own, and in that copy of the panel insert the REXX call for the DSN field.

Any other ideas, anyone?

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* Failure is the opportunity to begin again more intelligently. -ok, I found it in a fortune cookie, but it's not bad */

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Robert Garrett
2017-02-11 16:38:12 UTC
Permalink
Raw Message
Yes. Grab the ISPF dialog manager services doc and read about ISPEXEC CONTROL NONDISPLAY ENTER. Executing this command will cause the very next panel that is "displayed" to not actually be displayed, but to behave as if the user simply pressed enter. If you're wily about how you code your panels (such that in the )INIT section they check to see if values for various panel variables have already been set and not (re)initialize them if so), then you will be able to leverage the various nice things you can do in panel logic from other execs you would like to run without requiring user interaction.

Another trick I use in my REXX code in order to make it so that it can run anywhere - even from plain old TSO and not under ISPF - is to include in my "boilerplate" code logic that 1) sets a variable that indicates if the exec needs ISPF services and if so, then 2) checks to see if it's running under ISPF. If not, the exec will recursively re-invoke itself under ISPF (via the ISPSTART service) to do whatever it needs to do. My return logic is also such that the "inner" return code is percolated back once the whole thing completes.

Rob

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Robin
Sent: Saturday, February 11, 2017 9:52 AM
To: TSO-***@VM.MARIST.EDU
Subject: Re: [TSO-REXX] Got a question that may really be for ISPF

Years ago when I was employed, I had the same frustration (with ISPF) as yourself. ISPF is barely customizable and even more so for those who are restricted in how much they can modify their own TSO/ISPF startup. But, It can be done and I did. I used my own PF key settings for the panels.

I had a REXX function (@CURSOR) which accessed unpublished ISPF control blocks to "return" the "word" where the cursor was positioned. Pressing a specific/customized PF key would then launch a desired REXX exec to act upon the "word" extracted by @CURSOR. Thus, no matter what ISPF panel was displayed, I could perform whatever app at the touch of a PF key.

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Bob Bridges
Sent: February 10, 2017 5:26 PM
To: TSO-***@VM.MARIST.EDU
Subject: [TSO-REXX] Got a question that may really be for ISPF

I just posted this at ISPF-L, but a) I haven't seen any new action there since 2015 and b) maybe this is more a REXX question after all - or at least maybe it admits of a REXX solution. Please forgive the cross-post, if that's what this is.

I'm mostly a command-driven kind of guy, rather than a menu user. I like ISPF just fine, but I mostly use my own REXX commands instead of the ISPF Edit, View and Browse menu items. That means I think it's easier to type "tso ed gen.clist" from any ISPF panel than to go back to ***@PRIM, hit '2' from there, and then type in "gen.clist" in the right field of ISREDM01 (the Edit panel).

But once I got in that habit I got tired of saying "GEN.CLIST" all the time; so I created a list of my most common DSNs and told ED, VW and BR to consult that list. And you know how it is; now that routine also translates relative GDG numbers to GoooVoos, if necessary, and knows how to spot DD names when offered one instead of a DSN, and other things like that. And the list of DSN shortcuts is not only for files I use very often but also for the ones I use occasionally but too seldom to remember; like where this particular client keeps their CFILE, or a particular system proclib, that sort of thing. And then, when I write a utility to look for "rendsn('CLEANUP')", that program will keep on working even when the DSN changes because I change it in one place (the RENDSN file) and all the programs that use that DS will be able to find it in its new location.

Ok, so I have a lot of REXXes that know and use this list of DSN shortcuts. But that list does me no good when I have to go outside my REXX commands to use the native ISPF panels. And recently, I've been doing a lot of 3.12s, which I never did much before. Now I have to remember and type out many long DSNs.

So I'm getting ambitious: What's a good way to translate 'TPARM' into 'SYS1.TXP93.PROD.PARMLIB' (or whatever) when I'm in an ISPF utility? Some possibilities:

1) Is there a way to get REXX to write a value onto the screen, as though I wrote it myself?

2) Can REXX write a value not to a position on the panel but to an ISPF variable, so that the panel will think it was written on the corresponding field of the current panel?

3) One way I know will work: I can put a dubbed copy of a panel into a private ISPPLIB of my own, and in that copy of the panel insert the REXX call for the DSN field.

Any other ideas, anyone?

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* Failure is the opportunity to begin again more intelligently. -ok, I found it in a fortune cookie, but it's not bad */

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Bob Bridges
2017-02-11 20:26:03 UTC
Permalink
Raw Message
Sounds to me as though the solution in the first paragraph would involve inkoking or simulating the 3.12 utility (for example) from a command, rather than pulling up the 3.12 panel and getting the dialogue itself to check my DSN against the RENDSN list. That may be the best way to go, but it wasn't what I was looking for just now.

But I will definitely check out ISPEXEC CONTROL NONDISPLAY ENTER, and see what I can do with it. Thanks, Rob.

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* Failure is the opportunity to begin again more intelligently. -ok, I found it in a fortune cookie, but it's not bad */

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Robert Garrett
Sent: Saturday, February 11, 2017 11:39

Yes. Grab the ISPF dialog manager services doc and read about ISPEXEC CONTROL NONDISPLAY ENTER. Executing this command will cause the very next panel that is "displayed" to not actually be displayed, but to behave as if the user simply pressed enter. If you're wily about how you code your panels (such that in the )INIT section they check to see if values for various panel variables have already been set and not (re)initialize them if so), then you will be able to leverage the various nice things you can do in panel logic from other execs you would like to run without requiring user interaction.

Another trick I use in my REXX code in order to make it so that it can run anywhere - even from plain old TSO and not under ISPF - is to include in my "boilerplate" code logic that 1) sets a variable that indicates if the exec needs ISPF services and if so, then 2) checks to see if it's running under ISPF. If not, the exec will recursively re-invoke itself under ISPF (via the ISPSTART service) to do whatever it needs to do. My return logic is also such that the "inner" return code is percolated back once the whole thing completes.

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Bob Bridges
Sent: February 10, 2017 5:26 PM

I just posted this at ISPF-L, but a) I haven't seen any new action there since 2015 and b) maybe this is more a REXX question after all - or at least maybe it admits of a REXX solution. Please forgive the cross-post, if that's what this is.

I'm mostly a command-driven kind of guy, rather than a menu user. I like ISPF just fine, but I mostly use my own REXX commands instead of the ISPF Edit, View and Browse menu items. That means I think it's easier to type "tso ed gen.clist" from any ISPF panel than to go back to ***@PRIM, hit '2' from there, and then type in "gen.clist" in the right field of ISREDM01 (the Edit panel).

But once I got in that habit I got tired of saying "GEN.CLIST" all the time; so I created a list of my most common DSNs and told ED, VW and BR to consult that list. And you know how it is; now that routine also translates relative GDG numbers to GoooVoos, if necessary, and knows how to spot DD names when offered one instead of a DSN, and other things like that. And the list of DSN shortcuts is not only for files I use very often but also for the ones I use occasionally but too seldom to remember; like where this particular client keeps their CFILE, or a particular system proclib, that sort of thing. And then, when I write a utility to look for "rendsn('CLEANUP')", that program will keep on working even when the DSN changes because I change it in one place (the RENDSN file) and all the programs that use that DS will be able to find it in its new location.

Ok, so I have a lot of REXXes that know and use this list of DSN shortcuts. But that list does me no good when I have to go outside my REXX commands to use the native ISPF panels. And recently, I've been doing a lot of 3.12s, which I never did much before. Now I have to remember and type out many long DSNs.

So I'm getting ambitious: What's a good way to translate 'TPARM' into 'SYS1.TXP93.PROD.PARMLIB' (or whatever) when I'm in an ISPF utility? Some possibilities:

1) Is there a way to get REXX to write a value onto the screen, as though I wrote it myself?

2) Can REXX write a value not to a position on the panel but to an ISPF variable, so that the panel will think it was written on the corresponding field of the current panel?

3) One way I know will work: I can put a dubbed copy of a panel into a private ISPPLIB of my own, and in that copy of the panel insert the REXX call for the DSN field.

Any other ideas, anyone?

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Bob Bridges
2017-02-11 20:20:18 UTC
Permalink
Raw Message
If I understand correctly, you're talking about a REXX that spotted the location of the cursor and fetched the text that was displayed at that location. What I'm looking for is the reverse, a function that'll put a value ~on~ the panel.

Any chance it'll work in reverse - that if I can identify these undocumented control blocks, I can insert a value that will then be perceived in the panel? Can you exhume that code for me?

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* Failure is the opportunity to begin again more intelligently. -ok, I found it in a fortune cookie, but it's not bad */

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Robin
Sent: Saturday, February 11, 2017 10:52

Years ago when I was employed, I had the same frustration (with ISPF) as yourself. ISPF is barely customizable and even more so for those who are restricted in how much they can modify their own TSO/ISPF startup. But, It can be done and I did. I used my own PF key settings for the panels.

I had a REXX function (@CURSOR) which accessed unpublished ISPF control blocks to "return" the "word" where the cursor was positioned. Pressing a specific/customized PF key would then launch a desired REXX exec to act upon the "word" extracted by @CURSOR. Thus, no matter what ISPF panel was displayed, I could perform whatever app at the touch of a PF key.

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Bob Bridges
Sent: February 10, 2017 5:26 PM

I just posted this at ISPF-L, but a) I haven't seen any new action there since 2015 and b) maybe this is more a REXX question after all - or at least maybe it admits of a REXX solution. Please forgive the cross-post, if that's what this is.

I'm mostly a command-driven kind of guy, rather than a menu user. I like ISPF just fine, but I mostly use my own REXX commands instead of the ISPF Edit, View and Browse menu items. That means I think it's easier to type "tso ed gen.clist" from any ISPF panel than to go back to ***@PRIM, hit '2' from there, and then type in "gen.clist" in the right field of ISREDM01 (the Edit panel).

But once I got in that habit I got tired of saying "GEN.CLIST" all the time; so I created a list of my most common DSNs and told ED, VW and BR to consult that list. And you know how it is; now that routine also translates relative GDG numbers to GoooVoos, if necessary, and knows how to spot DD names when offered one instead of a DSN, and other things like that. And the list of DSN shortcuts is not only for files I use very often but also for the ones I use occasionally but too seldom to remember; like where this particular client keeps their CFILE, or a particular system proclib, that sort of thing. And then, when I write a utility to look for "rendsn('CLEANUP')", that program will keep on working even when the DSN changes because I change it in one place (the RENDSN file) and all the programs that use that DS will be able to find it in its new location.

Ok, so I have a lot of REXXes that know and use this list of DSN shortcuts. But that list does me no good when I have to go outside my REXX commands to use the native ISPF panels. And recently, I've been doing a lot of 3.12s, which I never did much before. Now I have to remember and type out many long DSNs.

So I'm getting ambitious: What's a good way to translate 'TPARM' into 'SYS1.TXP93.PROD.PARMLIB' (or whatever) when I'm in an ISPF utility? Some possibilities:

1) Is there a way to get REXX to write a value onto the screen, as though I wrote it myself?

2) Can REXX write a value not to a position on the panel but to an ISPF variable, so that the panel will think it was written on the corresponding field of the current panel?

3) One way I know will work: I can put a dubbed copy of a panel into a private ISPPLIB of my own, and in that copy of the panel insert the REXX call for the DSN field.

Any other ideas, anyone?

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Andreas Fischer
2017-02-13 07:42:48 UTC
Permalink
Raw Message
i'm a command driven guy myself and basically remain in an edit session
and call self-written edit macros within that edit session to do all kind
of tasks. though i wanted to mention that i don't think that you have to
go back to the ispf primary panel whenever you want to call the view or
edit entry panel or the data set list utility. in my shop, you simply
enter p1 or p2 or p34 to get the respective panel, and it felt like this
is nothing that we had to implement by ourselves. though, if you need to
implement that by yourself, it's something that i can recommend, because i
guess it saves a lot of time.

regards,
andi
Datum: 10.02.2017 23:26
Betreff: [TSO-REXX] Got a question that may really be for ISPF
I just posted this at ISPF-L, but a) I haven't seen any new action
there since 2015 and b) maybe this is more a REXX question after all
- or at least maybe it admits of a REXX solution. Please forgive
the cross-post, if that's what this is.
I'm mostly a command-driven kind of guy, rather than a menu user. I
like ISPF just fine, but I mostly use my own REXX commands instead
of the ISPF Edit, View and Browse menu items. That means I think
it's easier to type "tso ed gen.clist" from any ISPF panel than to
"gen.clist" in the right field of ISREDM01 (the Edit panel).
But once I got in that habit I got tired of saying "GEN.CLIST" all
the time; so I created a list of my most common DSNs and told ED, VW
and BR to consult that list. And you know how it is; now that
routine also translates relative GDG numbers to GoooVoos, if
necessary, and knows how to spot DD names when offered one instead
of a DSN, and other things like that. And the list of DSN shortcuts
is not only for files I use very often but also for the ones I use
occasionally but too seldom to remember; like where this particular
client keeps their CFILE, or a particular system proclib, that sort
of thing. And then, when I write a utility to look for "rendsn
('CLEANUP')", that program will keep on working even when the DSN
changes because I change it in one place (the RENDSN file) and all
the programs that use that DS will be able to find it in its new
location.
Ok, so I have a lot of REXXes that know and use this list of DSN
shortcuts. But that list does me no good when I have to go outside
my REXX commands to use the native ISPF panels. And recently, I've
been doing a lot of 3.12s, which I never did much before. Now I
have to remember and type out many long DSNs.
So I'm getting ambitious: What's a good way to translate 'TPARM'
into 'SYS1.TXP93.PROD.PARMLIB' (or whatever) when I'm in an ISPF
1) Is there a way to get REXX to write a value onto the screen, as
though I wrote it myself?
2) Can REXX write a value not to a position on the panel but to an
ISPF variable, so that the panel will think it was written on the
corresponding field of the current panel?
3) One way I know will work: I can put a dubbed copy of a panel
into a private ISPPLIB of my own, and in that copy of the panel
insert the REXX call for the DSN field.
Any other ideas, anyone?
---
Bob Bridges
/* Failure is the opportunity to begin again more intelligently. -
ok, I found it in a fortune cookie, but it's not bad */
----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Loading...