Previous Topic: Sample Source ProgramNext Topic: Sample Report Output


Sample Source Listing

The following sample of the RPTPW source listing is how it appears to the CA Earl processor as it runs the program. The COPY statements are shown with their specific description fields. The HDRECORD, PRECORD, and RCTAB records, shown in this sample, are packaged with CA ACF2. When you become comfortable with customizing CA Earl reports, you can create your own definition records to be called in with COPY statements.

Use this sample as a reference to compare source program changes.

  1     NOTE *‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑*
  2     NOTE * THIS EARL PROGRAM IS BASED ON THE CA ACF2 PW REPORT 
  3     NOTE *‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑*
  4
  5      OPTION PRINTER=80
  6      OPTION LIST ON
  7
  8     NOTE *‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑*
  9     NOTE * CHANGE LOG:                                            *
 10     NOTE *                                                        *
 11     NOTE * RELEASE: 6.4                                           *
 12     NOTE *                                                        *
 13     NOTE * TA3985D  07/14/00  Z0012                               * TA3985D
 14     NOTE *          INCREASED RECORD LENGTH OF ACFSMFR FILE       * TA3985D
 15     NOTE *          FOR LONGER OMVS SMF RECORDS.                  * TA3985D
 16     NOTE *                                                        *
 17     NOTE * END OF LOG.                                            *
 18     NOTE *                                                        *
 19     NOTE *‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑*
 20
 21     NOTE *‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑*
 22     NOTE * TO USE SRAM SORT REMOVE NOTE BELOW                *
 23     NOTE *‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑*
 24     NOTE OPTION SORT=SRAM
 25
 26      ACFFLT: FILE ACFSMFR RECORD=23756                            ! TA3985D
 27
 28     COPY HDRECORD
 30   1                                                                  HDR00010
 31   1   NOTE EARL FLAT FILE ‑ COMMON HEADER FIELDS                     HDR00020
 32   1    DEF RDW        1‑4     X 'RDW'                                HDR00030
 33   1    DEF INDICATOR  5       X 'FLAT' 'IND'                         HDR00040
 34   1    DEF RECTYPE    6       X 'REC' 'TYPE'                         HDR00050
 35   1    DEF SEQUENCE   7       X 'SEQ' 'NUM'                          HDR00060
 36   1    DEF OPSYSTEM   8       X 'OPERATING' 'SYSTEM'                 HDR00070
 37   1    DEF HRESERV1   9       X                                      HDR00080
 38   1                                                                  HDR00090
 39   1   NOTE TIME TO 100THS OF A SECOND                                HDR00100
 40   1    DEF TIME100   10‑17    N 'TIME'                               HDR00110
 41   1    DEF TIME      10‑13    N 'TIME'         PICTURE 'Z9.99'       HDR00120
 42   1                                                                  HDR00130
 43   1   NOTE REDEFINE TIME FIELD INTO SMALLER COMPONENTS               HDR00140
 44   1    DEF HOUR      10‑11    N 'TIME‑HH'                            HDR00150
 45   1    DEF MINUTE    12‑13    N 'TIME‑MM'                            HDR00160
 46   1    DEF SECOND    14‑15    N 'TIME‑SS'                            HDR00170
 47   1    DEF DATE      18‑23    N 'DATE' PIC '99‑99‑99'                HDR00180
 48   1                                                                  HDR00190
 49   1   NOTE REDEFINE DATE FIELD INTO SMALLER COMPONENTS               HDR00200
 50   1    DEF MONTH     18‑19    N 'DATE‑MM'                            HDR00210
 51   1    DEF DAY       20‑21    N 'DATE‑DD'                            HDR00220
 52   1    DEF YEAR      22‑23    N 'DATE‑YY'                            HDR00230
 53   1    DEF FCTCODE   24       U 'FUNCTION'   PIC H                   HDR00240
 54   1    DEF SMFUID    25‑32    X 'SMF' 'UID'                          HDR00250
 55   1    DEF MODULE    33‑40    X 'MODULE'                             HDR00260
 56   1    DEF LOGONID   41‑48    X 'LOGONID'                            HDR00270
 57   1    DEF UID       49‑72    X 'UID'                                HDR00280
 58   1    DEF SOURCE    73‑80    X 'SOURCE'                             HDR00290
 59   1    DEF CPU       81‑84    X 'CPU'                                HDR00300
 60   1    DEF SYSID     85‑92    X 'SYSTEM' 'ID'                        HDR00310
 61   1    DEF EVENTSID  93‑100   X 'EVENT' 'SYSID'                      HDR00320
 62   1    DEF LIDSID    101‑108  X 'LID' 'SYSID'                        HDR00330
 63   1    DEF USERSID   109‑116  X 'USER' 'SYSID'                       HDR00340
 64   1    DEF JOBNAME   117‑124  X 'JOBNAME'                            HDR00350
 65   1    DEF RDRTIME   125‑132  N 'RDR' 'TIME'                         HDR00360
 66   1    DEF RDRDATE   131‑138  N 'RDR' 'DATE'                         HDR00370
 67   1    DEF SUBMITTOR 139‑146  X 'SUBMITTOR' 'LID/PROC'               HDR00380
 68   1    DEF DELTOD    147‑154  N 'TIME OF' 'DELETE'                   HDR00390
 69   1    DEF VERSION   155‑157  X 'VERSION'                            HDR00400
 70   1    DEF HRESERV2  158‑232  X 'RESERVED'                           HDR00410
 71   1    DEF USERAREA  233‑744 X 'USER AREA'                           HDR00420
 72   1   NOTE END OF COMMON HEADER FIELDS                               HDR00430
 73       COPY PRECORD
 74
 76   1   NOTE  FLAT FILE TYPE 'P' FIELDS
 77   1   DEF APFIND          745‑747 X 'APF' 'AUTH'
 78   1   DEF PROGRAM         748‑755 X 'PROGRAM'
 79   1   DEF REASON_NUMBER   756‑758 N 'REASON' 'CODE' PIC 'ZZ9'
 80   1     DEF REASON_STRING 756‑758 X 'REASON'
 81   1   DEF LOG             759‑761 X 'LOG' 'VIO'
 82   1   DEF EXITRSN         762‑764 X 'USER EXIT' 'REASON'
 83   1   DEF AUTHDEV         765‑772 X 'USER AUTH' 'DEVICE'
 84   1   DEF PFLAG           773     B
 85   1   DEF LABSID          774‑777 X 'LAB' 'CPU'
 86   1   DEF PCNTL           778     B
 87   1   DEF PROCIND         779     X 'P'
 88   1   DEF PRESERVE        780‑819 X 'RESERVED'
 89       DEF RC=ACFSMFR 1‑4 B
 90
 91       GET ACFFLT
 92       GOTO EOJ (RC=‑1)
 93
 94       COPY RCTAB
 95
 96
 97   1   NOTE  TABLE LOOKUP FOR COMMON REASON CODES
 98   1    DECODE REASON_STRING INTO REASON  (X 50)
 99   1    '001' = 'CALLER NOT AUTHORIZED'
100   1    '004' = 'LOGONID NOT FOUND'
101   1    '006' = 'A PASSWORD IS NOT ALLOWED FOR LOGONID'
102   1    '007' = 'A PASSWORD IS REQUIRED FOR LOGONID'
103   1    '008' = 'UNAUTHORIZED INPUT SOURCE FOR LOGONID'
104   1    '009' = 'LOGONID NOT VALID FOR SUBMISSION BY THIS PGM'
105   1    '010' = 'LOGONID CANCELLED'
106   1    '011' = 'LOGONID SUSPENDED'
107   1    '012' = 'PASSWORD NOT MATCHED'
108   1    '013' = 'LOGONID SUSPENDED BECAUSE OF PASSWORD VIOLATIONS'
109   1    '014' = 'LOGONID EXPIRED'
110   1    '015' = 'INVALID PASSWORD SYNTAX'
111   1    '016' = 'A LOGONID IS REQUIRED'
112   1    '017' = 'PASSWORD FOR LOGONID HAS EXPIRED'
113   1    '018' = 'INVALID SYNTAX FOR NEW PASSWORD; OLD PW EXPIRED'
114   1    '019' = 'PASSWORD LESS THAN MINIMUM LENGTH'
115   1    '020' = 'NEW PASSWORD < MINIMUM LENGTH; OLD PW EXPIRED'
116   1    '021' = 'PASSWORD EXPIRED AND CANNOT BE ALTERED'
117   1    '022' = 'MUSASS LOGONID ALREADY IN USE'
118   1    '023' = 'NEW PASSWORD = OLD PASSWORD; OLD PW EXPIRED'
119   1    '025' = 'SRF SUPPORT NOT FOUND'
120   1    '026' = 'ACCESS DENIED BY INSTALLATION EXIT'
121   1    '028' = 'PASSWORD REVALIDATION ‑ NO LOGONID RECORD'
122   1    '029' = 'PASSWORD REVALIDATION ‑ PASSWORD NOT MATCHED'
123   1    '030' = 'STC LOGONID CANNOT BE USED FOR NORMAL ACCESS'
124   1    '031' = 'LOGONID DOES NOT HAVE THE STC ATTRIBUTE'
125   1    '032' = 'LOGONID/SOURCE COMBINATION NOT VALID'
126   1    '033' = 'INVALID SYNTAX FOR NEW PASSWORD ON NJE JOB'
127   1    '034' = 'NEW PASSWORD LESS THAN MIN LENGTH ON NJE JOB'
128   1    '037' = 'NEW PASSWORD DENIED BY INSTALLATION EXIT'
129   1    '038' = 'LOGONID INHERITANCE NOT ALLOWED FOR LOGONID'
130   1    '045' = 'NOT AUTHORIZED FOR ACCESS TO MUSASS'
131   1    '048' = 'ACFFDR COULD NOT BE LOCATED'
132   1    '049' = 'FDE FOR ACTIVE AUTH SUPPORT NOT LOCATED'
133   1    '050' = 'NO AUTHEXIT LIST ENTRY FOUND FOR LIDFIELD"
134   1    '051' = 'USER AUTH EXTENSION BLOCK NOT PASSED'
135   1    '052' = 'RSB COULD NOT BE LOCATED FOR AUTH RECORD'
136   1    '053' = 'INFO‑STOR D/B NOT AVAILABLE'
137   1    '054' = 'D/B FAILURE OCCURRED FOR USER AUTH RECORD'
138   1    '055' = 'ACCESS DENIED BY USER AUTH SUPPORT'
139   1    '056' = 'USER AUTH DIALOG FACILITY NOT SUPPORTED'
140   1    '057' = 'STORAGE GETMAIN/FREEMAIN ERROR'
141   1    '060' = 'ZONE RECORD FOR LOGONID TIME ZONE NOT FOUND'
142   1    '061' = 'SYSTEM ACCESS DENIED. LOGON TIME NOT WITHIN SHIFT'
143   1    '062' = 'ERROR IN SHIFT PROCESSING ROUTINES'
144   1    '063' = 'SHIFT RECORD FOR LOGONID NOT FOUND'
145   1    '073' = 'NEW PASSWORD DENIED BY INSTALLATION EXIT'
146   1    '075' = 'DDB LOGONID ACQUISITION FAILED'
147   1    '076' = 'LOGONID NOT FOUND FOR DDB ACQUISITION'
148   1    '077' = 'DDB REMOTE LOGONID UPDATE FAILED'
149   1    '078' = 'LOGONID NOT FOUND FOR DDBREMOTE UPDATE'
150   1    '095' = 'NO HALFWAY ENCRYPTED PASSWORD AVAILABLE FOR USERID'
151   1    '096' = 'NO LOGONID GIVEN FOR PASSWORD EXTRACT CALL'
152   1    '097' = 'JOB SUBMITTED ON NON‑ACF2 SYSTEM; NO DEFAULT LOGONID GIVEN'
153   1    '098' = 'ACF2 NOT INITIALIZED'
154   1    '099' = 'ERROR DURING PROCESSING'
155   1    '101' = 'DDB GET‑UPDATE OF LOGONID FAILED'
156   1    '105' = 'NO ROOM IN DATABASE FOR REQUEST'
157   1    '106' = 'ACF00ERU PROCESSING ERROR FOR LOGONID'
158   1    '115' = 'NEW PASSWORD CANNOT BE THE SAME AS LOGONID'
159   1    '116' = 'NEW PASSWORD CANNOT BE ALL NUMERIC'
160   1    '117' = 'NEW PASSWORD CONTAINS A RESERVED WORD PREFIX'
161   1    '118' = 'NEW PASSWORD MATCHES A PREVIOUS PASSWORD'
162   1    '127' = 'LOGONID RECORD DEQ FAILURE'
163   1    '128' = 'INVALID SYNTAX FOR NEW PASSWORD; NONE SET'
164   1    '129' = 'PASSWORD SUCCESSFULLY ALTERED'
165   1    '130' = 'NEW PASSWORD < MINIMUM LENGTH ‑ NONE SET'
166   1    '131' = 'NEW PASSWORD EQUALS OLD ‑ NONE SET'
167   1    '132' = 'NEW PASSWORD NOT ALLOWED'
168   1    '133' = 'NEW PASSWORD DENIED BY INSTALLATION EXIT'
169   1    '134' = 'YOUR PASSWORD WILL EXPIRE ON DDD'
170   1    '135' = 'SYSTEM ACCESS ALLOWED BASED ON LOGSHIFT'
171   1    '136' = 'NEW PSWD NOT SET; MINDAYS HAVE NOT PASSED'
172   1    '200' = 'INVALID PASSWORD/AUTHORITY FOR ID'
173   1    '254' = 'MON‑LOG SPECIFIED IN USER LOGONID'
174   1    '255' = 'NEW PASSWORD EXIT'
175   1      ELSE 'UNKNOWN REASON'
176       REPORT 'INVALID PASSWORD REPORT'
177       TITLE 'RUN DATE:' DATEOFREPORT 'RUN TIME:' TIMEOFREPORT
178       NOTE  SELECT ONLY TYPE 'P' RECORDS. PRINT DETAIL LINE FOR EACH RECORD
179        SELECT RECTYPE  'P'
180        PRINT DATE
181              TIME
182              LOGONID
183              JOBNAME
184              SUBMITTOR
185              SOURCE
186              PROGRAM
187              REASON_NUMBER
188              LOG
189              CPU
190       NOTE ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ REPORT VARIATIONS ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
191       NOTE 1: TO PRINT THE REASON CODE ON THE DETAIL LINE CHANGE THE OPTION
192       NOTE    STATEMENT FROM 'PRINTER=80' TO 'PRINTER=132' AND REMOVE 'NOTE'
193       NOTE    FROM THE FOLLOWING STATEMENT:
194       NOTE   REASON
195       NOTE ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
196       NOTE 2: TO PRINT THE REASON CODE ON A SEPARATE DETAIL LINE REMOVE 'NOTE'
197       NOTE    FROM THE FOLLOWING STATEMENT:
198       NOTE   PRINT REASON
199       NOTE ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
200        END

Note: The line numbers in this sample source listing are referenced later in the examples in this chapter.