© serviceprofessionalgmbh

Mit dem folgenden Programm kann eine Liste von Dateinamen ermittelt werden. Die Suchqualifier können nach den Regeln wie unter ISPF-DSLIST-Utility (3.4) teilqualifiziert mit Wildcards angegeben werden. Das RETURN-Ergebnis ist eine Wortkette mit Dateinamen.

Wird der Funktion neben dem Suchkriterium als zweiter Parameter MITVOL mitgegeben, steht in der Wortkette jeweils hinter einem Dateinamen der Name des Datenträgers, auf dem er sich befindet. Ist eine Datei von HSM ausgelagert, wird an Stelle des Volumes ein Hinweis auf Migration ausgegeben (Migrate-1 oder Migrate-2).

/* REXX * DLST$E ******************************************************
*                                                                     *
*  Funktion: Ermittelt alle Dateinamen zu einem bestimmten Qualifier  *
*            und liefert abhaengig vom Parameter zurueck:             *
*            PARM___  WORTKETTE______________________________________ *
*            keine    dsn dsn ...                                     *
*            MITVOL   dsn vol dsn vol ... (ggfls Migrate-?)           *
*                                                                     *
** REXX **************************************************************/

parse source . PGMTYP PUAKTCMD .
address ispexec
"control errors return"
if PGMTYP = "FUNCTION" then arg QUALIFIER,PARM,DUMMY
else arg QUALIFIER PARM DUMMY

PULSTCMD = PUAKTCMD
PUAKTRC  = 0
PULSTRC  = 0
/*********************************************************************
* Gefundene DSNs werden als Wortkette in FOUND_DSN fortgeschrieben   *
*********************************************************************/
FOUND_DSN = ""
"lmdinit listid(LID) level("QUALIFIER")"
"lmdlist listid(&LID) dataset(SUCHDSN) stats(YES)"
do while RC = 0
   if ZDLVOL <> "*ALIAS" then do
      FOUND_DSN = FOUND_DSN SUCHDSN
      if PARM = "MITVOL" then do
         if ZDLVOL = "MIGRAT" then do
            DMY = outtrap(LISTC.)
            address tso "listc entry('"SUCHDSN"') ALL"
            DMY = outtrap("OFF")
            parse value word(LISTC.11,2) with . "'" HEX_STR "'"
            if HEX_STR = "78048083" then ZDLVOL = "Migrate-2"
            else ZDLVOL = "Migrate-1"
         end
         FOUND_DSN = FOUND_DSN ZDLVOL
      end
   end
   "lmdlist listid(&LID) dataset(SUCHDSN) stats(YES)"
end
"lmdfree listid(&LID)"
PULSTERG = FOUND_DSN
"vput (PUAKTCMD PULSTCMD PULSTMSG PULSTERG)"
if PGMTYP = 'COMMAND' then exit
return strip(PULSTERG)
zurück zu REXX mit Dialog Manager