Use of Conditional Logic to Test Highest Return Code with %MAXRC in z/OS

CDRESET  PROCESS SNODE=CD.SNODE &USERID=%USER
*
* This Process illustrates how the MAXRC variable could be used to test
* the highest return code of all steps and the use of the utility
* DGADWAIT to reset the MAXRC value to zero.
*
LOC    RUN TASK (PGM=DGADTDYN -        
        PARM=(C'LOCATE DSN=CDZ.TCPIP.DATA.FILE.OUT'))   
    IF (LOC EQ 8) THEN
RES    RUN TASK (PGM=DGADWAIT PARM=('%MAXRC,0')) PNODE   
        EIF
PUSH  COPY  FROM (DSN=CDZ.TCPIP.DATA.FILE   -         
        DISP=(SHR)  -         
        PNODE) -             
            TO  (DSN=CDZ.TCPIP.DATA.FILE.OUT  -         
        DISP=(RPL)               -         
        SNODE)
PULL  COPY  FROM (DSN=CDZ.TCPIP.DATA.FILE   -         DISP=(SHR)  
        -         SNODE) -             TO  
          (DSN=CDZ.TCPIP.DATA.FILE.OUT  
        -         DISP=(RPL)               -    
                  PNODE)   
        IF (%MAXRC GT 0) THEN
NOGOOD RUN TASK    (PGM=DMNOTFY2                                 -    
        PARM=(CL4'FAIL',C'NOT GOOD ON PNODE',&USERID)) PNODE   
    ELSE
GOOD  RUN TASK    (PGM=DMNOTFY2                                 -        
       PARM=(CL4'GOOD',C'GOOD ON PNODE',&USERID)) PNODE   
    EIF