Checking object Existence in CL |
Check Object (CHKOBJ) command?
The Check Object (CHKOBJ) command checks object existence and verifies the user's authority for the object before trying to access it. You can use this command at any place in a procedure or program.
Check Object (CHKOBJ) Type choices, press Enter. Label . . . . . . . . . . . . . Object . . . . . . . . . . . . . OBJ > CLPF1 Library . . . . . . . . . . . > EASYCLASSG Object type . . . . . . . . . . OBJTYPE > *FILE Member, if data base file . . . MBR *NONE Authority . . . . . . . . . . . AUT *NONE + for more values Comment . . . . . . . . . . . .
OBJ Specifies the qualified name of the object being checked. Here, object named CLPF1. If no library name is given, *LIBL is used to find the object. But here, my library EASYCLASSG. OBJTYPE defines the object type of the system object being checked. Enter the predefined value that specifies the object type. MBR Specifies which logical file member is checked, when checking data authorities. *NONE: Database file members are not checked, but the existence and (optionally) the authority of the file are checked. AUT Specifies the authority being checked. *NONE: The user's authority is not checked.
Check Object Existence in CL Program
PGM DCL VAR("E) TYPE(*CHAR) LEN(1) VALUE('''') DCL VAR(&Msg) TYPE(*CHAR) LEN(20) CHKOBJ OBJ(EASYCLASS1/CLPF10) OBJTYPE(*FILE) MONMSG MSGID(CPF9801) EXEC(SNDPGMMSG MSG('OBJECT + NOT FOUND')) CHKOBJ OBJ(EASYCLASSG/CLPF1) OBJTYPE(*FILE) MONMSG MSGID(CPF9810) EXEC(SNDPGMMSG MSG('LIBRARY + NOT FOUND')) /* CPF9815(Member not found) etc(CF9803) -> Cannot allocate */ ENDPGM
Explanation:
CHKOBJ OBJ(EASYCLASS1/CLPF10) OBJTYPE(*FILE) MONMSG MSGID(CPF9801) EXEC(SNDPGMMSG MSG('OBJECT + NOT FOUND'))
Here, we monitor message CPF9801 which means "Object &2 in library &3 not found." Here, object named CLPF10 does not exists in library EASYCLASS1 of type *FILE.
CHKOBJ OBJ(EASYCLASSG/CLPF1) OBJTYPE(*FILE) MONMSG MSGID(CPF9810) EXEC(SNDPGMMSG MSG('LIBRARY + NOT FOUND'))
Here, we monitor message CPF9810 which means "Library &1 not found." Here, Library named EASYCLASSG not found.
Note:We can monitor other messages as well for CHKOBJ command such as CPF9815(Member &5 file &2 in library &3 not found) etc.