Friday, January 17, 2020

REXX: Removing Junk Character in dataset using REXX

/* REXX */           
ADDRESS ISREDIT      
"MACRO"              
"C ALL P'.' ' '"     



Save this rexx under remjunk and run it over a dataset to replace all junk characters with spaces.

REXX: Reading JOB Status using REXX

/* REXX */                                                              
X = OUTTRAP('SLINE.')                                                   
"STATUS <JOBNAME> <JOBID>"                                                       
D = OUTTRAP("OFF")                                                      
count = 0                                                               
DO I = 1 TO SLINE.0                                                     
   SAY SLINE.I                                                          
     PARSE VAR SLINE.I JOBHOLDER NAME MESSAGE                           
      STRT_POS     =  POS("(",NAME,1)                                   
      END_POS      =  POS(")",NAME,1)                                   
      LENG_NAM     =  STRT_POS - 1                                      
      STRT_POSID   =  STRT_POS + 1                                      
      LENG_JOBID   =  END_POS - STRT_POSID                              
      JOBNAM       =  SUBSTR(NAME,1,LENG_NAM)                           
      JOBID        =  SUBSTR(NAME,STRT_POSID,LENG_JOBID)                
      IF MESSAGE = "EXECUTING" THEN                                     
          DO                                                            
            SAY " ONLY JOBS ON OUTPUT CAN BE BROWSED "JOBID" "MESSAGE   
          END                                                           
      IF MESSAGE = "ON OUTPUT QUEUE"   THEN                             
          DO                                                            
            COUNT = COUNT + 1                                           
          END                                                           
      IF MESSAGE = "NO JOBS FOUND" THEN                
          DO              
            SAY MESSAGE   
            RETURN        
          END             
END                       

EXIT                      

                 
Note: Replace JOBNAME and JOBID in the rexx and execute to see the results.

You may also ignore JOBID to get the list of all jobs with that job. 

"STATUS <JOBNAME>"

REXX: Setting dataset profile using REXX MACRO

/* REXX */                            
ADDRESS ISREDIT                       
"MACRO (PARM)"                        
PARM = TRANSLATE(PARM)                
IF PARM = "COBOL" ! PARM = "" THEN    
DO                                    
   "HI COBOL"                         
   "STATS ON"                         
   "CAPS OFF"                         
END                                   
IF PARM = "REXX" THEN                 
DO                                    
   "HI REXX"                          
   "STATS ON"                         
   "CAPS OFF"                         
END                                   
IF PARM = "JCL" THEN                  
DO                                    
   "HI JCL"                           
   "STATS ON"                         
   "CAPS OFF"                         
END     
EXIT               

Save this REXX macro as SETPROF.

Examples:

To set the profile for JCL :  TSO SETPROF JCL
To set the profile for REXX : TSO SETPROF REXX
To set the profile for COBOL : TSO SETPROF (or) TSO SETPROF COBOL

Executing this macro without any parameters would set the profile for COBOL. 

Featured Post

REXX Skeleton: Submitting jobs through Rexx

Submitting jobs through REXX and reading the spool through REXX gives us immense potential to automate many manual activities in mainframes....