REXX PROGRAM TO DETERMINE IF A JOB IS ACTIVE

/* REXX */
/* REXX PROGRAM TO DETERMINE IF A JOB IS ACTIVE. */
/* PARAMETERS: JOB NAME */
/* JOB NUMBER */
/* USER */
/* RETURNS: "1" ACTIVE , "0" NOT ACTIVE */
/*********************************************************************/
PARSE ARG JOB_NAME USER JOB_NUMBER
BUFFER = 0
'ADDREXBUF BUFFER(&BUFFER)'
/* CREATE ACTIVE JOB LISTING. */
'WRKACTJOB OUTPUT(*PRINT)'
/* CREATE TEMPORARY WORK FILE TO STORE SPOOLED FILE OUTPUT  */
'CHKOBJ QTEMP/ACTJOBLST *FILE'
IF RC ¬= '0' THEN
'CRTPF QTEMP/ACTJOBLST RCDLEN(132)'
/*COPY THE LAST SPOOLED FILE FROM WRKACTJOB TO THE TEMPORARY WORK
FILE.*/
'CPYSPLF FILE(SCMDH71) TOFILE(QTEMP/ACTJOBLST) SPLNBR(*LAST)'
/*COPY THE WRKACTJOB OUTPUT FROM QTEMP TO THE REXX QUEUE.*/
'CPYFTOREXQ FROMFILE(QTEMP/ACTJOBLST) MBR(ACTJOBLST)'
 DO QUEUED()
 PARSE PULL ACT_JOB_NAME ACT_USER ACT_JOB_NUMBER REST
 /* IF ACTIVE JOB IS SAME AS ARGUMENT, THEN RETURN 1.*/
 IF JOB_NAME = ACT_JOB_NAME & JOB_NUMBER = ACT_JOB_NUMBER & ,
 USER = ACT_USER THEN DO
 /* REMOVE BUFFER FROM THE REXX DATA QUEUE.*/
 'RMVREXBUF BUFFER(&BUFFER)'
 EXIT(1)
 END
 END
/* REMOVE BUFFER FROM THE REXX DATA QUEUE.*/
'RMVREXBUF BUFFER(&BUFFER)'
/* NO ACTIVE JOB FOUND ON QUEUE.*/
EXIT(0)

Comments

Popular posts from this blog

Date/time constants in JCL

JCL ABeND --

IEBGENER usage examples