Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2016
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/I 9.82 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.                                                        
  27.  /* CALL EMPNCSI(EMPN1_INPUT_PARAM,IOEMPN);            
  28.     CALL EMPNCSI(EMPN1_INPUT_PARAM,IOEMPN);            
  29.     DO WHILE(EMPN1_INPUT.RTC ='');                      
  30.         PUT SKIP LIST(IOEMPN);                          
  31.         CALL EMPNCSI(EMPN1_INPUT_PARAM,IOEMPN);        
  32.     END; */                                            
  33.                                                        
  34.                                                        
  35.     OPEN FILE(ERRORFI) OUTPUT;                          
  36.     CALL EMPNCSI(EMPN1_INPUT_PARAM,IOEMPN);            
  37.    SAVED_ID=EMPGEN.EMP_ID;                              
  38.  
  39.         DO WHILE(EMPN1_INPUT.RTC ='');
  40.     EMP_ID=EMPGEN.EMP_ID;      
  41.     REC=EMPGEN.RECCD;          
  42.    IF(EMP_ID = SAVED_ID)      
  43.      THEN                      
  44.       DO;                      
  45.        IF(REC='10')            
  46.          THEN                  
  47.           DO;                  
  48.            IOEMPN_10=IOEMPN;  
  49.            FOUND_10='Y';      
  50.           END;                
  51.          ELSE                  
  52.           IF(REC='20')        
  53.             THEN              
  54.              DO;              
  55.               IOEMPN_20=IOEMPN;
  56.               FOUND_20='Y';    
  57.              
  58.              END;  
  59.    
  60.                ELSE                                              
  61.                  IF(REC='30')                                      
  62.                   THEN                                            
  63.                     DO;                                            
  64.                     IOEMPN_30=IOEMPN;                            
  65.                     FOUND_30='Y';                                
  66.                      END;                                          
  67.                   ELSE                                            
  68.                  IF(REC='40')                                  
  69.                    THEN                                        
  70.                     DO;                                        
  71.                   IOEMPN_40=IOEMPN;                          
  72.                  IF(EMPRPT.RPT_EMP_LVL >EMPGEN_10.EMP_LVL_ID
  73.                  & EMPGEN_10.EMP_LVL_ID <4)                
  74.                   THEN                                    
  75.                     DO;                                    
  76.                    FOUND_40_ERROR='Y';                    
  77.                   EMPL_WRITE.MSG='ERROR:EMPLOYEE MUST NOT
  78.                 HAVE REPORTEES';                        
  79.          
  80.                                         EMPL_WRITE.ID_WRITE=EMPGEN_10.EMP_ID;
  81.                       EMPL_WRITE.REC_WRITE=EMPGEN_10.RECCD;
  82.                       WRITE FILE(ERRORFI) FROM (EMPL_WRITE);
  83.                       END;                                  
  84.                      ELSE                                  
  85.                       CALL EMPNCSO(EMPN1_OUTPUT_PARAM,      
  86.                       IOEMPN_40);                          
  87.                   END;                                      
  88.                  ELSE                                      
  89.                   DO;                                      
  90.                    EMPL_WRITE.MSG='FOUND UNKNOWN ERROR ON';
  91.                    EMPL_WRITE.ID_WRITE=EMP_ID;              
  92.                    EMPL_WRITE.REC_WRITE=REC;                
  93.                    WRITE FILE(ERRORFI) FROM (EMPL_WRITE);  
  94.                   END;                                      
  95.   /*  PUT SKIP LIST('FOUND UNKNOWN ERROR ON ID:',EMP_ID    
  96.      ,'AND RECORD CODE:',REC); */                          
  97.            CALL EMPNCSI(EMPN1_INPUT_PARAM,IOEMPN);          
  98.        END;
  99.        
  100.                 ELSE                                            
  101.          DO;                                            
  102.           CALL OUTPUT_ERRORS(SAVED_ID,FOUND_10, FOUND_20,
  103.           FOUND_30,FOUND_40_ERROR);                      
  104.                                                          
  105.           SAVED_ID=EMPGEN.EMP_ID;                        
  106.                                                          
  107.           FOUND_10='N';                                  
  108.           FOUND_20='N';                                  
  109.           FOUND_30='N';                                  
  110.      /* FOUND_40_ERROR='N'; */                          
  111.           IOEMPN_10='';                                  
  112.           IOEMPN_20='';                                  
  113.           IOEMPN_30='';                                  
  114.           IOEMPN_40='';                                  
  115.          END;                                            
  116.                                                          
  117.    END;                                                  
  118.  
  119.          
  120.  
  121.  
  122.  
  123.            OUTPUT_ERRORS: PROCEDURE(ID,FOUND_10,FOUND_20,FOUND_30,
  124.       FOUND_40_ERROR);                                  
  125.       DCL FOUND_10 CHAR(1);                            
  126.       DCL FOUND_20 CHAR(1);                            
  127.       DCL FOUND_30 CHAR(1);                            
  128.       DCL FOUND_40_ERROR CHAR(1);                      
  129.       DCL ID CHAR(08);                                  
  130.                                                        
  131.       IF(FOUND_10='Y' & FOUND_20='Y'& FOUND_30='Y')    
  132.         THEN                                            
  133.         DO;                                            
  134.         CALL EMPNCSO(EMPN1_OUTPUT_PARAM,IOEMPN_10);    
  135.         CALL EMPNCSO(EMPN1_OUTPUT_PARAM,IOEMPN_20);    
  136.         CALL EMPNCSO(EMPN1_OUTPUT_PARAM,IOEMPN_30);    
  137.         END;                                            
  138.                                                        
  139.       ELSE                                              
  140.          DO;                                            
  141.          IF(FOUND_10='N')                              
  142.  
  143.               THEN                                                  
  144.               DO;                                                
  145.              EMPL_WRITE.MSG='ERROR: RECORD 10 IS MISSING ON ID:';
  146.            EMPL_WRITE.ID_WRITE=ID;                            
  147.             EMPL_WRITE.REC_WRITE='10';                          
  148.            WRITE FILE(ERRORFI) FROM (EMPL_WRITE);              
  149.             END;                                                
  150.         /*PUT SKIP LIST('ERROR: RECORD 10 IS MISSING ON ID:'    
  151.           ,ID); */                                            
  152.         IF(FOUND_20='N')                                        
  153.          THEN                                                  
  154.            DO;                                                
  155.             EMPL_WRITE.MSG='ERROR: RECORD 20 IS MISSING ON ID:';
  156.             EMPL_WRITE.ID_WRITE=ID;                            
  157.            EMPL_WRITE.REC_WRITE='20';                          
  158.             WRITE FILE(ERRORFI) FROM (EMPL_WRITE);              
  159.              END;                                                
  160.           /*PUT SKIP LIST('ERROR: RECORD 20 IS MISSING ON ID:'    
  161.            ,ID); */    
  162.  
  163.  
  164.  
  165.              IF(FOUND_30='N')                                            
  166.              THEN                                                      
  167.                DO;                                                    
  168.                 EMPL_WRITE.MSG='ERROR: RECORD 30 IS MISSING ON ID:';    
  169.                 EMPL_WRITE.ID_WRITE=ID;                                
  170.                EMPL_WRITE.REC_WRITE='30';                              
  171.               WRITE FILE(ERRORFI) FROM (EMPL_WRITE);                  
  172.                END;                                                    
  173.               /*PUT SKIP LIST('ERROR: RECORD 30 IS MISSING ON ID:'        
  174.               ,ID); */                                                
  175.              IF(FOUND_40_ERROR='Y')                                      
  176.              THEN;                                                    
  177.             /*   DO;                                                    
  178.             EMPL_WRITE.MSG='ERROR:EMPLOYEE MUST NOT HAVE REPORTEES';
  179.             EMPL_WRITE.ID_WRITE=ID;                                
  180.              EMPL_WRITE.REC_WRITE=EMPGEN.RECCD;                      
  181.             WRITE FILE(ERRORFI) FROM (EMPL_WRITE);                  
  182.               END; */                                                
  183.             /* PUT SKIP LIST('ERROR: EMPLOYEEID:',ID, 'MUST NOT HAVE    
  184.                            REPORTEES');*/                  
  185.        END;                                  
  186.    /*CLOSING FILE STATEMENT*/                
  187. /*  EMPN1_OUTPUT.GEN='CL';                    
  188.    CALL EMPNCSO(EMPN1_OUTPUT_PARAM,IOEMPN); */
  189.  END OUTPUT_ERRORS;                          
  190.  END BD215;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement