Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2016
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/I 8.00 KB | None | 0 0
  1. /*OTHER DECLARATIONS STATEMENTS*/      
  2. DCL ERRORFI FILE SEQUENTIAL;          
  3. DCL 01 EMPL_WRITE,                    
  4.        05 ID_WRITE  CHAR(08),        
  5.        05 FILLER1 CHAR(01),          
  6.        05 REC_WRITE CHAR(02),        
  7.        05 FILLER2 CHAR(01),          
  8.        05 MSG CHAR(121);              
  9.                                        
  10. DCL FOUND_10 CHAR(1) INIT('N');      
  11. DCL FOUND_20 CHAR(1) INIT('N');      
  12. DCL FOUND_30 CHAR(1) INIT('N');      
  13. DCL FOUND_40_ERROR CHAR(1) INIT('N');
  14. DCL EMP_ID CHAR(08) INIT('');        
  15. DCL SAVED_ID CHAR(08) INIT('');      
  16. DCL REC CHAR(02);                    
  17. DCL IOEMPN_10 CHAR(200)INIT('');      
  18. DCL IOEMPN_20 CHAR(200)INIT('');      
  19. DCL IOEMPN_30 CHAR(200)INIT('');      
  20. DCL IOEMPN_40 CHAR(200)INIT('');                    
  21. DCL 01 EMPGEN_10 BASED(ADDR(IOEMPN_10))LIKE EMPGEN;
  22. DCL 01 EMPSAL_20 BASED(ADDR(IOEMPN_20))LIKE EMPSAL;
  23. DCL 01 EMPVAC_30 BASED(ADDR(IOEMPN_30))LIKE EMPVAC;
  24. DCL 01 EMPRPT_40 BASED(ADDR(IOEMPN_40))LIKE EMPRPT;
  25.                                                  
  26. OPEN FILE(ERRORFI) OUTPUT;                          
  27. CALL EMPNCSI(EMPN1_INPUT_PARAM,IOEMPN);            
  28. SAVED_ID=EMPGEN.EMP_ID;                              
  29.  
  30. DO WHILE(EMPN1_INPUT.RTC ='');
  31.     EMP_ID=EMPGEN.EMP_ID;      
  32.     REC=EMPGEN.RECCD;          
  33.     IF(EMP_ID = SAVED_ID)      
  34.         THEN                      
  35.         DO;                      
  36.         IF(REC='10')            
  37.             THEN                  
  38.             DO;                  
  39.             IOEMPN_10=IOEMPN;  
  40.             FOUND_10='Y';      
  41.             END;                
  42.         ELSE                  
  43.         IF(REC='20')        
  44.             THEN              
  45.             DO;              
  46.             IOEMPN_20=IOEMPN;
  47.             FOUND_20='Y';    
  48.             END;  
  49.         ELSE                                              
  50.         IF(REC='30')                                      
  51.             THEN  
  52.             DO;                                            
  53.             IOEMPN_30=IOEMPN;                            
  54.             FOUND_30='Y';                                
  55.             END;                                          
  56.         ELSE                                            
  57.         IF(REC='40')                                  
  58.             THEN                                        
  59.             DO;                                        
  60.             IOEMPN_40=IOEMPN;                          
  61.  
  62.             IF(EMPRPT.RPT_EMP_LVL >EMPGEN_10.EMP_LVL_ID & EMPGEN_10.EMP_LVL_ID <4)                
  63.                 THEN                                    
  64.                 DO;                                    
  65.                 FOUND_40_ERROR='Y';                    
  66.                 EMPL_WRITE.MSG='ERROR:EMPLOYEE MUST NOT HAVE REPORTEES';                        
  67.                 EMPL_WRITE.ID_WRITE=EMPGEN_10.EMP_ID;
  68.                 EMPL_WRITE.REC_WRITE=EMPGEN_10.RECCD;
  69.                 WRITE FILE(ERRORFI) FROM (EMPL_WRITE);
  70.                 END;                                  
  71.             ELSE                                  
  72.                 CALL EMPNCSO(EMPN1_OUTPUT_PARAM,IOEMPN_40);                          
  73.             END;                                      
  74.         ELSE                                      
  75.             DO;                                      
  76.             EMPL_WRITE.MSG='FOUND UNKNOWN ERROR ON';
  77.             EMPL_WRITE.ID_WRITE=EMP_ID;              
  78.             EMPL_WRITE.REC_WRITE=REC;                
  79.             WRITE FILE(ERRORFI) FROM (EMPL_WRITE);  
  80.             END;                        
  81.        
  82.         /* READ NEXT LINE */
  83.         CALL EMPNCSI(EMPN1_INPUT_PARAM,IOEMPN);          
  84.         END;
  85.     ELSE                                            
  86.         DO;                                            
  87.         CALL OUTPUT_ERRORS(SAVED_ID,FOUND_10, FOUND_20,FOUND_30,FOUND_40_ERROR);                      
  88.         SAVED_ID=EMPGEN.EMP_ID;                        
  89.                                                          
  90.         FOUND_10='N';                                  
  91.         FOUND_20='N';                                  
  92.         FOUND_30='N';                                  
  93.      /* FOUND_40_ERROR='N'; */                          
  94.         IOEMPN_10='';                                  
  95.         IOEMPN_20='';                                  
  96.         IOEMPN_30='';                                  
  97.         IOEMPN_40='';                                  
  98.         END;                                            
  99. END;                                                  
  100.  
  101.          
  102.  
  103.  
  104.  
  105. OUTPUT_ERRORS: PROCEDURE(ID,FOUND_10,FOUND_20,FOUND_30,FOUND_40_ERROR);                                  
  106.     DCL FOUND_10 CHAR(1);                            
  107.     DCL FOUND_20 CHAR(1);                            
  108.     DCL FOUND_30 CHAR(1);                            
  109.     DCL FOUND_40_ERROR CHAR(1);                      
  110.     DCL ID CHAR(08);                                  
  111.                                                        
  112.     IF(FOUND_10='Y' & FOUND_20='Y'& FOUND_30='Y')    
  113.         THEN                                            
  114.         DO;                                            
  115.         CALL EMPNCSO(EMPN1_OUTPUT_PARAM,IOEMPN_10);    
  116.         CALL EMPNCSO(EMPN1_OUTPUT_PARAM,IOEMPN_20);    
  117.         CALL EMPNCSO(EMPN1_OUTPUT_PARAM,IOEMPN_30);    
  118.         END;                                                                                            
  119.     ELSE                                              
  120.         DO;                                            
  121.         IF(FOUND_10='N')                              
  122.             THEN                                                  
  123.             DO;                                                
  124.             EMPL_WRITE.MSG='ERROR: RECORD 10 IS MISSING ON ID:';
  125.             EMPL_WRITE.ID_WRITE=ID;                            
  126.             EMPL_WRITE.REC_WRITE='10';                          
  127.             WRITE FILE(ERRORFI) FROM (EMPL_WRITE);              
  128.             END;                                                
  129.        
  130.         IF(FOUND_20='N')                                        
  131.             THEN                                                  
  132.             DO;                                                
  133.             EMPL_WRITE.MSG='ERROR: RECORD 20 IS MISSING ON ID:';
  134.             EMPL_WRITE.ID_WRITE=ID;                            
  135.             EMPL_WRITE.REC_WRITE='20';                          
  136.             WRITE FILE(ERRORFI) FROM (EMPL_WRITE);              
  137.             END;
  138.                                                
  139.         IF(FOUND_30='N')                                            
  140.             THEN                                                      
  141.             DO;                                                    
  142.             EMPL_WRITE.MSG='ERROR: RECORD 30 IS MISSING ON ID:';    
  143.             EMPL_WRITE.ID_WRITE=ID;                                
  144.             EMPL_WRITE.REC_WRITE='30';                              
  145.             WRITE FILE(ERRORFI) FROM (EMPL_WRITE);                  
  146.             END;                                                    
  147.  
  148.         IF(FOUND_40_ERROR='Y')                                      
  149.             THEN;                                                    
  150.             /*   DO;                                                    
  151.             EMPL_WRITE.MSG='ERROR:EMPLOYEE MUST NOT HAVE REPORTEES';
  152.             EMPL_WRITE.ID_WRITE=ID;                                
  153.              EMPL_WRITE.REC_WRITE=EMPGEN.RECCD;                      
  154.             WRITE FILE(ERRORFI) FROM (EMPL_WRITE);                  
  155.               END; */                                    
  156.     END;        
  157.  
  158.                            
  159. /*CLOSING FILE STATEMENT*/                
  160. /*  EMPN1_OUTPUT.GEN='CL';                    
  161.     CALL EMPNCSO(EMPN1_OUTPUT_PARAM,IOEMPN); */
  162. END OUTPUT_ERRORS;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement