Anwendungsgebiet: Datei-Informationen
Die Funktion IS-CATALOGED-FILE( ) prüft, ob es einen Katalogeintrag mit dem angegebenen Dateinamen gibt. Die Reaktion im Fehlerfall (ungültiger Dateiname usw.) kann vereinbart werden.
Format
IS-CATALOGED-FILE( ) IS-CAT-FILE( ) |
FILE = string_ausdruck ,ERROR-REPORTING = *PROC-ERROR-MECHANISM / *RETURN-FALSE ,ERROR-VARIABLE = *NONE / string_ausdruck |
Ergebnistyp
BOOLEAN
Eingabeparameter
FILE = string_ausdruck
Bezeichnet eine Datei, muss also dem SDF-Datentyp <filename 1...54 without-gen-vers> entsprechen.
Ein Dateiname ohne Katalog- und/oder Benutzerkennung wird nach den Regeln des DMS vervollständigt:
Fehlt die Benutzerkennung, wird die Benutzerkennung des laufenden Auftrags (d.h. die aus dem SET-LOGON-PARAMETERS-Kommando) eingesetzt.
Fehlt die Katalogkennung, wird der Default-Pubset der Benutzerkennung eingesetzt.
ERROR-REPORTING =
Es kann vereinbart werden, ob im Fehlerfall die Fehlerbehandlung ausgelöst oder ob der Meldungsschlüssel der Fehlermeldung in einer S-Variablen abgelegt wird.
ERROR-REPORTING = *PROC-ERROR-MECHANISM
Im Fehlerfall wird die Fehlerbehandlung ausgelöst, siehe Abschnitt „Fehlerbehandlung“.
ERROR-REPORTING = *RETURN-FALSE
Im Fehlerfall wird das Ergebnis FALSE ausgegeben. Eine Fehlermeldung wird nicht ausgegeben. In die bei ERROR-VARIABLE = ... angegebene Variable wird der Meldungsschlüssel der Fehlermeldung geschrieben.
ERROR-VARIABLE =
Es kann eine S-Variable für den Meldungsschlüssel vereinbart werden. Der Meldungsschlüssel wird nur dann in die Variable geschrieben, wenn im Funktionsaufruf ERROR-REPORTING = *RETURN-FALSE angegeben wurde.
ERROR-VARIABLE = *NONE
Es wird keine S-Variable vereinbart.
ERROR-VARIABLE = string_ausdruck
Name der S-Variablen, in die der Meldungschlüssel der Fehlermeldung geschrieben wird. Es ist Folgendes zu beachten:
Wird der Variablenname direkt angegeben, muss er in Hochkommas eingeschlossen sein. Anderenfalls wird der Inhalt der Variablen als Variablenname interpretiert.
In die S-Variable wird nur geschrieben, wenn ein Fehler auftritt (Ergebnis=FALSE) und ERROR-REPORTING=*RETURN-FALSE angegeben wurde. Beispiel für mögliche Meldungsschlüssel: SDP0439, SDP0440 oder DMSxxxx.
Tritt beim Schreiben in die S-Variable ein Fehler auf, werden die entsprechenden Fehlermeldungen unabhängig von der Angabe in ERROR-REPORTING nach SYSOUT ausgegeben und die S-Variable enthält keinen Rückgabewert.
Ergebnis
TRUE
Die im Parameter FILE bezeichnete Datei ist katalogisiert.
FALSE
Die im Parameter FILE bezeichnete Datei ist nicht katalogisiert oder beim Aufruf mit ERROR-REPORTING=*RETURN-FALSE ist ein Fehler aufgetreten.
Fehlermeldung
SDP0439 LAENGE DES DATEI-NAMENS NULL ODER GROESSER ALS 54 SDP0440 NAME '(&00)' KEIN DATEINAME ODER KEIN SPEZIFISCHER DATEINAME SDP0441 DVS-FEHLER '(&00)' BEIM AUFRUF DES FSTAT-MAKROS. IM SYSTEM-MODUS: /HELP-MSG (&00)
Beispiel 1
Eine Banddatei BAND.A soll gelesen werden. Zuvor muss geprüft werden, ob BAND.A schon katalogisiert ist oder ob BAND.A vor dem Importieren katalogisiert werden muss.
/IF (NOT IS-CATALOGED-FILE(FILE = 'BAND.A')) /IMPORT-FILE SUPPORT=*TAPE(FILE-NAME=BAND.A,DEVICE-TYPE=...,VOLUME=...) /END-IF
Beispiel 2
/DECLARE-VARIABLE NAME=(A(TYPE=*BOOL),B(TYPE=*STRING),C(TYPE=*BOOL)) /A = IS-CATALOGED-FILE(FILE='A_A',ERROR-REPORTING=*RETURN-FALSE,/ ERROR-VARIABLE='B') /C = IS-CATALOGED-FILE(FILE='A_A') / . . . /SET-JOB-STEP /SHOW-VARIABLE SELECT=*BY-ATTRIBUTES(INITIALIZATION=*ANY)
Ablaufprotokoll
% 1 1 /DECLARE-VARIABLE NAME=(A(TYPE=*BOOL), B(TYPE=*STRING), C(TYPE=*BOOL)) % 2 1 /A = IS-CATALOGED-FILE(FILE='A_A',ERROR-REPORTING=*RETURN-FALSE,ERROR- VARIABLE='B') % 3 1 /C = IS-CATALOGED-FILE(FILE='A_A') % SDP0440 NAME 'A_A' NOT A FILE NAME OR NOT A SPECIFIC FILE NAME % SDP0431 ERROR 'SDP0440' IN BUILTIN FUNCTION 'IS-CATALOGED-FILE' % SDP0239 ERROR DURING EVALUATION OF RIGHT SIDE OF ASSIGNMENT % SDP0004 ERROR DETECTED AT COMMAND LINE: 3 IN PROCEDURE ':R:$CSLTOM.PROC' % 5 1 /SET-JOB-STEP % 6 1 /SHOW-VARIABLE SELECT=*BY-ATTR(INIT=*ANY) A = FALSE B = SDP0440 C = *NO-INIT *END-OF-CMD