Wenn es denn CL sein soll...
Ich habe ein CHKACTJOB, das gibt über das API QUSCRTUS den entsprechenden Job mit Status und ein paar Attributen zurück...
Code:/* PROGRAM : CHKACTJOB */ /* SYSTEM : ISERIES */ /* */ /* CHECK IF A CERTAIN JOBNAME IS ACTIVE */ /* */ /* HOW TO EXECUTE : */ /* */ /* CALL CHKACTJOB PARM(&PRM_JBNAM &RC) */ /* WHERE &PRM_JBNAM IS THE JOBNAME YOU WANT TO CHECK */ /* AND &RC IS THE RESULTING RETURN CODE : */ /* '1' = ACTIVE */ /* '0' = NOT ACTIVE */ /* */ /* IF THE &DEBUG VARIABLE IS SET TO '1' THEN THIS */ /* PROGRAM LISTS ALSO ALL JOBS THAT ARE ACTIVE WITH */ /* THE SPECIFIED JOBNAME VIA A SNDPGMMSG COMMAND */ /* */ /* */ CHKACTJOB: PGM PARM(&PRM_JBNAM &RC) DCL VAR(&DEBUG) TYPE(*LGL) VALUE('1') /* 1 = + DEBUG */ /* PARAMETERS FOR THIS PROGRAM */ DCL VAR(&PRM_JBNAM) TYPE(*CHAR) LEN(10) /* + JOBNAME */ DCL VAR(&RC) TYPE(*CHAR) LEN(1) /* RETURN CODE + ('1' = JOB IS ACTIVE; '0' = JOB IS NOT + ACTIVE) */ /* API DATA FROM FORMAT JOBL0100 */ DCL VAR(&JOBNAME) TYPE(*CHAR) LEN(10) DCL VAR(&USER ) TYPE(*CHAR) LEN(10) DCL VAR(&JOBNBR ) TYPE(*CHAR) LEN(6) DCL VAR(&STATUS) TYPE(*CHAR) LEN(10) DCL VAR(&JOBTYPE) TYPE(*CHAR) LEN(1) DCL VAR(&SUBTYPE) TYPE(*CHAR) LEN(1) /* PARAMETERS FOR THE QUSCRTUS API */ DCL VAR(&USP_NAME) TYPE(*CHAR) LEN(10) /* USER + SPACE NAME */ DCL VAR(&USP_LIB) TYPE(*CHAR) LEN(10) /* USER + SPACE LIBRARY */ DCL VAR(&USP_QUAL) TYPE(*CHAR) LEN(20) /* USER + SPACE QUALIFIED NAME */ DCL VAR(&USP_TYPE) TYPE(*CHAR) LEN(10) /* USER + SPACE TYPE */ DCL VAR(&USP_SIZE) TYPE(*CHAR) LEN(4) /* USER + SPACE SIZE */ DCL VAR(&USP_FILL) TYPE(*CHAR) LEN(1) /* USER + SPACE FILL CHARACTER */ DCL VAR(&USP_AUT) TYPE(*CHAR) LEN(10) /* USER + SPACE AUTHORITY */ DCL VAR(&USP_TEXT) TYPE(*CHAR) LEN(50) /* USER + SPACE TEXT */ /* PARAMETERS FOR THE QUSRTVUS API */ DCL VAR(&STARTPOS) TYPE(*CHAR) LEN(4) DCL VAR(&DATALEN ) TYPE(*CHAR) LEN(4) DCL VAR(&HEADER) TYPE(*CHAR) LEN(150) /* PARAMETERS FOR THE QUSLJOB API */ DCL VAR(&API_USQUAL) TYPE(*CHAR) LEN(20) /* + QUALIFIED USER SPACE NAME */ DCL VAR(&API_JBQUAL) TYPE(*CHAR) LEN(26) /* + QUALIFIED JOBNAME */ DCL VAR(&API_JBNAM) TYPE(*CHAR) LEN(10) /* + JOBNAME */ DCL VAR(&API_USER) TYPE(*CHAR) LEN(10) /* USER */ DCL VAR(&API_JOBNR) TYPE(*CHAR) LEN(6) /* JOB + NUMBER */ DCL VAR(&API_ERROR) TYPE(*CHAR) LEN(256) /* API + ERROR */ DCL VAR(&API_STATUS) TYPE(*CHAR) LEN(10) /* + STATUS */ /* LIST DATA SECTION */ DCL VAR(&LST_OFFSET) TYPE(*DEC) LEN(5 0) /* + OFFSET OF FIRST DATA */ DCL VAR(&LST_SIZE) TYPE(*DEC) LEN(5 0) /* SIZE + OF DATA */ DCL VAR(&LST_DATA) TYPE(*CHAR) LEN(4096) DCL VAR(&LST_NBR) TYPE(*DEC) LEN(5 0) /* NUMBER + OF ENTRIES IN LIST DATA SECTION */ DCL VAR(&LST_LEN) TYPE(*DEC) LEN(5 0) /* ENTRY + LENGTH IN DEC */ DCL VAR(&LST_LENBIN) TYPE(*CHAR) LEN(4) /* ENTRY + LENGTH IN BINARY */ DCL VAR(&LST_POSBIN) TYPE(*CHAR) LEN(4) /* + POSITION OF LIST ENTRY IN BINARY */ /* VARIABLES */ DCL VAR(&LST_COUNT) TYPE(*DEC) LEN(5) VALUE(0) /* + COUNTER */ /* INITIALIZE RETURN CODE */ CHGVAR VAR(&RC) VALUE('0') /* CREATE USER SPACE */ CHGVAR VAR(&USP_NAME) VALUE('MYUSRSPACE') /* SET + USER SPACE NAME */ CHGVAR VAR(&USP_LIB) VALUE('QTEMP') /* SET USER + SPACE LIBRARY */ CHGVAR VAR(&USP_QUAL) VALUE(&USP_NAME *CAT + &USP_LIB) /* SET USER SPACE QUALIFIED NAME */ CHGVAR VAR(&USP_TYPE) VALUE('MYTYPE') /* SET USER + SPACE TYPE */ CHGVAR VAR(%BIN(&USP_SIZE)) VALUE(64000) /* SET + USER SPACE SIZE */ CHGVAR VAR(&USP_FILL) VALUE(' ') /* SET USER SPACE + FILL CHARACTER */ CHGVAR VAR(&USP_AUT) VALUE('*USE') /* SET USER + SPACE AUTHORITY */ CHGVAR VAR(&USP_TEXT) VALUE('MY USER SPACE') + /* SET USER SPACE TEXT */ CALL PGM(QUSCRTUS) PARM(&USP_QUAL &USP_TYPE + &USP_SIZE &USP_FILL &USP_AUT &USP_TEXT) /* EXECUTE API */ CHGVAR VAR(&API_USQUAL) VALUE(&USP_QUAL) /* USER + SPACE NAME */ CHGVAR VAR(&API_JBNAM) VALUE(&PRM_JBNAM) /* JOBNAME */ CHGVAR VAR(&API_USER) VALUE('*ALL') /* USER */ CHGVAR VAR(&API_JOBNR) VALUE('*ALL') /* JOB NUMBER */ CHGVAR VAR(&API_STATUS) VALUE('*ACTIVE') /* STATUS + OF THE JOB */ CHGVAR VAR(&API_JBQUAL) VALUE(&API_JBNAM *CAT + &API_USER *CAT &API_JOBNR) /* QUALIFIED + JOB NAME */ CHGVAR VAR(%BIN(&API_ERROR 1 4)) VALUE(0) CALL PGM(QUSLJOB) PARM(&API_USQUAL 'JOBL0100' + &API_JBQUAL &API_STATUS &API_ERROR) /* RETRIEVE HEADER DESCRIPTION INFORMATION */ CHGVAR VAR(%BIN(&STARTPOS)) VALUE(1) /* SET START + POSITION */ CHGVAR VAR(%BIN(&DATALEN)) VALUE(140) /* SET DATA + LENGTH */ CALL PGM(QUSRTVUS) PARM(&API_USQUAL &STARTPOS + &DATALEN &HEADER) /* RETRIEVE DATA IN LIST SECTION */ CHGVAR VAR(&LST_OFFSET) VALUE(%BIN(&HEADER 125 4)) CHGVAR VAR(&LST_SIZE) VALUE(%BIN(&HEADER 129 4)) CHGVAR VAR(&LST_NBR) VALUE(%BIN(&HEADER 133 4)) CHGVAR VAR(&LST_LEN) VALUE(%BIN(&HEADER 137 4)) CHGVAR VAR(%BIN(&LST_POSBIN)) VALUE(&LST_OFFSET + 1) CHGVAR VAR(&LST_LENBIN) VALUE(%SST(&HEADER 137 4)) /* RETRIEVE LIST DATA ENTRIES */ CHGVAR VAR(&LST_COUNT) VALUE(0) /* INITIALIZE + NUMBER OF LIST ENTRIES COUNTER */ LST_LOOP: IF COND(&LST_COUNT *EQ &LST_NBR) THEN(GOTO + CMDLBL(LST_END)) CALL PGM(QUSRTVUS) PARM(&API_USQUAL &LST_POSBIN + &LST_LENBIN &LST_DATA) CHGVAR VAR(&JOBNAME) VALUE(%SST(&LST_DATA 1 10)) CHGVAR VAR(&USER) VALUE(%SST(&LST_DATA 11 10)) CHGVAR VAR(&JOBNBR) VALUE(%SST(&LST_DATA 21 6)) CHGVAR VAR(&STATUS) VALUE(%SST(&LST_DATA 43 10)) CHGVAR VAR(&JOBTYPE) VALUE(%SST(&LST_DATA 53 1)) CHGVAR VAR(&SUBTYPE) VALUE(%SST(&LST_DATA 54 1)) /* TREATMENT OF 1 LIST ENTRY */ IF COND(&DEBUG) THEN(DO) SNDPGMMSG MSG('** JOB IDENTIFICATION **') SNDPGMMSG MSG('JOB NAME : ' *CAT &JOBNAME) SNDPGMMSG MSG('USER : ' *CAT &USER) SNDPGMMSG MSG('JOBNBR : ' *CAT &JOBNBR) SNDPGMMSG MSG('STATUS : ' *CAT &STATUS) SNDPGMMSG MSG('JOB TYPE : ' *CAT &JOBTYPE) SNDPGMMSG MSG('SUBTYPE : ' *CAT &SUBTYPE) ENDDO IF COND((&JOBNAME *EQ &PRM_JBNAM) *AND (&STATUS + *EQ *ACTIVE)) THEN(DO) CHGVAR VAR(&RC) VALUE('1') ENDDO /* END TREATMENT OF 1 LIST ENTRY */ CHGVAR VAR(&LST_COUNT) VALUE(&LST_COUNT + 1) CHGVAR VAR(%BIN(&LST_POSBIN)) + VALUE(%BIN(&LST_POSBIN) + &LST_LEN) GOTO CMDLBL(LST_LOOP) LST_END: DLTUSRSPC USRSPC(&USP_LIB/&USP_NAME) END: ENDPGM
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks