Check for IFS object (link)
Check for the existence of an object (link) before attempting to use it.
With the use of the AS/400 (iSeries) Integrated File System (IFS) becoming more widely spread, wouldn't it be nice to be able to check for the existence of an object (link) before attempting to use it? Here's how I did it.
CL program CHKOBJLNKC:
/* CHECK OBJECT LINK */ PGM PARM(&OBJ &OBJERROR) DCL VAR(&OBJ) TYPE(*CHAR) LEN(512) DCL VAR(&OBJERROR) TYPE(*LGL) DCL VAR(&OFF) TYPE(*LGL) VALUE('0') DCL VAR(&ON) TYPE(*LGL) VALUE('1') DCL VAR(&SPLF) TYPE(*CHAR) LEN(10) VALUE(CHKOBJLNK) /* TURN ERROR FLAG OFF */ CHGVAR VAR(&OBJERROR) VALUE(&OFF) /* CHECK TO SEE IF THE OBJECT EXISTS */ OVRPRTF FILE(*PRTF) HOLD(*YES) SPLFNAME(&SPLF) + OVRSCOPE(*CALLLVL) DSPLNK OBJ(&OBJ) OUTPUT(*PRINT) OBJTYPE(*ALL) + DETAIL(*BASIC) DSPOPT(*USER) MONMSG MSGID(CPFA0A9) EXEC(CHGVAR VAR(&OBJERROR) + VALUE(&ON)) /* DELETE THE SPOOL FILE */ DLTSPLF FILE(&SPLF) SPLNBR(*LAST) MONMSG MSGID(CPF0000) ENDPGM
Command CHKOBJLNK:
/* CHECK OBJECT LINK */ CMD PROMPT('Check object link') PARM KWD(OBJ) TYPE(*PNAME) LEN(512) MIN(1) + PROMPT('Object Link to check') PARM KWD(OBJERROR) TYPE(*LGL) RTNVAL(*YES) + PROMPT('Object error')
Compile the CL program CHKOBJLNKC. Then compile the command CHKOBJLNK -- specifying PGM(CHKOBJLNKC) on the compile options. Now you have a simple command to call wherever you want to check for the existence of an IFS object.
==================================
MORE INFORMATION ON THIS TOPIC
==================================
The Best Web Links: tips, tutorials and more.
Ask your programming questions--or help out your peers by answering them--in our live discussion forums.
Ask the Experts yourself: Our application development gurus are waiting to answer your programming questions.