Colonial Active Tasks

Program: ADWPPAPZ

Assigned: 08/20/2008


Last Reviewed/Updated: 11/18/2008:
Unable to BIND program ADWPGIFE (BIND AUTHORIZATION ERROR).


Status: Limbo, asked MB 10/30/08, waiting user OK.

Summary: The next change that we have is to the Performance process. I’ve done part of the work, but there is a piece still to be done. Due to a change that I am making, we will have duplicate rows that need to be posted. There is a program, ADWPPAPZ, already in test whose job it is to remove these duplicates because they net to zero (works with a sumsort in the prior step). Our goal is to no longer sum these records in the sort step prior to this program, but after it and keeping certain duplicate records. The records that we want to keep that would normally be summed and removed are ones where the hierarchy is different between the two records. Due to the age and size of the table, moving the hierarchy to the key is not an option. To accomplish this, it has been decided to change the process date for one of the two records to the week ending date on the datefile CLA.ADW.AWKLYDTE(0), copybook is CLA.PROD.COPYLIB(ADWYWKDT). Any records where this change is not necessary to protect the difference in hierarchies we still want to be able to sum and remove the totals that equal to zero. My JCL for this is in C9MAB.LIB.TEST(ADWAPERF).
Update 11/03/2008:
ADWPGIFE Ran test JCL zere gdg's TEST.WORK.SORCLIB(ADWPGIFE)
DB2 cursor pulling up a non matchhing entry.

**   ********************************************************  ** 
**   UP READ, FILE IN BCN ORDER                                ** 
**   ********************************************************  ** 
     READ UP-FILE                                                 
          AT END SET EOF2         TO  TRUE                        
                 MOVE HIGH-VALUE  TO  UP-BCN-NO                   
                 DISPLAY '>>> EOF ACCT FILE'                      
          NOT AT END                                              
                 ADD 1 TO CNT-IN2 END-ADD                         
*                DISPLAY 'UPREAD BCN = ' UP-BCN-NO                
     END-READ.                                                    
                                                                  
**   ********************************************************  ** 
**   CURSOR BCN COMPARED WITH IP & UP BCN                      ** 
**   ********************************************************  ** 
     IF (GACC-BCN  = IP-BCN-NO                                    
     AND GACC-BCN  = UP-BCN-NO)                                   


Program: ADWPGIFE

Assigned: 08/20/2008


Last Reviewed/Updated: 11/18/2008:
Unable to Bind program (BIND AUTHORIZATION ERROR).


Status: Limbo, asked MB 11/03/08, waiting user OK.

Summary: New one ZDWTHGRP – This was my production issue from yesterday. We have a way to make a change to this process, but it requires a change to a flat file. I wish to be able to make a change to a table using update sql which is less risky. The program is ADWPGIFE which is part of job ADWZAGEX. We will be adding a DB2 call to this program to get the SIC code of all BCNs in ZGITACCT so that a change can be made to the ACCT table to correct SIC codes that have been entered incorrectly. The preference would be to do this in a cursor to save CPU time. The thing that may cause a problem is that the input file is compared to another file in ADWPGIFE. I don’t know what order they are in but they are both created in MGIZGIF1 which creates ZGITACCT. Please check the order of the two files and determine the best way to change the sic code of the file that loads ZDWTHGRP.


Program(s): ZEAPEASD/ZEAPSSM0

Start Date: 09/22/2008


Completion Date: 10/31/2008


Status: 10/29/2008 All Program/CopyBook/JCL/Proc/Parm changes made in test, UNIT run(10/20) produced unexpected results, program displays added. Problem may be with DB2 cursors. Waiting for additional feed back.

Last Reviewed/Updated:
11/04/2008, No run JCL (Job ran by 3rd party) Job ran, questionable data return (problem appears to lie with DB2 cursor). Placed displays in programs recompiled, waiting any results.


Status: Limbo, asked KH 11/03/08, to be discussed 11/04/08 meeting.

Break current job stream into two jobs one to handle current agent policies & resubmitted (due to data error) policies. Additionslly DB2 cursors must be sorted by time stamp vice summary #(arbitrary number). Programs ZEAPEASD, ZEAPSSM0 modified, compiled and linked, Programs AEAPSSUM compiled and linked (to bring in new copybooks). Production & Qual JCL, Procs & SYSINs modified/created.
Programs ZEAPEASD & ZEAPSSM0 modified & reviewed.
Copy Books AEAYSSM0 & AEAYSSUM modified & reviewed.
SYSINs TEST.WORK.SYSIN(AEAAEASB) & TEST.WORK.SYSIN(AEAAEASC) created.
JCL TEST.WORK.JCLLIB(AEAAEASC) created.
Proc TEST.WORK.PROCLIB(AEAAEASB) modified.
Proc TEST.WORK.PROCLIB(AEAAEASC) created from TEST.WORK.PROCLIB(AEAAEASB)
Job JCL TEST.WORK.JCLLIB(QEAZEASC) cloned from JCL TEST.WORK.JCLLIB(QEAZEASB) 

Job scan performed on following:

QEAZEASB No Errors
QEAZEASC Missing SYSIN 
AEAZEASB No Errors
AEAZEASC Missing GDG & SYSIN
All Modifications made waiting until the changes currently being tested in the unit level can be moved on out of the way (ETC 10/31/08).


Program: AEAPPCCD

Start Date: 10/20/2008


Completion Date: 01/2009


Updated: 11/18/2009


Objective  
Correct following Program (AEAPPCCD) Flaws:
1.	Loss of Agent submittals.
2.	Large amount of manual intervention.
3.	Disaster records not written.
4.	Inconsistency of program code.
6.	Program code irregularity.


Program Task List:
1.      Anylyse program (AEAPPCCD) for logic flaws. Completed11/18/2008.
2.      Get approval from KH/MH- scheduuled 11/18/08.
3.      Create code docuument, listing proposed code modifications. Completed 11/14/2008.
4.      Modify program in TEST.WORK.SORCLIB(AEAPPCCD), different element name.
5.      Compile program, with a different name. 
6.      Run modified code withh test JCL(TEST,MUP.JCLLIB(UEAZEASB)).      

Last Reviewed/Updated:
11/20/2008, No run JCL (Analysis Complete, proposed code modifications suubmitted to MH & KH for review.

11/20/2008 Meeting canceled, all application resources looked to be tied up until 12/01/2008


Status: Analysis, Analysis for steps 1, 2, 3, 5 & 6 completed, waiting user approval. Steps 5 & 6 added 10/30 & still under review. VISIO/Word Documenting AEAPPCCD logic flow completed & moved to ‘O Drive’. Scheduled meeting with KH/MH 11/04/08 to Get approval for proposed AEAPPCCD modifications.

Clean up program AEAPPCCD.
Create VISIO for program flow.
Rudimentary analysis of program AEAPPCCD.

Following programming faults discussed:

1.      Agent submittals are lost.

2.      Large amount of manual intervention required.

3.      Disaster records not written.

4.      Program processing flow.

5.	Inconsistency of program code. 

The program needs to be reconstructed in small steps.
The steps I will take to modify AEAPPCCD are:
 

1.      ID Screen System Abends, System Abends should be handled in a similar fashion;
i.e. It should generate a status code (not necessarily an “E”), 
generate a DB2 message entry (SMGO/AMGO/PMGO dependent on where in the program the disaster occurred), 
commit these changes & gracefully drop out of processing that particular record.

2.      Modify the primary processing routine (should be a lot simpler).

3.      Review TTA processing, it should not over lay AEAPPCCD status code, TTA processing should also take place after normal processing completed. TTA table updates should be committed else if another error occurs table inserts will be rollback & lost.

4.      Modify programming flow, fatal (disaster) errors will be dealt with as application errors, status code generated, 
message written & next record processed.

5.	ID ERROR Routines for “Data Getters” ie. “ZEAP Calls”.


6.      ID Code with no error checking.
 
Again this is my understanding of the 1500 – 1700 meeting, if I have any misconceptions now is the time to correct them.  

Completed Analysis following:
A. Create a common disaster/disaster+/other routine, It should generate a status code 
   (not necessarily an “E”), generate a DB2 message entry (SMGO/AMGO/PMGO dependent on where in the program the disaster occurred), 
   commit these changes & gracefully drop out of processing that particular record.
B. Modify the primary processing routine (should be a lot simpler).
C. Analysis of Error Tracking (TAA), proposed modifications
D. ID ERROR Routines for “Data Getters” ie. “ZEAP Calls”.
E. ID Code with no error checking.


Correct Procedure task C:
1.      Set AEAYPCCD Status Code.
2.      insert DB2 table tracking entries.
3.	Commit DB2 table tracking entries, Role Backs already performed, (Paragraph 4001).
 
This procedure should be used for both application & system errors, currently only 
application errors (not all) employ these steps.  System errors just perform TAA 
table inserts (Paragraph 4001).        

Analysis 11/20/2008:
High Level Program Flow

No Errors
Performs RTN 2000
Performs RTN 8000
Nested IF 
	-Sets W01-SUCCESSFUL TO AEAYPCCD-STATUS-CODE
	-DETERMINE IF ALL APPS UNDER SALES SUMMARY HAVE BEEN  
	COMPLETED   
	-None Found, AEAYSSM1-PROCESS-STAT set to complete/exit IF                                         
	-Found Sets AEAYSMG7-MSG-STATUS to complete & clears out messages/exit IF
Performs RTN 0200 
	Populates TAA Record with SALES SUMMARY DATA.  
	Set ATRYM001-M006-PROC-STATUS to ‘R’                             
Performs RTN 0210 
	Inserts TAA table entry  
Commits & Cleanup Performed

Clean Run generates:
Sets W01-SUCCESSFUL TO AEAYPCCD-STATUS-CODE
Sets AEAYSSM1-PROCESS-STAT to complete
Set ATRYM001-M006-PROC-STATUS to Complete.
Tracking Sales table entry
Sales Summary table entry  

Disaster, System Error*
Drops out of RTN 2000
	Appropriate AEAYSMG0 table entry generated for screen errors/ Status sw set to ‘F’.*
	TAA Records generated
Drops out of RTN 8000
Drops out of nested IF, no action taken. 
Performs RTN 0200 
	Populates TAA Record with SALES SUMMARY DATA.   
	If App err set then ATRYM001-M006-PROC-STATUS set to ‘R’ else condition does 	same, desired?                                  
Performs RTN 0210 
	Inserts TAA table entry  
Commits & Cleanup Performed

Disaster Errors generate a Tracking Sales table entry, a Sales Summary table entry and set AEAYPCCD-DISASTER. 
Set ATRYM001-M006-PROC-STATUS to ‘R’.
Appropriate AEAYSMG0 table entry generated for screen errors, Status sw set to ‘F’.*

Sales Summary Error*, **
Drops out of RTN 2000
	Appropriate AEAYSMG0 table entry generated for screen errors/ Status sw 	set to ‘F’.*,**
	TAA Records generated 
Drops out of RTN 8000
Nested IF 
	Sets Process-stat sw to ‘F’
Performs RTN 0200 
	Populates TAA Record with SALES SUMMARY DATA.
	If both app  & SSUM switches set process status set to ‘R’ else just SSUM then         
	ATRYM001-M006-PROC-STATUS set to ‘F’.               
Performs RTN 0210 
	Inserts TAA table entry  
Commits & Cleanup Performed

Disaster Errors generate a Tracking Sales table entry, a Sales Summary table entry and set Process-stat sw to ‘F’.
Set ATRYM001-M006-PROC-STATUS to ‘R’ or ‘F’.
Appropriate AEAYSMG0 table entry generated for screen errors, Status sw set to ‘F’.*

Application Error
Performs RTN 2000
	TAA Records generated & Committed
Performs RTN 8000
Drops out of nested IF, No action taken.
Performs RTN 0200 
	Populates TAA Record with SALES SUMMARY DATA.      
	Set ATRYM001-M006-PROC-STATUS to ‘R’               
Performs RTN 0210 
	Inserts TAA table entry  
Commits & Cleanup Performed

Application Errors generate Tracking Sales table entry’s/commits and a Sales Summary table entry,
Set ATRYM001-M006-PROC-STATUS to ‘R’.
 

Policy Error
Drops out of RTN 2000
	TAA Records generated
Drops out of RTN 8000
Drops out of nested IF, no action taken.
Performs RTN 0200 
	Populates TAA Record with SALES SUMMARY DATA. 
	Set ATRYM001-M006-PROC-STATUS to ‘R’.               
 Performs RTN 0210 
	Inserts TAA table entry  
Commits & Cleanup Performed

For Policy Errors generate a Tracking Sales table entry, a Sales Summary table entry and set AEAYPCCD-NOT-SUCCESSFUL. 
Set ATRYM001-M006-PROC-STATUS to ‘R’.

Non Successful/System Error
Drops out of RTN 2000
	Appropriate AEAYSMG0 table entry generated for screen errors/ Status sw 	set to ‘F’.*
	TAA Record generated
Drops out of RTN 8000
Drops out of nested IF, no action taken.
Performs RTN 0200 
	Populates TAA Record with SALES SUMMARY DATA.     
	Set ATRYM001-M006-PROC-STATUS to ‘R’.                  
Performs RTN 0210 
	Inserts TAA table entry  
Commits & Cleanup Performed

Non Successful Errors generate a Tracking Sales table entry, a Sales Summary table entry and set AEAYPCCD-NOT-SUCCESSFUL. 
Set ATRYM001-M006-PROC-STATUS to ‘R’.
Appropriate AEAYSMG0 table entry generated for screen errors, Status sw set to ‘F’.*



Questions
1.	Error tracking for Non Successful, Disaster generates a table tracking entry and a Sales Summary table entry, nothing that indicates a system error has occurred.  I would think the process switch should be set to ‘F’ in the final nested ‘IF’. I know we have the code in place for MainLine SCREEN Error catches (new code), what about non successful system errors generated from data getters etc?
2.	Are we catching all the ‘DISASTER’ errors, generating an appropriate message & setting the process status to ‘F’? I know we have the code in place for MainLine SCREEN Error catches (new code); what about disasters generated from data getters etc?
3.	Sales Summary Errors, per last conversation added AEAYSMG0 table insert routine.     
4.	Policy Errors generate a table tracking entry and a Sales Summary table entry, nothing that indicates a policy error has occurred. Error tracking for Non Successful (TTA) inserted. RTN 0200 will Set ATRYM001-M006-PROC-STATUS to ‘R’. desired?
5.	By setting all MainLine Screen errors to app errors we will be setting their ATRYM001-M006-PROC-STATUS to ‘R’ (RTN 0200), desired results?  




* For Screen Mainline Error Captures only, new code.

** New Code Nested IF, new code.


Problems: No application resources available to answer following app questions for AEAPPCCD:
AEAYSSM1-PROCESS-STAT set by RTN 9600, controls program flow, acceptable values R/C/F. 
ATRYTAA0-NOT-SUCCESSFUL/ ATRYTAA0-SUCCESSFUL-processing complete /processing not complete set in RTN 9650.
ATRYM001-M006-PROC-STATUS set in RTN 0200, TTA field acceptable values R/C/F.
W02-ERROR-WITH-SSUM-SW Switch initialized in 0100, set throughout
W02-ERROR-WITH-APP-SW Switch set throughout, init in 0100/2000/8000.
W02-ERROR-WITH-POL-SW Switch set 2000 RTN’s.

1. Should all Non Successful(Disaster level) errors & Disaster errors set AEAYSSM1-PROCESS-STAT to ‘F’ & 
generate appropriate AEAYSMG0 table entry? If so need to place code in final nested ‘IF’ to handle non 
successful system errors generated from data getters etc?
ANSWER: AEAYSSM1-PROCESS-STAT set to 'F' for all policy errors ie roll backs, add code in nested 'IF'.

2. Sales Summary Errors, per last conversation added AEAYSMG0 table insert routine.     

3. Policy Errors generate a table tracking entry and a Sales Summary table entry, nothing that indicates a 
policy error has occurred. Error tracking for Non Successful (TTA) inserted. RTN 0200 will Set 
ATRYM001-M006-PROC-STATUS to ‘R’. desired?
ANSWER: AEAYSSM1-PROCESS-STAT set to 'F' & AEAYPMG0 table entry inserted for all policy errors error traps.

4. By setting all MainLine Screen errors to app errors we will be setting their ATRYM001-M006-PROC-STATUS to ‘R’ 
(RTN 0200-TAA), desired results?  
ANSWER: ATRYM001-M006-PROC-STATUS to 'F' system level(code resulting in program termination).
Prepare documentation for MH's meeting: 0100-PROCESS-CONTROL(additional Disaster Error Trapping), Modification to Main Line Error Trapping (setting AEAYSSM1-PROCESS-STAT/9600) and Error Tracking code(TAA). Meeting with MH set for 11/26-1500-1600, IAW created word document summarizing proposed code mods from 11/17 meeting. 11/26 Created VISIO diagrams of modified code. Summary of 11/26 meeting listed below, follow up will be scheduled for next week. 1. Addition of code to set AEAYSSM1-PROCESS-STAT fld to ‘F’ for Main Line Screen ‘Disaster’ error trapping. No Problem with. 2. Additional Error trapping for ‘Disaster’ scenarios, note we dealt with trapping ‘Disaster’ errors after routine 3000, I took it one step further and added the code to deal with all non trapped ‘Disaster’ errors, placing the error trap in 0100 nested ‘IF’. Note this will require capturing the message code (one line of code) in every routine that performs a program call that can generate a ‘Disaster error, used routine as an example. No problem with as long as all data available, will verify. 3. Error Tracking (TAA), difference in TAA traps with W02-ERROR-WITH-APP traps & TAA traps with system errors i.e. Disaster should differ, since system errors drop through remainder of program & app errors continue to process, proposed code modifications removed. Not dealt with, just informational. 4. Redundant 4001 routine call, after 3000 perform. Not a problem MH will review routine 4000. 5. Not discussed but I added it anyway, since it was proposed in Main Line Screen ‘Disaster” Errors to set the W02-ERROR-WITH-APP if set by the negative ‘IF NO-ERROR-EIA ‘ . This will result in a error with app switch set for both disasters & app errors. Since TAA deals with the two types of errors differently I modified the ‘IF’ statements into one IF-ELSE (where appropriate). Not discussed. I have attached modified code document, and I am in the process of generating updated Visio diagrams for modified code.


Top of Page

URL :colonialcompletedtasks.html

Revised:10/14/2008

Layout, design & revisions David E. Huenger