I am very new to using ISPF, and working on zOS in general.
I am slowly becoming more comfortable with the tools, even if I do find them rather unhelpful and archaic, and trying to learn.
I have inherited an extremely complicated in-house panel application (as usual with essentially zero documentation) which is made up of hundreds of files (or, I guess, DSNs). I have looked through the sources rather extensively, and now wish to start making some changes to, for example, at least populate the available menu options so that I don't have to remember them all. Most of the panels respond to at least a dozen different menu options (from single character options like: '1', 'A', etc, to full word options like 'dbload', or 'insert', depending upon which panel (sub-panel) is being shown) but usually less than half of these command-options are shown on the list of available options. This makes using the panel application very non-intuitive !
Anyway, now that you have a little background, I want to make a copy of all the files before I start modifying anything. I tried to use ISPF copy (3.3), but when I enter the PDS,
example:
Code:
From ISPF Library:
Project . . . MYUSER (--- Options C and CP only ---)
Group . . . . DEV . . . . . . . . .
Type . . . . MYPROJ
Member . . . * (Blank or pattern for member list,
"*" for all members)
I get the error "Data set not cataloged".
I can see there is another location where I can work with uncataloged data sets:
Code:
From Other Partitioned or Sequential Data Set:
Name . . . . . . .
Volume Serial . . . (If not cataloged)
When I enter the name: MYUSER.DEV.MYPROJ.*, and leave Volume Serial blank, I get an error "Invalid DSN - qualifier"
I guess this *might* be because I have left VolSer empty - although, perhaps not. The problem is that all the members of the PDS are scattered across different Volumes. So, there's no (obvious) answer to what to put in that field.
Joined: 08 May 2006 Posts: 1205 Location: Dublin, Ireland
Quote:
The problem is that all the members of the PDS are scattered across different Volumes.
IBM documentation states :
"PDS and PDSE data sets are limited to one volume." So how can the members of a PDS be scattered across different volumes?
As to having to specify the volume - if you have allocated and cataloged the dataset, there should be no need. Is your system set up to automatically assign volumes and catalog datasets?
Joined: 08 May 2006 Posts: 1205 Location: Dublin, Ireland
Quote:
BUT, even if I provide a single PDS, and provide the Volume :
Code:
From Other Partitioned or Sequential Data Set:
Name . . . . . . . MYUSER.DEV.MYPROJ.EXEC
Volume Serial . . . TSO002 (If not cataloged)
Have you tried putting quotes around the dataset name and leave out the volume? If it's cataloged, it should be found. Without the quotes, the dataset name will be prefixed, perhaps with your userid.
So, if I don't quote the PDS (or I guess also a DSN) name, it will automatically be prefixed with my USER ? Even if it I specify my USER as the first element of the name ?
Joined: 08 May 2006 Posts: 1205 Location: Dublin, Ireland
Yes, in TSO most options require at least the leading quote. If your userid is MYUSER, it would have been looking for MYUSER.MYUSER.DEV.MYPROJ.EXEC and finding that it's not cataloged Alternatively, try specifying just DEV.MYPROJ.EXEC without the quotes.
So, if I don't quote the PDS (or I guess also a DSN) name, it will automatically be prefixed with my USER ? Even if it I specify my USER as the first element of the name ?
It is not magic...
This is one of very standard rules for using the quoted (e.g. fully qualified) DSNAME vs the unquoted ones (e.g. the TSOID is automatically appended in front of the specified DSN.
P.S.
There are hundreds and thousands of other basic rules required to start working with TSO/ISPF
Joined: 30 Nov 2013 Posts: 917 Location: The Universe
A little history, so bear with us.
In 1965 or so, when OS/360 was first conceived as a true disk operating system. As an aside, DOS/360 was a tape operating system, TOS/360, stuffed onto disks in a manner similar to IBSYS/IBJOB for second generation systems.
In 1965, online storage was maybe 100 megabytes for a gigantic system.
Most data sets in this environment were not cataloged; the catalog was a a new phenomenon and only system data sets were cataloged. User data, for the most part, was on magnetic tape and not cataloged.
By 1970, when TSO was initially conceived, online storage had grown to 1 or 2 gigabytes in many OS/360 shops, and many smaller user data sets were on disk and location information was stored in the catalog. There were still a lot of data sets that were not cataloged, especially data sets on magnetic tape.
The TSO command language tried to recognize these facts. User data sets, for convenience, were named userid.XXX.YYY.
This fit in well with the design of the OS/360 catalog scheme, though it caused performance issues in larger shops with many users. The YYY portion of the data set name usually indicated the type of data in the data set; YYY might be DATA for ordinary data, PLI for a PL/I program and so on. The XXX was freeform for the user.
A TSO user, to create a data set to contain a PLI program might enter
e newpgm pli
where E indicated the TSO command processor, EDIT in this case, newpgm was freeform, and PLI indicated both the type of data in the data set, and the DCB attributes of the data sets. This, in fact, was more flexible than meets the eye as EDIT could handle PLI data in both fixed format data sets as well as variable format data sets.
Programmers could edit system data sets:
e 'sys1.proclib(asmfc)' cntl
The single quotes around the data set name indicate the data set name was "fully qualified;" TSO would not insert a userid into the data set name. Notice, though, that EDIT demanded a type: CNTL indicates that data set contains JCL.
Now skip forward to 1975 when SPF, which ultimately morphed into the modern ISPF/PDF, was conceived. The designers conceived of a production environment where data sets would be OS/360 PDS data sets. Littered through SPF were panels containing structures like
Code:
From ISPF Library:
Project . . . X
Group . . . . X
Type . . . . X
Member . . .
I put in X as a default so the cursor will alight on the member name area. The assumption was these data sets would be cataloged. They also realized there were a lot of possible data sets that didn't meet this standard, so most panels have something like
Code:
From Other Partitioned or Sequential Data Set:
Name . . . . . . .
Volume Serial . . . (If not cataloged)
For better or worse, ISPF/PDF panels still have this antique concept.