
Ved Renden 31 2870 Dyssegaard Tel. +45 23 34 54 43
| 
MainframeSupports tip uge 11/2005:
DSLIST har lige så længe jeg kan huske tilbage givet mulighed for at lave
sine egne liniekommandoer. Jeg vil i det følgende præsentere liniekommandoen
II, som du får svært ved at undvære, selv om du måske ikke ligefrem savnede
den.
Det er uhyre enkelt at lave en liniekommando til DSLIST. Du laver simpelthen
en REXX med det navn, som liniekommandoen skal have. Her skal du lige sikre dig,
at liniekommandoen ikke findes i forvejen. Det gør II eksempelvis ikke. Din
REXX bliver så eksekveret, når du skriver dens navn som liniekommando ud for
et dataset i DSLIST. Selve datasetnavnet får du fat i med en ARG DSNAME. DSNAME
vil herefter indeholde datasetnavnet omgivet af plinger (').
Det var det generelle. Lad mig nu vise dig et konkret eksempel. Hvis du i
DSLIST benytter liniekommandoen I ud for et ikke-VSAM dataset, så får du et
kendt panel op med alle mulige informationer om datasettets allokering. I virker
også ud for et VSAM dataset, men du bliver ført igennem en komplet umulig
dialog, der efter megen besvær ender med at du får udstedt en LISTCAT mod
datasettet. Men var det ikke bare tusind gange lettere med følgende REXX kaldet
II:
/* REXX: II */
ARG DSNAME
DSNAME = STRIP(DSNAME, 'BOTH', '''')
LISTDD = 'LISTCAT0'
CALL MSG('OFF')
ADDRESS TSO "ALLOCATE FILE("LISTDD") UNIT(VIO) BLOCK(4096) REUSE"!!,
" SPACE(1) BLKSIZE(4089) LRECL(125) RECFM(V B)"
IF RC = 0
THEN DO
ADDRESS TSO "LISTCAT ENTRIES('"DSNAME"') ALL OUTFILE("LISTDD")"
IF RC = 0
THEN DO
ADDRESS ISPEXEC "LMINIT DATAID(LISTID) DDNAME("LISTDD")"
IF RC = 0
THEN DO
ADDRESS ISPEXEC "VIEW DATAID("LISTID")"
ADDRESS ISPEXEC "LMFREE DATAID("LISTID")"
END
END
ELSE
CALL ISPF_MESSAGE 'DATASET DELETED',,
'DATASET 'DSNAME' DELETED BY ANOTHER USER.'
ADDRESS TSO "FREE FILE("LISTDD")"
END
ELSE
CALL ISPF_MESSAGE 'ALLOCATION ERROR',,
'ALLOC FAILED WITH RC='RC
EXIT
Når du bruger II som liniekommando ud for et dataset vil du få vist
resultatet af en LISTCAT ALL for det pågældende dataset. Det er ikke særligt
informativt for ikke-VSAM dataset, men ud for VSAM dataset gør det pokkers til
forskel i forhold til I liniekommandoen. Om du vil benytte VIEW eller BROWSE til
at vise resultatet er en smagssag. Ovenstående REXX virker kun i een split session
under ISPF, så du må selv finde på en metode til at få II til at virke samtidigt
i to eller flere split sessioner.
Forrige danske tip
Last tip in english
Tip oversigten
|