Browse check output from the CK panel

Using ISFEXEC, access the CK panel with the E parameter, which requests only exception checks. For the RACF_GRS_RNL check on SY1, which found an exception, use ISFACT to issue the S action to browse the check. Browsing a check causes the ISFLINE special variable stem variables to be created. List the contents of ISFLINE.

/* REXX */                                              
rc=isfcalls('ON')                                       
     /* Access the CK panel and filter by exceptions */ 
Address SDSF "ISFEXEC CK E"                             
lrc=rc                                                  
call msgrtn 
if lrc<>0 then                                            
  exit 20                                                    
found=0                                                      
     /* Find the RACF_GRS_RNL check that is running on SY1 */
do ix=1 to NAME.0 while found=0                              
  if NAME.ix = "RACF_GRS_RNL" & SYSNAME.ix = "SY1" then      
    do                                                       
      found=1                                                
      /* Issue the S action against the check.  This will */ 
      /* return the check output in the isfline stem.     */ 
      Address SDSF "ISFACT CK TOKEN('"TOKEN.ix"') PARM(NP S)"
      lrc=rc                                                 
      call msgrtn                                            
      if lrc<>0 then                                         
        exit 20                                              
      /* List each line of check output */                   
      do jx=1 to isfline.0                                   
        Say "Check line" jx":" isfline.jx                    
      end                                                    
    end                                                      
end                                                         
 if found=0 then                                        
  say "Check not found"                                
 rc=isfcalls('OFF')                                     
exit                                                   
     /* Subroutine to list error messages */           
msgrtn: procedure expose isfmsg isfmsg2.               
     /* The isfmsg variable contains a short message */
if isfmsg<>"" then                                      
  Say "isfmsg is:" isfmsg                                  
     /* The isfmsg2 stem contains additional descriptive */
     /* error messages                                   */
do ix=1 to isfmsg2.0                                       
  Say "isfmsg2."ix "is:" isfmsg2.ix                        
end                                                        
return