Previous Topic: Using JCLNext Topic: Generating CA Earl Reports on zVM


Using a CLIST

You can also use the following CLIST to run CA Earl. You can find this CLIST, named ACFEARL, in the CAI.CAICLIB dataset.

PROC 02 LIB PGM OUT(*) UNIT(SYSDA) ‑    
               PGMLIB() FLT() MLIB()                                           
/*                                                                      
/*                                                                      
/* CLIST ALLOCATES ALL FILES NECESSARY                                  
/* AND THEN RUNS EARL                                                   
/*                                                                      
/* THE FOLLOWING PARAMETERS ARE NECESSARY:                              
/*                                                                      
/* POSITIONAL PARAMETERS:  LIB, PGM                                     
/*                                                                      
/*   LIB:  SPECIFIES THE LIBRARY CONTAINING THE CA‑EARL                 
/*         REPORT PROGRAM.                                              
/*   PGM:  SPECIFIES THE CA‑EARL REPORT PROGRAM THAT IS TO BE           
/*         RUN.                                                         
/*                                                                      
/* KEYWORD PARAMETERS:  PGMLIB, OUT, MLIB, UNIT, FLT                    
/*                                                                      
/*   PGMLIB:  OPTIONAL, NAMES THE EXECUTION LOAD LIBRARY OUT OF         
/*         WHICH THE EARL PROGRAM WILL BE EXECUTED.  SPECIFY A          
/*         FULLY QUALIFIED DATASET NAME.  IF NULL OR BLANK,             
/*         THE SYSTEM LINKLIST WILL BE USED (THIS IS THE PREFERRED      
/*         APPROACH SINCE EARL IS NORMALLY INSTALLED INTO THE           
/*         CAI.CAILIB DATASET WHICH IS PART OF THE SYSTEM LINKLIST).    
/*   OUT:  OPTIONAL, SPECIFIES THE OUTPUT SYSOUT CLASS.  THE DEFAULT    
/*         IS OUT(*), WHICH WILL WRITE THE OUTPUT TO THE TERMINAL.      
/*   FLT:  SPECIFIES THE NAME OF THE INPUT FLAT FILE.  SPECIFY A        
/*         FULLY QUALIFIED DATASET NAME.                                
/*   UNIT: OPTIONAL, SPECIFIES THE UNIT NAME FOR ALLOCATING             
/*         TEMPORARY WORK FILES NEEDED TO EXECUTE THE EARL              
/*         PROGRAM.  THE DEFAULT VALUE IS SYSDA.                        
/*   MLIB: SPECIFIES THE CA‑EARL MACRO COPY LIBRARY TO RESOLVE          
/*         ANY INCLUDED CA‑EARL MACROS OR RECORD LAYOUTS.  YOU          
/*         MUST SPECIFY A FULLY‑QUALIFIED DATASET NAME.                 
/*                                                                      
/*==================================================================/*  
/*                                                                  /*  
/* MAINTENANCE LOG ‑ CA ACF2 MVS RELEASE 6.4                        /*  
/*                                                                  /*  
/* TA4373C 09/28/00  Z0011                                          /*  
/*         ADJUST ACFEARL CLIST TO:                                 /*  
/*         ‑ DEFAULT TO USE OF SYSTEM LINKLIST FOR PGMLIB IF NONE   /*  
/*           SPECIFIED                                              /*  
/*         ‑ ADJUST LIB PARAMETER USAGE TO ACCEPT QUALIFIED OR      /*  
/*           UNQUALIFIED DATASET NAME.                              /*  
/*                                                                  /*  
/* TA4103D 09/29/00  Z0018                                          /*  
/*         IEC141I 013‑20 ON SORTIN FILE RUNNING EARL FROM ISPF     /*  
/*                                                                  /*  
/*==================================================================/*  
/*                                                                      
CONTROL NOMSG                                                           
FREE F(SYSPRINT SYSUT1 SYSUT2 SYSUT3 SYSUT4 SORTIN SORTOUT ‑            
      EARLLIB ACFFLT  SYSUT5 SYSUT6 SYSIN EARLOBJ WORK1 ‑               
      SORTWK01 SORTWK02 SORTWK03  SYSOUT)                               
CONTROL MSG LIST                                                        
CONTROL MSG SYMLIST CONLIST                                             
ALLOC F(ACFFLT) DA('&FLT') SHR                                          
ALLOC F(EARLLIB) DA('&MLIB') SHR                                        
ALLOC F(SYSOUT) DS(&OUT)                                                
ALLOC F(SYSPRINT) DA(*)                                                 
ALLOC F(SYSUT1) NEW UNIT(&UNIT) SPACE(60,15) DELETE                     
ALLOC F(SYSUT2) NEW UNIT(&UNIT) SPACE(7,10) DELETE                      
ALLOC F(SYSUT3) NEW UNIT(&UNIT) SPACE(7,10) DELETE                      
ALLOC F(SYSUT4) NEW UNIT(&UNIT) SPACE(7,10) DELETE                      
ALLOC F(SYSUT5) NEW UNIT(&UNIT) SPACE(7,10) DELETE                      
ALLOC F(SYSUT6) NEW UNIT(&UNIT) SPACE(100,10)  DELETE                   
ALLOC F(EARLOBJ) NEW UNIT(&UNIT) SPACE(100,50) DELETE                   
ALLOC F(SORTIN) NEW UNIT(&UNIT) SPACE(100,50)  DELETE                   
ALLOC F(SORTOUT) NEW UNIT(&UNIT) SPACE(100,50)  DELETE                  
ALLOC F(SORTWK01) NEW UNIT(&UNIT) SPACE(100,50)  DELETE                 
ALLOC F(SORTWK02) NEW UNIT(&UNIT) SPACE(100,50)  DELETE                 
ALLOC F(SORTWK03) NEW UNIT(&UNIT) SPACE(100,50)  DELETE                 
ALLOC F(WORK1) NEW UNIT(&UNIT) SPACE(100,50)  DELETE                    
SET &LEFTPAR = &STR((                                                   
SET &RGHTPAR = )                                                        
SET &QUOTE   = &STR(')                                                  
/* PROCESS LIB DATASET NAME */                                          
IF &STR(&SUBSTR(1,&LIB)) = &STR(&QUOTE) THEN DO                         
  SET &PGMDSN=&STR(&SUBSTR(2:&LENGTH(&LIB)‑1,&LIB))                     
  SET &RPTDSN=&STR(&QUOTE)&PGMDSN&STR(&LEFTPAR)&PGM&STR(&RGHTPAR)+      
      &STR(&QUOTE)                                                      
  END                                                                   
ELSE DO                                                                 
  SET &PGMDSN=&LIB                                                      
  SET &RPTDSN=&LIB&STR(&LEFTPAR)&PGM&STR(&RGHTPAR)                      
END                                                                     
ALLOC F(SYSIN)   DA(&RPTDSN) SHR                                        
ALLOC F(SORTLIB) DA('SYS1.SORTLIB') SHR                                 
/* CONTROL NOMSG NOFLUSH */                                             
/* PROCESS PGMLIB DATASET NAME                             */           
/* IF MISSING, DEFAULT TO USE "*", MEANING, USE THE SYSTEM */           
/* LINKLIST TO RESOLVE THE PROGRAM NAME                    */           
SET &BOZO = &STR(&PGMLIB)                                               
IF &STR(&PGMLIB) = '' OR &STR(&PGMLIB) = ' ' +                          
  OR &STR(&PGMLIB) = THEN DO                                            
  SET &PROG = &STR(*)&STR(&LEFTPAR)&STR(EARL)&STR(&RGHTPAR)             
  END                                                                   
ELSE +                                                                  
  SET &PROG = &STR(&QUOTE)&PGMLIB&STR(&LEFTPAR)&STR(EARL)+              
      &STR(&RGHTPAR)&STR(&QUOTE)                                        
CALL  &PROG                                                             
END