星期四, 11月 02, 2023

2002-07-15 如何檢查 IFS 檔案是否存在 (Command CHKOBJLNK) ?


如何檢查 IFS 檔案是否存在 (Command CHKOBJLNK) ?

由於現在有許多的應用軟體(HTTP power by Apache,Websphere 系列產品,Java等,你可以使用 WRKLNK 檢視有哪些路徑)會採用 AS/400 中的
IFS 檔案架構(與 PC windows 檔案架構類似),所以有時會將檔案寫入 IFS 檔案,所以需
要檢查檔案是否存在,你可以使用下列指令檢查:


File  : QCLSRC
Member: CHKOBJLNKC
Type  : CLP
Usage : CRTCLPGM PGM(CHKOBJLNK)


/*  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 


File  : QCMDSRC
Member: CHKOBJLNK
Type  : CMD
Usage : CRTCMD CMD(CHKOBJLNK) PGM(CHKOBJLNKC)
        於 CLP 中使用指令 CHKOBJLNK OBJ(xxx) OBJERROR(&OBJERROR)
        此指令會回傳值'1'表物件不存在,'0'表物件存在
        


/*  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')




沒有留言: