Sign in

docs Examples

endalljobc

endalljobc

PGM        parm(&job)
 DCL        &job *char 10
 DCL        &USR *CHAR 10
 DCL        &NBR *CHAR  6
 DCL        &MSGDTA *CHAR 26
 DCL        &MSGID *CHAR 7
 MONMSG     CPF0000 exec(goto error)


 ENDJOB     JOB(&JOB) OPTION(*IMMED) DUPJOBOPT(*MSG)
  monmsg     cpf1332 exec(do) /* Duplicate Job */
   RCVMSG     PGMQ(*SAME (*)) MSGDTA(&MSGDTA) MSGID(&MSGID)
   DOWHILE    COND(&MSGID *NE 'CPF1332')
     IF         (&MSGID = 'CPF0906') THEN(DO)
       /* User & nbr are in MSGDTA  */
       CHGVAR     &USR %SST(&MSGDTA 11 10)
       CHGVAR     &NBR %SST(&MSGDTA 21 6)
       ENDJOB     JOB(&NBR/&USR/&JOB) OPTION(*IMMED)
         monmsg     CPF1300
     ENDDO

   RCVMSG     PGMQ(*SAME (*)) MSGDTA(&MSGDTA) MSGID(&MSGID)
   ENDDO
  ENDDO
  SNDPGMMSG  MSG('Job(s)' *bcat &job *bcat 'ended') TOPGMQ(*PRV (*)) MSGTYPE(*COMP)   
 return

error:
  SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Unable to end job' *BCAT &job) + 
             TOPGMQ(*PRV (*)) MSGTYPE(*ESCAPE)
ENDPGM