Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*OTHER DECLARATIONS STATEMENTS*/
- DCL ERRORFI FILE SEQUENTIAL;
- DCL 01 EMPL_WRITE,
- 05 ID_WRITE CHAR(08),
- 05 FILLER1 CHAR(01),
- 05 REC_WRITE CHAR(02),
- 05 FILLER2 CHAR(01),
- 05 MSG CHAR(121);
- DCL FOUND_10 CHAR(1) INIT('N');
- DCL FOUND_20 CHAR(1) INIT('N');
- DCL FOUND_30 CHAR(1) INIT('N');
- DCL FOUND_40_ERROR CHAR(1) INIT('N');
- DCL EMP_ID CHAR(08) INIT('');
- DCL SAVED_ID CHAR(08) INIT('');
- DCL REC CHAR(02);
- DCL IOEMPN_10 CHAR(200)INIT('');
- DCL IOEMPN_20 CHAR(200)INIT('');
- DCL IOEMPN_30 CHAR(200)INIT('');
- DCL IOEMPN_40 CHAR(200)INIT('');
- DCL 01 EMPGEN_10 BASED(ADDR(IOEMPN_10))LIKE EMPGEN;
- DCL 01 EMPSAL_20 BASED(ADDR(IOEMPN_20))LIKE EMPSAL;
- DCL 01 EMPVAC_30 BASED(ADDR(IOEMPN_30))LIKE EMPVAC;
- DCL 01 EMPRPT_40 BASED(ADDR(IOEMPN_40))LIKE EMPRPT;
- OPEN FILE(ERRORFI) OUTPUT;
- CALL EMPNCSI(EMPN1_INPUT_PARAM,IOEMPN);
- SAVED_ID=EMPGEN.EMP_ID;
- DO WHILE(EMPN1_INPUT.RTC ='');
- EMP_ID=EMPGEN.EMP_ID;
- REC=EMPGEN.RECCD;
- IF(EMP_ID = SAVED_ID)
- THEN
- DO;
- IF(REC='10')
- THEN
- DO;
- IOEMPN_10=IOEMPN;
- FOUND_10='Y';
- END;
- ELSE
- IF(REC='20')
- THEN
- DO;
- IOEMPN_20=IOEMPN;
- FOUND_20='Y';
- END;
- ELSE
- IF(REC='30')
- THEN
- DO;
- IOEMPN_30=IOEMPN;
- FOUND_30='Y';
- END;
- ELSE
- IF(REC='40')
- THEN
- DO;
- IOEMPN_40=IOEMPN;
- IF(EMPRPT.RPT_EMP_LVL >EMPGEN_10.EMP_LVL_ID & EMPGEN_10.EMP_LVL_ID <4)
- THEN
- DO;
- FOUND_40_ERROR='Y';
- EMPL_WRITE.MSG='ERROR:EMPLOYEE MUST NOT HAVE REPORTEES';
- EMPL_WRITE.ID_WRITE=EMPGEN_10.EMP_ID;
- EMPL_WRITE.REC_WRITE=EMPGEN_10.RECCD;
- WRITE FILE(ERRORFI) FROM (EMPL_WRITE);
- END;
- ELSE
- CALL EMPNCSO(EMPN1_OUTPUT_PARAM,IOEMPN_40);
- END;
- ELSE
- DO;
- EMPL_WRITE.MSG='FOUND UNKNOWN ERROR ON';
- EMPL_WRITE.ID_WRITE=EMP_ID;
- EMPL_WRITE.REC_WRITE=REC;
- WRITE FILE(ERRORFI) FROM (EMPL_WRITE);
- END;
- /* READ NEXT LINE */
- CALL EMPNCSI(EMPN1_INPUT_PARAM,IOEMPN);
- END;
- ELSE
- DO;
- CALL OUTPUT_ERRORS(SAVED_ID,FOUND_10, FOUND_20,FOUND_30,FOUND_40_ERROR);
- SAVED_ID=EMPGEN.EMP_ID;
- FOUND_10='N';
- FOUND_20='N';
- FOUND_30='N';
- /* FOUND_40_ERROR='N'; */
- IOEMPN_10='';
- IOEMPN_20='';
- IOEMPN_30='';
- IOEMPN_40='';
- END;
- END;
- OUTPUT_ERRORS: PROCEDURE(ID,FOUND_10,FOUND_20,FOUND_30,FOUND_40_ERROR);
- DCL FOUND_10 CHAR(1);
- DCL FOUND_20 CHAR(1);
- DCL FOUND_30 CHAR(1);
- DCL FOUND_40_ERROR CHAR(1);
- DCL ID CHAR(08);
- IF(FOUND_10='Y' & FOUND_20='Y'& FOUND_30='Y')
- THEN
- DO;
- CALL EMPNCSO(EMPN1_OUTPUT_PARAM,IOEMPN_10);
- CALL EMPNCSO(EMPN1_OUTPUT_PARAM,IOEMPN_20);
- CALL EMPNCSO(EMPN1_OUTPUT_PARAM,IOEMPN_30);
- END;
- ELSE
- DO;
- IF(FOUND_10='N')
- THEN
- DO;
- EMPL_WRITE.MSG='ERROR: RECORD 10 IS MISSING ON ID:';
- EMPL_WRITE.ID_WRITE=ID;
- EMPL_WRITE.REC_WRITE='10';
- WRITE FILE(ERRORFI) FROM (EMPL_WRITE);
- END;
- IF(FOUND_20='N')
- THEN
- DO;
- EMPL_WRITE.MSG='ERROR: RECORD 20 IS MISSING ON ID:';
- EMPL_WRITE.ID_WRITE=ID;
- EMPL_WRITE.REC_WRITE='20';
- WRITE FILE(ERRORFI) FROM (EMPL_WRITE);
- END;
- IF(FOUND_30='N')
- THEN
- DO;
- EMPL_WRITE.MSG='ERROR: RECORD 30 IS MISSING ON ID:';
- EMPL_WRITE.ID_WRITE=ID;
- EMPL_WRITE.REC_WRITE='30';
- WRITE FILE(ERRORFI) FROM (EMPL_WRITE);
- END;
- IF(FOUND_40_ERROR='Y')
- THEN;
- /* DO;
- EMPL_WRITE.MSG='ERROR:EMPLOYEE MUST NOT HAVE REPORTEES';
- EMPL_WRITE.ID_WRITE=ID;
- EMPL_WRITE.REC_WRITE=EMPGEN.RECCD;
- WRITE FILE(ERRORFI) FROM (EMPL_WRITE);
- END; */
- END;
- /*CLOSING FILE STATEMENT*/
- /* EMPN1_OUTPUT.GEN='CL';
- CALL EMPNCSO(EMPN1_OUTPUT_PARAM,IOEMPN); */
- END OUTPUT_ERRORS;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement