SYSDSN - Data Set Pruefung

REXX TSO und MVS Built-In Funktionen

Syntax:                                 
SYSDSN(dataset)

/* REXX SYSDSN Copyright YCOS Yves Colliard Software 1990-2009 */
/* TRACE ?R  */
  /* einschalten des interaktiven Trace Modus */
  /* */
ds.1 = "'SYS1.LINKLIB'"
ds.2 = "'SYS1.LINKLIB(YCOSGMBH)'"
ds.3 = "'SYS1.LINKLIB(IEFBR14)'"
ds.4 = "'%$%$%$%$%$%$'"
ds.5 = ""
  /* */
do i=1 while ds.i<>"DS."i
  say YDSN(ds.i)
end
  /* */
exit
  /* */
ydsn: procedure
if ARG()<>1 then return "Parameter Error"
info = SYSDSN(ARG(1))
select
when left(info,11)="OK"          then do
  zus="OK"
end
when left(info,11)="MEMBER NOT " then
  zus="Member nicht gefunden"
end
when left(info,11)="MEMBER SPEC" then do
  zus="Member angegeben jedoch keine PO"
end
when left(info,11)="DATASET NOT" then do
  zus="Dataset nicht gefunden"
end
when left(info,11)="ERROR PROCE" then do
  zus="Fehler"
end
when left(info,11)="PROTECTED D" then do
  zus="Dataset geschuetzt - RACF"
end
when left(info,11)="VOLUME NOT " then do
  zus="Dataset auf einen nicht verfuegbaren Volume"
end
when left(info,11)="INVALID DAT" then do
  zus="Dataset Name nicht valid"
end
when left(info,11)="MISSING DAT" then do
  zus="Dataset Name fehlt"
end
when left(info,11)="UNAVAILABLE" then do
  zus="Dataset Name nicht verfuegbar - ENQUEUE"
end
otherwise
  zus="Fehler unbekannt"
end
return arg(1)"/"info"/"zus
/* */