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

(none)

39 views
Skip to first unread message

Karlheinz Wittemann

unread,
May 29, 2002, 6:35:23 AM5/29/02
to
use ispf lmdlist to obtain all you want

Heinz

TSO REXX Discussion List <TSO-...@VM.MARIST.EDU> schrieb am 29.05.02:
> Does anybody know how to trap the dataset list that you get in 3.4 from with
> a rexx.
> For example, in 3.4 , if I type PREV.P%%1.*.C0* , and get a list of
> datasets that fit, that mask,
> I wish to pull that list into an array in forground mode.
>
> regards
>
> Gavin
>
>
> The Royal Bank of Scotland plc is registered in Scotland No 90312. Registered Office: 36 St Andrew Square, Edinburgh EH2 2YB. Agency agreements exist between members of The Royal Bank of Scotland Group. The Royal Bank of Scotland plc is regulated by IMRO, SFA and Personal Investment Authority.
>
> This e-mail message is confidential and for use by the addressee only. If the message is received by anyone other than the addressee, please return the message to the sender by replying to it and then delete the message from your computer. Internet e-mails are not necessarily secure. The Royal Bank of Scotland plc does not accept responsibility for changes made to this message after it was sent.
>
> Whilst all reasonable care has been taken to avoid the transmission of viruses, it is the responsibility of the recipient to ensure that the onward transmission, opening or use of this message and any attachments will not adversely affect its systems or data. No responsibility is accepted by The Royal Bank of Scotland plc in this regard and the recipient should carry out such virus and other checks as it considers appropriate.
>
> ----------------------------------------------------------------------
> For TSO-REXX subscribe / signoff / archive access instructions,
> send email to LIST...@VM.MARIST.EDU with the message: INFO TSO-REXX


________________________________________________________________
Keine verlorenen Lotto-Quittungen, keine vergessenen Gewinne mehr!
Beim WEB.DE Lottoservice: http://tippen2.web.de/?x=13

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

Smith, Gavin , Endevor Support

unread,
May 29, 2002, 6:44:01 AM5/29/02
to

Mullen, Chuck

unread,
May 29, 2002, 7:53:27 AM5/29/02
to
All I get from entering LMDLIST is "IKJ56500I COMMAND LMDLIST NOT FOUND". Is
our installation missing something, or is LMDLIST a locally written exec?

Chuck

----------------------------------------------------------------------------
---

use ispf lmdlist to obtain all you want

Heinz
----------------------------------------------------------------------------
---


Does anybody know how to trap the dataset list that you get in 3.4 from
with
a rexx.

Gavin

Welton, Sebastian

unread,
May 29, 2002, 8:58:18 AM5/29/02
to
Address Ispexec LMDLIST...it's part of ISPF not TSO

<quote>
The data set list service (LMDLIST) generates and uses an internal list of
data set names associated with a unique data set list ID (dslist ID)
obtained from the LMDINIT service.

MfG / Best Regards

Sebastian Welton

GZS Gesellschaft für Zahlungssysteme mbH
Raum: 2.030A
Telefon: 069/7933-1518
Mobile: 0171 8880522
email: sebastia...@gzs.de
-------------------------------------
seba...@welton.de
swe...@acm.org
welto...@mail.naspa.net
www.welton.de

Norsworthy, Hank

unread,
May 29, 2002, 9:06:20 AM5/29/02
to
Look in the manual ISPF Services Guide to find the usage for LMDLIST

Hank

-----Original Message-----
From: Mullen, Chuck [mailto:cmu...@JHANCOCK.COM]
Sent: Wednesday, May 29, 2002 7:10 AM
To: TSO-...@VM.MARIST.EDU
Subject:


All I get from entering LMDLIST is "IKJ56500I COMMAND LMDLIST NOT FOUND". Is
our installation missing something, or is LMDLIST a locally written exec?

Chuck

----------------------------------------------------------------------------
---

use ispf lmdlist to obtain all you want

Heinz
----------------------------------------------------------------------------
---
Does anybody know how to trap the dataset list that you get in 3.4 from
with
a rexx.

Gavin

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

Blue Cross Blue Shield of Florida, Inc., and its subsidiary and
affiliate companies are not responsible for errors or omissions in this e-mail message. Any personal comments made in this e-mail do not reflect the views of Blue Cross Blue Shield of Florida, Inc.

Mullen, Chuck

unread,
May 29, 2002, 9:05:42 AM5/29/02
to
Thanks to all for the replies...

JP

unread,
May 29, 2002, 9:42:27 AM5/29/02
to
Hi Chuck,

LMDLIST is an ISPEXEC function. Here is a small bit of code that I wrote
years ago (have not checked it now to see if it works as I'm not logged on)
but it should give you an idea or two (it doesn't specifically do 3.4
manipulation) :

/* REXX */
/* trace r */
arg level
newstack
if level = '' then do
level = userid()
end
say 'DSNAMES: Processing level' level
address ispexec
"lmdinit listid(did) level("level")"
lastrc = rc
if lastrc <> 0 then do
say "lmdinit lastrc = " lastrc
return(lastrc)
end
dsn =
lmdrc=0
do forever
"lmdlist listid("did") option(list) dataset(dsn) stats(yes)"
lastrc = rc
if lastrc=8 then do
say 'End of dataset list.'
signal fini
end
if lastrc=16 then do
say "truncation or translation error"
return(16)
end
if lastrc=12 then do
say "keyword value incorrect"
return(12)
end
if lastrc=10 then do
say "dataset does not exist for dslist id"
return(10)
end
if zdlmigr='NO' then do /* if not migrated */
if zdldsorg = 'PO' then do
ldsn = overlay(dsn,blank,1,45,' ')
end
else
say dsn "is migrated."
end
if ((lastpos('EPIC',dsn)>0) ,
| (lastpos('CHGCTL',dsn)>0) ,
| (lastpos('BACK',dsn)>0) ,
| (lastrc > 0)) then do
say 'Skipping' dsn
zdlmigr = 'YES'
end
if zdlmigr='NO' & zdldsorg = 'PO' then do /* if PO & */
say dsn
lastrc = rc
if lastrc>0 then do
say "Error Initialising list for dataset rc: " lastrc
return
end
end
end
fini:
address tso
RETURN(0)

------------------------------- end

Take a look also at the IBM bookmanager url for ISPF Services at:

http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ISPSER04/CCONTENT
S?DT=20000712152926

or the LMDLIST service specifically -
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ISPSER04/2.31?DT=
20000712152926

Regards,
John Preston.

Gray, Alastair

unread,
May 31, 2002, 10:30:13 AM5/31/02
to
Can I plug File 542 on the CBT - www.cbttape.org - which has a variety of
samples of the using IGGCSI00.

I've just fixed a minor bug and I guess a new version of the file should
appear on the site soon(ish) - I've just e-mailed it off. If anyone has
previously downloaded the file, it might be worth a re-download once the new
version appears as whilst it was minor it was rather pervasive (don't know
how it crept in to be honest).

Oh and it has a new addition - SPACE - for all those SMS fans out there (you
know who you are !).

Alastair Gray
Systems Type

> -----Original Message-----
> From: James Campbell [mailto:jacam...@ACSLINK.NET.AU]
>
> Alternatively to LMDLIST (which requires, as you will know by now, an
>
> ISPF environment) you could call IGGCSI00. A bit of fun learning to
> set up and decode the output; but it is, I presume, what LMDLIST uses
>
> under the covers. (Not LISTCAT, 'cause LISTCAT has some things that
> IGGCSI00 doesn't.)
>
> IGGCSI00 is documented in an appendix to DFSMS Managing Catalogs.
<snip>

James Campbell

unread,
May 31, 2002, 10:47:43 AM5/31/02
to
Alternatively to LMDLIST (which requires, as you will know by now, an

ISPF environment) you could call IGGCSI00. A bit of fun learning to
set up and decode the output; but it is, I presume, what LMDLIST uses

under the covers. (Not LISTCAT, 'cause LISTCAT has some things that
IGGCSI00 doesn't.)

IGGCSI00 is documented in an appendix to DFSMS Managing Catalogs.

James Campbell

-----------
>
> Date: Wed, 29 May 2002 10:01:28 +0100
> From: "Smith, Gavin (Endevor Support)" <Gavin...@RBS.CO.UK>
> Subject: <No subject given>


>
> Does anybody know how to trap the dataset list that you get in 3.4 from with
> a rexx.

> For example, in 3.4 , if I type PREV.P%%1.*.C0* , and get a list of
> datasets that fit, that mask,
> I wish to pull that list into an array in forground mode.
>
> regards
>
> Gavin
>

------- End of forwarded message -------

Isaac Yassin

unread,
Jun 2, 2002, 5:04:48 PM6/2/02
to
Hi,

Here is an IGGCSIRX example:

/* REXX */
TRACE O
NUMERIC DIGITS 12
/********************************************************************/
/* NAME: IGGCSIRX - DOCUMENT NUMBER SC26-4914-04 */
/*DESCRIPTION: THIS REXX EXEC IS USED TO CALL THE CATALOG */
/* SEARCH INTERFACE. */
/* INPUT: FILTER KEY ==> HLQ.DSNDBD.DBZZZZ.TS0118.** */
/* OUTPUT: DATA SETS NAMES AND VOLUMES */
/********************************************************************/
SAY 'ENTER FILTER KEY' /* ASK FOR FILTER KEY */
PULL KEY /* GET FILTER KEY */
IF KEY='' THEN
DO;
SAY " NO PARM WAS GIVEN !!!" ; EXIT
END;
IF RIGHT(KEY,3) <> '.**' THEN KEY=KEY||'.**'
/*KEY = 'HLQ.DSNDBD.DBZZZZ.** ' <== FILTER KEY EXAMPLE */
/*KEY = 'HLQ.DSNDBD.DBZZZZ.TS0118.** ' <== FILTER KEY EXAMPLE */
/********************************************************************/
/* INITIALIZE THE PARM LIST */
/********************************************************************/
MODRSNRC = SUBSTR(' ',1,4) /* CLEAR MODULE/RETURN/REASON */
CSIFILTK = SUBSTR(KEY,1,44) /* MOVE FILTER KEY INTO LIST */
CSICATNM = SUBSTR(' ',1,44) /* CLEAR CATALOG NAME */
CSIRESNM = SUBSTR(' ',1,44) /* CLEAR RESUME NAME */
CSIDTYPS = SUBSTR('C',1,16) /* CLUSTER ONLY DATATYPES */
CSICLDI = SUBSTR('Y',1,1) /* INDICATE DATA AND INDEX */
CSIRESUM = SUBSTR(' ',1,1) /* CLEAR RESUME FLAG */
CSIS1CAT = SUBSTR(' ',1,1) /* INDICATE SEARCH > 1 CATALOGS*/
CSIRESRV = SUBSTR(' ',1,1) /* CLEAR RESERVE CHARACTER */
CSINUMEN = '0004'X /* INIT NUMBER OF FIELDS */
CSIFLD1 = SUBSTR('VOLSER',1,8) /* INIT FIELD 1 FOR VOLS */
CSIFLD2 = SUBSTR('NOEXTNT',1,8) /* INIT FIELD 2 FOR #EXTENTS */
CSIFLD3 = SUBSTR('XHARBADS',1,8) /* INIT FIELD 3 FOR HI-A-RBA */
CSIFLD4 = SUBSTR('XHURBADS',1,8) /* INIT FIELD 4 FOR HI-U-RBA */
/********************************************************************/
/* BUILD THE SELECTION CRITERIA FIELDS PART OF PARAMETER LIST */
/********************************************************************/
CSIOPTS = CSICLDI || CSIRESUM || CSIS1CAT || CSIRESRV
CSIFIELD = CSIFILTK || CSICATNM || CSIRESNM || CSIDTYPS || CSIOPTS
CSIFIELD = CSIFIELD || CSINUMEN || CSIFLD1 || CSIFLD2
CSIFIELD = CSIFIELD || CSIFLD3 || CSIFLD4

/********************************************************************/
/* INITIALIZE AND BUILD WORK ARE OUTPUT PART OF PARAMETER LIST */
/********************************************************************/
WORKLEN = 2**16-1
DWORK = RIGHT(D2C(WORKLEN),4,'00'X) || COPIES('00'X,WORKLEN-4)

/********************************************************************/
/* INITIALIZE WORK VARIABLES */
/********************************************************************/
RESUME = 'Y'
CATNAMET = SUBSTR(' ',1,44)
DNAMET = SUBSTR(' ',1,44)

/********************************************************************/
/* SET UP LOOP FOR RESUME (IF A RESUME IS NCESSARY) */
/********************************************************************/
DO WHILE RESUME = 'Y'

/********************************************************************/
/* ISSUE LINK TO CATALOG GENERIC FILTER INTERFACE */
/********************************************************************/
ADDRESS LINKPGM 'IGGCSI00 MODRSNRC CSIFIELD DWORK'
/* SAY 'LINKPGM IGGCSI00 RC=' RC */
RESUME = SUBSTR(CSIFIELD,150,1) /* GET RESUME FLAG FOR NEXT LOOP */
USEDLEN = C2D(SUBSTR(DWORK,9,4)) /* GET AMOUNT OF WORK AREA USED */
POS1=15 ; /* STARTING POSITION */
/*
SAY USEDLEN
SAY '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'
SAY LEFT(DWORK,USEDLEN);
SAY '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'
*/
/********************************************************************/
/* PROCESS DATA RETURNED IN WORK AREA */
/********************************************************************/
DO WHILE POS1 < USEDLEN /* DO UNTIL ALL DATA IS PROCESSED*/
IF SUBSTR(DWORK,POS1+1,1) = '0' /* IF CATALOG, PRINT CATALOG HEAD*/
THEN DO
CATNAME=SUBSTR(DWORK,POS1+2,44)
IF CATNAME <> CATNAMET THEN /* IF RESUME NAME MAY ALREADY BE*/
DO /* PRINTED */
/*
SAY 'CATALOG ' CATNAME /* IF NOT, PRINT IT */
SAY ' '
*/
CATNAMET = CATNAME
END
POS1 = POS1 + 50
END

DNAME = SUBSTR(DWORK,POS1+2,44) /* GET ENTRY NAME */

/********************************************************************/
/* ASSIGN ENTRY TYPE NAME */
/********************************************************************
S_TYPE = SUBSTR(DWORK,POS1+1,1)
SELECT ;
WHEN S_TYPE = 'C' THEN DTYPE = 'CLUSTER '
WHEN S_TYPE = 'D' THEN DTYPE = 'DATA '
WHEN S_TYPE = 'I' THEN DTYPE = 'INDEX '
WHEN S_TYPE = 'A' THEN DTYPE = 'NONVSAM '
WHEN S_TYPE = 'H' THEN DTYPE = 'GDS '
WHEN S_TYPE = 'B' THEN DTYPE = 'GDG '
WHEN S_TYPE = 'R' THEN DTYPE = 'PATH '
WHEN S_TYPE = 'G' THEN DTYPE = 'AIX '
WHEN S_TYPE = 'X' THEN DTYPE = 'ALIAS '
WHEN S_TYPE = 'U' THEN DTYPE = 'UCAT '
OTHERWISE DTYPE = ' '
END;
********************************************************************/
/* HAVE NAME AND TYPE, GET VOL INFO */
/********************************************************************/
POS1 = POS1 + 46
NUMVOL = C2D(SUBSTR(DWORK,POS1+4,2))/6 /* HOW MANY VOLS ? */
POS2 = POS1+6+2+2+2 /* POSITION ON DATA AFTER LENGTH */
DO I=1 TO 9 /* CLEAR ONLY 9 VOL FIELDS */
VOL.I = SUBSTR(' ',1,6) /* CSIFLD1 * 9 */
END
DO I = 1 TO NUMVOL /* MOVE VOLS TO OUTPUT FIELDS */
VOL.I = SUBSTR(DWORK,POS2,6)
POS2 = POS2 + 6 /* AFTER VOLUME NAME */
END
NOXTNT=0;
DO I = 1 TO NUMVOL /* MOVE VOLS TO OUTPUT FIELDS */
EXTNTS = C2D(SUBSTR(DWORK,POS2,1))
NOXTNT = NOXTNT + EXTNTS
POS2 = POS2 + 1 /* AFTER VOLUME NAME */
END
IF DNAMET <> DNAME /* IF RESUME, NAME MAY ALREADY */
THEN /* PRINTED - IF NOT, PRINT IT */
DO
IF NOXTNT= 0 THEN LEAVE /* GET OUT */
HIALRBA=C2D(SUBSTR(DWORK,POS2,8)) /* CSIFLD3 */
HIUSRBA=C2D(SUBSTR(DWORK,POS2+8,8)) /* CSIFLD4 */
QUEUE SUBSTR(DNAME,1,44) '-- #EXTNTS=' NOXTNT
QUEUE NUMVOL'-'VOL.1 VOL.2 VOL.3 VOL.4 VOL.5 VOL.6 VOL.7 VOL.8 VOL.9
QUEUE 'HI-A-RBA' HIALRBA
QUEUE 'HI-U-RBA' HIUSRBA
HIA = FORMAT(HIALRBA/(180*4096),,2)
HIU = FORMAT(HIUSRBA/(180*4096),,2)
QUEUE 'ALLOC_CYL=' HIA
QUEUE 'USED__CYL=' HIU
QUEUE ' '
DNAMET=DNAME
END
/********************************************************************/
/* GET POSITION OF NEXT ENTRY */
/********************************************************************/
POS1 = POS1 + C2D(SUBSTR(DWORK,POS1,2))
END
END

DSN1 = USERID()||".VSAMINFO.S"||RIGHT(TIME('L'),6)
"FREE F(OUT)"
"ALLOC F(OUT) DA('"DSN1"') NEW " ,
"UNIT(VIO) SPACE(5 5) TRACKS LRECL(80) BLKSIZE(8880) " ,
"RECFM(F B) DSORG(PS)"

"EXECIO " QUEUED() " DISKW OUT( FINIS ";

"ISPEXEC VIEW DATASET('"DSN1"') "
"FREE F(OUT)"

RETURN

Isaac Yassin

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] On Behalf

0 new messages