Você está na página 1de 12

IDENTIFICATION DIVISION.

PROGRAM-ID.
HRTDSDI5.
*AUTHOR.
TCS.
*****************************************************************
*THIS PROGRAM PROCESSES REPORTS ALL THE SDI RELATED SCAL
*
*EMPLOYEES,UPDATES THE SMBR TO WAM APROVAL GROUP
*
*****************************************************************
*
M A I N T E N C E
H I S T O R Y
*
*****************************************************************
* WHO DATE DESCRIPTION
*
* --- ----- ------------------------------------------------ *
* TCS 02/11 INITIAL IMPLEMENTATION.
*
* XXX XX/XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *
* CSC 10/05 PROGRAM CHANGED TO HANDLE NULL INDICATOR FOR THE *
*
COLUMN FK_VSMAG_NBR
*
*****************************************************************
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT PARM-FILE
ASSIGN TO UT-S-PARM
FILE STATUS IS PARM-STATUS.
SELECT SDIRPT-FILE
ASSIGN TO UT-S-SDIRPT
FILE STATUS IS SDIRPT-STATUS.
DATA DIVISION.
FILE SECTION.
FD PARM-FILE
BLOCK CONTAINS 0 CHARACTERS
RECORD CONTAINS 80 CHARACTERS
LABEL RECORD IS STANDARD.
01 PARM-RECORD.
05 PARM-DATE
PIC X(10).
05 SMBR-REG
PIC X.
05 FILLER
PIC X(69).
FD SDIRPT-FILE
BLOCK CONTAINS 0 CHARACTERS
RECORD CONTAINS 200 CHARACTERS
LABEL RECORD IS STANDARD.
01 SDI-RECORD.
05 FILLER-0
PIC
05 SDI-SMBR
PIC
05 FILLER-1
PIC
05 SDI-SM-NAME
PIC
05 FILLER-2
PIC
05 SDI-SM-NUID
PIC
05 FILLER-3
PIC
05 SDI-SM-SMAG-NBR
PIC
05 FILLER-4
PIC
05 SDI-SM-SMAG-NAME
PIC
05 FILLER-5
PIC
05 SDI-BEGN-DT
PIC
05 FILLER-6
PIC
05 SDI-END-DT
PIC
05 FILLER-7
PIC
05 SDI-TCARAPR-NUID
PIC
05 FILLER-8
PIC
05 SDI-TCARAPR-NAME
PIC
05 FILLER-9
PIC

X(1) VALUE ' '.


9(8) VALUE ' '.
X(1) VALUE '@'.
X(40) VALUE ' '.
X(1) VALUE '@'.
X(8) VALUE ' '.
X(1) VALUE '@'.
9(9) VALUE 0 .
X(1) VALUE '@'.
X(40) VALUE ' ' .
X(1) VALUE '@'.
X(10) VALUE ' ' .
X(1) VALUE '@'.
X(10) VALUE ' ' .
X(1) VALUE '@'.
X(8) VALUE ' '.
X(1) VALUE '@'.
X(40) VALUE ' '.
X(1) VALUE '@'.

00000100
00000200
00000300
00000400
00000500
00000600
00000700
00000800
00000900
00001000
00001100
00001200
00001300
00001300
00001300
00001400
00001500
00001600
00001700
00001800
00001900
00002000
00002100
00002200
00002300
00002400
00002500
00002600
00002700
00002800
00002900
00003000
00003100
00003200
00003600
00003700
00003800
00003900
00004000
00004100
00004200
00004400
00004300
00004400
00004500
00004600
00004700
00004800
00004810
00004820
00004900
00005200
00005310
00005400
00005310
00005600
00005700
00005800
00005700
00005800

05 SDI-EFF-DT
05 FILLER-10
WORKING-STORAGE SECTION.
77 ERR-LEN
01 ERR-MSG.
05 ERR-MSG-L
05 ERR-MSG-T

PIC X(10) VALUE ' '.


PIC X(07) VALUE ' '.

00005900
00005900
00010700
PIC S9(9) COMP VALUE +87.
00010800
00010900
PIC S9(4) COMP VALUE +870.
00011000
PIC X(87) OCCURS 10 TIMES
00011100
INDEXED BY I-1.
00011200
**********************************************************
00019200
01 WS-SDI-RECORD-HEADER.
00004200
05 FILLER-H0
PIC X(1) VALUE ' '.
00005900
05 WS-SDI-SMBR-H
PIC X(8) VALUE 'EMPID '.
00004300
05 FILLER-H1
PIC X(1) VALUE '@'.
00004400
05 WS-SDI-SM-NAME-H
PIC X(40) VALUE 'EMPLOYEE NAME'. 00004500
05 FILLER-H2
PIC X(1) VALUE '@'.
00004600
05 WS-SDI-SM-NUID-H
PIC X(8) VALUE 'EMPNUID'.
00004700
05 FILLER-H3
PIC X(1) VALUE '@'.
00004800
05 WS-SDI-SM-SMAG-NBR-H PIC X(9) VALUE 'APGRPNBR'.
00004810
05 FILLER-H4
PIC X(1) VALUE '@'.
00004820
05 WS-SDI-SM-SMAG-NAME-H PIC X(40)
00004900
VALUE 'PRIMARY APPROVER NAME'.
05 FILLER-H5
PIC X(1) VALUE '@'.
00005200
05 SDI-BEGN-DT-H
PIC X(10) VALUE 'STARTDATE'.
00005310
05 FILLER-H6
PIC X(1) VALUE '@'.
00005400
05 SDI-END-DT-H
PIC X(10) VALUE 'ENDDATE'.
00005310
05 FILLER-H7
PIC X(1) VALUE '@'.
00005600
05 SDI-TCARAPR-NUID-H
PIC X(8) VALUE 'TCAPNUID'.
00005700
05 FILLER-H8
PIC X(1) VALUE '@'.
00005800
05 SDI-TCARAPR-NAME-H
PIC X(40) VALUE 'TCARDAPRNAME'. 00005700
05 FILLER-H9
PIC X(1) VALUE '@'.
00005800
05 SDI-EFF-DT-H
PIC X(10) VALUE 'SDIEFFDT'.
00005900
05 FILLER-H10
PIC X(07) VALUE ' '.
00005900
**********************************************************
00019200
01 LOCAL-VARIABLES.
00011300
05 SDIRPT-STATUS
PIC X(2) VALUE ' '.
00011400
05 WS-FLSA-EARN-IND
PIC X(1) VALUE ' '.
00011500
05 PARM-STATUS
PIC X(2) VALUE ' '.
00011600
05 WS-ABEND
PIC S9(4) COMP VALUE 0.
00011700
05 WS-SQL-CODE
PIC -9(3) VALUE ZEROES.
00010400
05 WS-CURR-TIME
PIC X(6) VALUE ' '.
00011800
05 WS-CURR-DATE
PIC X(10) VALUE ' '.
00011900
05 WS-PPEND-DT
PIC X(10) VALUE ' '.
00012000
05 WS-CUR-END-DT
PIC X(10) VALUE ' '.
00012100
05 WS-TEM-END-DT
PIC X(10) VALUE ' '.
00012200
05 WS-TEM-BEGNTM
PIC X(8) VALUE ' '.
00012210
05 WS-TEM-ENDTM
PIC X(8) VALUE ' '.
00012220
05 WS-TEM-BEGNDT
PIC X(10) VALUE ' '.
00012300
05 WS-CUR-SMBR-TYP
PIC X(8) VALUE ' '.
00012220
05 WS-CUR-SMBR-NBR
PIC S9(11)V USAGE COMP-3 VALUE 0. 00015600
05 WS-SMAG-NBR-CB
PIC 9(8).
05 WS-SMAG-NBR
PIC S9(9) USAGE COMP.
00007603
05 WS-PRE-PPED
PIC X(10).
05 WS-COM-STDT
PIC X(10).
05 WS-COM-ENDT
PIC X(10).
05 WS-SUN-PPST
PIC X(10).
05 WS-SUN-PPED
PIC X(10).
05 WS-RPT
PIC X(1) VALUE ' '.
05 WS-NUID
PIC X(8).
05 WS-TEMP-NUID
PIC X(8).
05 WS-VID
PIC X(10).

05 WS-PPER-TYPE
PIC X(1).
05 WS-EOF-SDI
PIC X(1).
05 WS-SMBR-REG
PIC X(1).
05 WS-SM-NAME
PIC X(40) VALUE ' '.
05 WS-SM-APR-NAME
PIC X(40) VALUE ' '.
05 WS-TCAR-APR-NAME
PIC X(40) VALUE ' '.
05 WS-PPSTR-DT
PIC X(10) VALUE ' '.
* CSC CHANGES STARTS - 10/05/2011
05 WS-NULL-IND-NBR
PIC S9(4) USAGE COMP.
* CSC CHANGES ENDS - 10/05/2011
**********************************************************
EXEC SQL
INCLUDE SQLCA
END-EXEC.
*
EXEC SQL
INCLUDE HRTDSMBR
END-EXEC.
*
EXEC SQL
INCLUDE HRTDNUID
END-EXEC.
*
EXEC SQL
INCLUDE HRTDSMPF
END-EXEC.
*
EXEC SQL
INCLUDE HRTDSMAG
END-EXEC.
*
EXEC SQL
INCLUDE HRTDSMSD
END-EXEC.
*
EXEC SQL
INCLUDE HRTDTCAT
END-EXEC.
*
EXEC SQL
INCLUDE HRTDPPER
END-EXEC.
*
*****************************************************
* DECLARING ALL THE CURSORS USED IN THE PROGRAM
*****************************************************
EXEC SQL
DECLARE CUR_SDI CURSOR WITH HOLD FOR
SELECT A.FK_VSMBR_STAFF_NBR,
STRIP(B.LST_NM) || ',' || STRIP(B.FRST_NM),
C.ACCESS_USERID,
C.SCHED_STRT_OF_WK,
A.KP_INTEG_BEG_DT,
A.KP_INTEG_END_DT,
B.FK_VSMAG_NBR,
A.EFF_DT
FROM VSMSD_STAFF_SDI A,
VSMBR_STAFF_MBR B,
VSMPF_SMBR_PRFL C
WHERE A.FK_VSMBR_STAFF_TYP = :WS-SMBR-REG

00004500
00004500
00004500

00019200
00019500
00019600
00019700
00020600
00020300
00020400
00020500
00020600
00012710
00012720
00012730
00020640
00020610
00020620
00020630
00020640
00020700
00020800
00020900
00021400
00021500
00021600
00021700
00021800
00021500
00021600
00021700
00021800
00021500
00021600
00021700
00021800
00023400
00023500
00023600

AND A.FK_VSMBR_STAFF_NBR > 0


A.KP_SDI_STATUS = 'A'
B.NBR
= A.FK_VSMBR_STAFF_NBR
B.TYP
= A.FK_VSMBR_STAFF_TYP
C.FK_VSMBR_NBR = A.FK_VSMBR_STAFF_NBR
C.FK_VSMBR_TYP = A.FK_VSMBR_STAFF_TYP
C.EFF_DT
<= :WS-PPEND-DT
C.EXPR_DT
>= :WS-PPEND-DT
CHANGE 08/12/2011
A.EFF_DT
= (SELECT MAX(D.EFF_DT)
FROM HRTKD.VSMSD_STAFF_SDI D
WHERE D.FK_VSMBR_STAFF_NBR = A.FK_VSMBR_STAFF_NBR
AND D.FK_VSMBR_STAFF_TYP = A.FK_VSMBR_STAFF_TYP)
AND A.SEQ_NBR = (SELECT MAX(D.SEQ_NBR)
FROM VSMSD_STAFF_SDI D
WHERE D.FK_VSMBR_STAFF_NBR = A.FK_VSMBR_STAFF_NBR
AND A.EFF_DT = D.EFF_DT
AND D.FK_VSMBR_STAFF_TYP = A.FK_VSMBR_STAFF_TYP)
*TCS END CHANGE 08/12/2011
*SRINI
AND D.EFF_DT
<= :WS-PPEND-DT
*SRINI
AND D.KP_INTEG_END_DT
>= :WS-PPEND-DT)
ORDER BY A.FK_VSMBR_STAFF_NBR
WITH UR
END-EXEC.
*
LINKAGE SECTION.
*
PROCEDURE DIVISION.
*
0000-MAIN-PARA.
DISPLAY 'HRTDSDI5 EXECUTION BEGIN'.
PERFORM 1000-OPEN-FILES-PARA THRU 1000-OPEN-EXIT.
PERFORM 2000-READ-PARM-PARA THRU 2000-READ-PARM-EXIT.
PERFORM 3000-READ-SDI-PARA THRU 3000-SDI-EXIT.
PERFORM 4000-CLOSE-FILE-PARA THRU 4000-CLOSE-EXIT.
DISPLAY 'HRTDSDI5 EXECUTION ENDED'.
0000-MAIN-EXIT.
STOP RUN.
*
1000-OPEN-FILES-PARA.
OPEN INPUT PARM-FILE
IF PARM-STATUS NOT = '00'
MOVE 1001 TO WS-ABEND
PERFORM 9999-ABEND-PARA
END-IF
OPEN OUTPUT SDIRPT-FILE
IF SDIRPT-STATUS = '00'
MOVE WS-SDI-RECORD-HEADER TO SDI-RECORD
PERFORM 3500-WRITE-RPT-PARA THRU 3500-EXIT
END-IF
IF SDIRPT-STATUS NOT = '00'
MOVE 1002 TO WS-ABEND
PERFORM 9999-ABEND-PARA
END-IF
EXEC SQL
SELECT (CURRENT TIME + 1 SECOND) ,
CURRENT DATE
INTO :WS-CURR-TIME, :WS-CURR-DATE
FROM SYSIBM.SYSDUMMY1
END-EXEC
AND
AND
AND
AND
AND
AND
AND
*TCS START
AND

00036800
00036900
00037000
00037100
00037200
00037300
00037400
00037500
00037600
00037700
00037800
00037900
00038000
00038100
00038200
00038300
00038400
00038500
00038600
00038700
00038800
00038900
00039000
00039100
00039200
00039300
00039000
00039100
00039200
00039300
00039400
00039500
00039600
00039700
00039800
00039900

IF SQLCODE NOT = 0
MOVE 1003
TO
WS-ABEND
PERFORM 9999-ABEND-PARA
END-IF.
1000-OPEN-EXIT.
EXIT.
*
2000-READ-PARM-PARA.
READ PARM-FILE
IF PARM-STATUS NOT = '00' AND PARM-STATUS NOT = '10'
MOVE 1004
TO
WS-ABEND
PERFORM 9999-ABEND-PARA
END-IF.
IF PARM-STATUS = '10'
MOVE 1005
TO
WS-ABEND
PERFORM 9999-ABEND-PARA
END-IF
IF PARM-DATE = ' '
MOVE WS-CURR-DATE TO WS-PPEND-DT
ELSE
MOVE PARM-DATE
TO WS-PPEND-DT
END-IF
MOVE SMBR-REG
TO WS-SMBR-REG
MOVE SMBR-REG
TO WS-CUR-SMBR-TYP
EVALUATE SMBR-REG
WHEN 'C'
MOVE 'C'
TO WS-PPER-TYPE
WHEN 'H'
MOVE 'H'
TO WS-PPER-TYPE
WHEN OTHER
MOVE SPACES
TO WS-PPER-TYPE
END-EVALUATE
PERFORM 2100-READ-PAYP-PARA THRU 2100-READ-EXIT.
2000-READ-PARM-EXIT.
EXIT.
*
2100-READ-PAYP-PARA.
EXEC SQL
SELECT
END_DT,
STRT_DT,
STRT_DT - 1 DAYS,
END_DT - 1 DAYS,
END_DT - 14 DAYS
INTO
:DCLVPPER-PAY-PERD.END-DT,
:DCLVPPER-PAY-PERD.STRT-DT,
:WS-SUN-PPST,
:WS-SUN-PPED,
:WS-PRE-PPED
FROM
VPPER_PAY_PERD
WHERE STRT_DT <= :WS-PPEND-DT
AND
END_DT
>= :WS-PPEND-DT
AND
PAY_PER_TP = :WS-PPER-TYPE
END-EXEC.
IF SQLCODE NOT = 0
MOVE 1006 TO
WS-ABEND
PERFORM 9999-ABEND-PARA
END-IF.
MOVE END-DT OF DCLVPPER-PAY-PERD TO WS-PPEND-DT

00040000
00040100
00040200
00040300
00040500
00040600
00040700
00040800
00040900
00041000
00041100
00041200
00041300
00041400
00041500
00041600
00041700
00041800
00041900
00042000
00042100
00042200
00042300
00042400
00042400
00042500
00042600
00042700
00042800
00042900
00043000
00043100
00043200
00043300
00043400
00043500
00043600
00043700
00043800
00043900
00043910
00044100
00044100
00043910
00043910
00044300
00044500

00044700
00044800
00044900
00045000
00045100
00045200
00045300
00045400
00045500
00045600

MOVE STRT-DT OF DCLVPPER-PAY-PERD TO WS-PPSTR-DT.


2100-READ-EXIT.
EXIT.
*

00045700
00048000
00048100
00048230
00112000

3000-READ-SDI-PARA.
DISPLAY 'ENTERTING READ SDI PARA:'
DISPLAY 'PPED:' WS-PPEND-DT
DISPLAY 'PPST:' WS-PPSTR-DT
DISPLAY 'SUNS:' WS-SUN-PPST
DISPLAY 'SUNE:' WS-SUN-PPED
DISPLAY 'PPED:' WS-SMBR-REG
DISPLAY 'PEV :' WS-PRE-PPED
EXEC SQL
OPEN CUR_SDI
END-EXEC
IF SQLCODE = 0
MOVE 'Y' TO WS-EOF-SDI
PERFORM 3100-FETCH-SDI-PARA THRU 3100-FETCH-EXIT
UNTIL WS-EOF-SDI = 'N'
ELSE
MOVE 3000 TO WS-ABEND
PERFORM 9999-ABEND-PARA
END-IF.
EXEC SQL
CLOSE CUR_SDI
END-EXEC
IF SQLCODE NOT = 0
MOVE 3001 TO WS-ABEND
PERFORM 9999-ABEND-PARA
END-IF.
3000-SDI-EXIT.
00048000
EXIT.
00048100
*
00048230
3100-FETCH-SDI-PARA.
00112000
INITIALIZE SDI-RECORD
*
EXEC SQL
FETCH CUR_SDI INTO
:DCLVSMSD-STAFF-SDI.FK-VSMBR-STAFF-NBR,
:WS-SM-NAME,
:DCLVSMPF-SMBR-PRFL.ACCESS-USERID,
:DCLVSMPF-SMBR-PRFL.SCHED-STRT-OF-WK,
:DCLVSMSD-STAFF-SDI.KP-INTEG-BEG-DT,
:DCLVSMSD-STAFF-SDI.KP-INTEG-END-DT,
* CSC CHANGES STARTS - 10/05/2011
*
:DCLVSMBR-STAFF-MBR.FK-VSMAG-NBR,
:DCLVSMBR-STAFF-MBR.FK-VSMAG-NBR
:WS-NULL-IND-NBR,
* CSC CHANGES ENDS - 10/05/2011
:DCLVSMSD-STAFF-SDI.EFF-DT
END-EXEC
EVALUATE SQLCODE
WHEN 0
IF SCHED-STRT-OF-WK OF DCLVSMPF-SMBR-PRFL = 'SU'
MOVE WS-SUN-PPST TO WS-COM-STDT
MOVE WS-SUN-PPED TO WS-COM-ENDT
ELSE
MOVE WS-PPSTR-DT TO WS-COM-STDT
MOVE WS-PPEND-DT TO WS-COM-ENDT

END-IF
MOVE 'N' TO WS-RPT
**
DISPLAY '1' WS-COM-STDT
**
DISPLAY '2' WS-COM-ENDT
**
DISPLAY '3' FK-VSMBR-STAFF-NBR OF DCLVSMSD-STAFF-SDI
**
DISPLAY '4' KP-INTEG-END-DT OF DCLVSMSD-STAFF-SDI
**
DISPLAY '5' EFF-DT OF DCLVSMSD-STAFF-SDI
IF EFF-DT OF DCLVSMSD-STAFF-SDI >= WS-COM-STDT AND
EFF-DT OF DCLVSMSD-STAFF-SDI <= WS-COM-ENDT
MOVE 'Y' TO WS-RPT
END-IF
IF KP-INTEG-END-DT OF DCLVSMSD-STAFF-SDI >= WS-COM-STDT
AND KP-INTEG-END-DT OF DCLVSMSD-STAFF-SDI <= WS-COM-ENDT
MOVE 'Y' TO WS-RPT
END-IF
IF EFF-DT OF DCLVSMSD-STAFF-SDI
< WS-COM-STDT AND
KP-INTEG-END-DT OF DCLVSMSD-STAFF-SDI > WS-COM-ENDT
MOVE 'Y' TO WS-RPT
END-IF
**
DISPLAY '7' WS-RPT
IF WS-RPT = 'Y'
MOVE FK-VSMBR-STAFF-NBR OF DCLVSMSD-STAFF-SDI
TO SDI-SMBR,WS-CUR-SMBR-NBR
MOVE KP-INTEG-BEG-DT
OF DCLVSMSD-STAFF-SDI
TO SDI-BEGN-DT
MOVE WS-SM-NAME TO
SDI-SM-NAME
MOVE KP-INTEG-END-DT
OF DCLVSMSD-STAFF-SDI
TO SDI-END-DT
MOVE EFF-DT
OF DCLVSMSD-STAFF-SDI
TO SDI-EFF-DT
MOVE ACCESS-USERID
OF DCLVSMPF-SMBR-PRFL
TO WS-VID
* CSC CHANGES STARTS - 10/05/2011
IF WS-NULL-IND-NBR >= 0
MOVE FK-VSMAG-NBR
OF DCLVSMBR-STAFF-MBR
TO SDI-SM-SMAG-NBR,WS-SMAG-NBR
END-IF
* CSC CHANGES ENDS - 10/05/2011
IF WS-VID > ' '
PERFORM 3200-READ-NUID-PARA THRU 3200-EXIT
MOVE WS-TEMP-NUID TO SDI-SM-NUID
ELSE
MOVE WS-VID
TO SDI-SM-NUID
END-IF
PERFORM 3300-READ-SMAG-PARA THRU 3300-EXIT
MOVE '
' TO WS-TEMP-NUID WS-TCAR-APR-NAME
PERFORM 3350-READ-TCAT-PARA THRU 3350-EXIT
MOVE WS-TEMP-NUID TO SDI-TCARAPR-NUID
MOVE WS-TCAR-APR-NAME TO SDI-TCARAPR-NAME
PERFORM 3500-WRITE-RPT-PARA THRU 3500-EXIT
PERFORM 3600-UPDATESMBR-PARA THRU 3600-EXIT
END-IF
WHEN 100
MOVE 'N' TO WS-EOF-SDI
WHEN OTHER
MOVE 3100 TO WS-ABEND
PERFORM 9999-ABEND-PARA
END-EVALUATE.
3100-FETCH-EXIT.
00048000
EXIT.
00048100

*
3200-READ-NUID-PARA.
EXEC SQL
SELECT A.NUID
INTO :DCLVNUID-SMBR-NUID.NUID
FROM VNUID_SMBR_NUID A
WHERE A.VID = :WS-VID
AND A.SEQ_NBR = (SELECT MAX(SEQ_NBR)
FROM VNUID_SMBR_NUID B
WHERE A.VID = B.VID )
END-EXEC.
EVALUATE SQLCODE
WHEN 0
MOVE NUID OF DCLVNUID-SMBR-NUID TO WS-TEMP-NUID
WHEN 100
MOVE WS-VID TO WS-TEMP-NUID
WHEN OTHER
MOVE 3200 TO WS-ABEND
PERFORM 9999-ABEND-PARA
END-EVALUATE.
3200-EXIT.
EXIT.
*
3300-READ-SMAG-PARA.
MOVE SPACES TO WS-SM-APR-NAME
EXEC SQL
SELECT
STRIP(F.LST_NM) || ',' || STRIP(F.FRST_NM),
G.ACCESS_USERID
INTO :WS-SM-APR-NAME,
:DCLVSMPF-SMBR-PRFL.ACCESS-USERID
FROM VSMAG_APRVL_GRP E,
VSMBR_STAFF_MBR F,
VSMPF_SMBR_PRFL G
WHERE E.NBR
= :WS-SMAG-NBR
AND F.TYP
= E.FK_VSMBR_TYP
AND F.NBR
= E.FK_VSMBR_NBR
AND G.FK_VSMBR_TYP
= E.FK_VSMBR_TYP
AND G.FK_VSMBR_NBR
= E.FK_VSMBR_NBR
AND G.EFF_DT
<= :WS-PPEND-DT
AND G.EXPR_DT
>= :WS-PPEND-DT
END-EXEC
EVALUATE SQLCODE
WHEN 0
MOVE WS-SM-APR-NAME TO SDI-SM-SMAG-NAME
WHEN 100
MOVE SPACES
TO WS-SM-APR-NAME
MOVE WS-SM-APR-NAME TO SDI-SM-SMAG-NAME
WHEN OTHER
MOVE 3300 TO WS-ABEND
PERFORM 9999-ABEND-PARA
END-EVALUATE.
3300-EXIT.
EXIT.
*
3350-READ-TCAT-PARA.
MOVE ' ' TO WS-NUID
EXEC SQL
SELECT PROCESSED_BY_ID
INTO :WS-NUID

00048230
00112000

00048000
00048100
00048230
00112000

00048000
00048100
00048230
00112000
00106700
00106800
00106900
00107000

FROM VTCAT_TCAR_AUDIT B
00107100
WHERE B.FK_TCAR_STAFF_TP = :WS-CUR-SMBR-TYP
00107200
AND B.FK_TCAR_STAFF_NB = :WS-CUR-SMBR-NBR
00107300
AND B.FK_TCAR_PP_END_DT = DATE(:WS-PRE-PPED)
00107400
AND B.FK_TCAR_VER_NBR = 0
00107500
AND B.STATUS_CD
= 'A'
00107600
AND TIMESTAMP( PROCESSED_DT,PROCESSED_TM) IN
00107700
(SELECT MAX(TIMESTAMP( C.PROCESSED_DT,C.PROCESSED_TM))00107800
FROM VTCAT_TCAR_AUDIT C
00107900
WHERE B.FK_TCAR_STAFF_NB = C.FK_TCAR_STAFF_NB
00108000
AND B.FK_TCAR_STAFF_TP = C.FK_TCAR_STAFF_TP
00108100
AND B.FK_TCAR_PP_END_DT = C.FK_TCAR_PP_END_DT
00108200
AND B.FK_TCAR_VER_NBR = C.FK_TCAR_VER_NBR )
00108300
END-EXEC.
00108400
EVALUATE SQLCODE
00108500
WHEN 0
00108600
DISPLAY 'AFTER TCAT' WS-NUID
MOVE WS-NUID TO WS-TEMP-NUID
MOVE ' ' TO WS-TCAR-APR-NAME
EXEC SQL
SELECT
STRIP(K.LST_NM) || ',' || STRIP(K.FRST_NM)
INTO :WS-TCAR-APR-NAME
FROM VSMBR_STAFF_MBR K,
VSMPF_SMBR_PRFL L
WHERE L.ACCESS_USERID
= :WS-NUID
AND
L.EFF_DT
<= :WS-PPEND-DT
AND
L.EXPR_DT
>= :WS-PPEND-DT
AND
K.TYP
= L.FK_VSMBR_TYP
AND
K.NBR
= L.FK_VSMBR_NBR
END-EXEC
EVALUATE SQLCODE
WHEN 0
MOVE WS-TCAR-APR-NAME TO SDI-TCARAPR-NAME
WHEN 100
MOVE SPACES
TO WS-TCAR-APR-NAME
WHEN OTHER
MOVE 3351 TO WS-ABEND
PERFORM 9999-ABEND-PARA
END-EVALUATE
WHEN 100
00108600
MOVE SPACES TO WS-TEMP-NUID WS-TCAR-APR-NAME
WHEN OTHER
00108600
MOVE 3350 TO WS-ABEND
PERFORM 9999-ABEND-PARA
END-EVALUATE.
3350-EXIT.
00048000
EXIT.
00048100
*
00048230
3500-WRITE-RPT-PARA.
00112000
MOVE SPACES TO FILLER-10 FILLER-0
MOVE '@' TO FILLER-1,FILLER-2,FILLER-3,FILLER-4,FILLER-5
MOVE '@' TO FILLER-6,FILLER-7,FILLER-8,FILLER-9
MOVE SPACES TO FILLER-H10 FILLER-H0
MOVE '@' TO FILLER-H1,FILLER-H2,FILLER-H3,FILLER-H4
MOVE '@' TO FILLER-H5,FILLER-H6,FILLER-H7,FILLER-H8
MOVE '@' TO FILLER-H9
WRITE SDI-RECORD.
3500-EXIT.
00048000
EXIT.
00048100

*
3600-UPDATESMBR-PARA.
EXEC SQL
UPDATE VSMBR_STAFF_MBR
SET FK_VSMAG_NBR = 51430
,HOME_EXPNS_CD = :WS-SMAG-NBR
WHERE TYP
= :WS-CUR-SMBR-TYP
AND NBR
= :WS-CUR-SMBR-NBR
AND FK_VSMAG_NBR <> 51430
END-EXEC
EVALUATE SQLCODE
WHEN 0
EXEC SQL
COMMIT
END-EXEC
DISPLAY 'SMBR COMMITED:' WS-CUR-SMBR-NBR
WHEN 100
CONTINUE
WHEN OTHER
MOVE 3600 TO WS-ABEND
PERFORM 9999-ABEND-PARA
END-EVALUATE.
3600-EXIT.
EXIT.

00048230
00112000

00048000
00048100
*
00048230
4000-CLOSE-FILE-PARA.
00112000
CLOSE PARM-FILE.
00112100
IF PARM-STATUS NOT = '00'
00112200
MOVE 4000 TO
WS-ABEND
00112300
PERFORM 9999-ABEND-PARA
00112400
END-IF.
00112500
CLOSE SDIRPT-FILE.
00112600
IF SDIRPT-STATUS NOT = '00'
00112700
MOVE 4001 TO
WS-ABEND
00112800
PERFORM 9999-ABEND-PARA
00112900
END-IF.
00113000
4000-CLOSE-EXIT.
00113100
EXIT.
00113200
*
00113300
9900-SQL-ERR-PARA.
00113400
CALL 'DSNTIAR' USING SQLCA ERR-MSG ERR-LEN
00113500
IF RETURN-CODE = 0
00113600
PERFORM VARYING I-1 FROM 1 BY 1 UNTIL I-1 > 8
00113700
DISPLAY ERR-MSG-T(I-1)
00113800
END-PERFORM
00113900
ELSE
00114000
DISPLAY 'SQLCODE:' WS-SQL-CODE
00114100
DISPLAY 'SQLRRMC:' SQLERRMC
00114200
DISPLAY 'SQLSTAT:' SQLSTATE
00114300
DISPLAY 'SQLERRD:' SQLERRD(1) ',' SQLERRD(2) ',' SQLERRD(3)00114400
',' SQLERRD(4) ',' SQLERRD(5) ',' SQLERRD(6)
00114500
END-IF.
00114600
9900-EXIT.
00114700
EXIT.
00114800
*
00114900
9999-ABEND-PARA.
00115000
DISPLAY '********* FORCE ABEND********'
00115100
MOVE SQLCODE TO WS-SQL-CODE
00115200
DISPLAY 'ABEND CODE:' WS-ABEND
00115210
EVALUATE WS-ABEND
00115300

WHEN 1001
DISPLAY 'PARM-FILE OPEN FAILED:' PARM-STATUS
WHEN 1002
DISPLAY 'SDI OUPUT FILE OPEN FAILED:' SDIRPT-STATUS
WHEN 1003
DISPLAY 'EXTRACT FROM SYSDUMMY FAILED:' WS-SQL-CODE
PERFORM 9900-SQL-ERR-PARA THRU 9900-EXIT
WHEN 1004
DISPLAY 'PARM FILE READ FAILED:' PARM-STATUS
WHEN 1005
DISPLAY 'PARM FILE IS EMPTY, RUN PARAMETER MISSING'
WHEN 1006
DISPLAY 'PAY PERIOD READ FAILED:' WS-SQL-CODE
DISPLAY 'DATE:' WS-PPEND-DT ' TYP:' WS-PPER-TYPE
PERFORM 9900-SQL-ERR-PARA THRU 9900-EXIT
WHEN 1007
DISPLAY 'SYSIBM DATE FUNCTION FAILED:' WS-SQL-CODE
DISPLAY 'PPEND:' WS-PPEND-DT
DISPLAY 'PPSTR:' WS-PPSTR-DT
PERFORM 9900-SQL-ERR-PARA THRU 9900-EXIT
WHEN 1008
DISPLAY 'PAY PERIOD SELECT FAILED:' WS-SQL-CODE
DISPLAY 'DATE:' WS-CUR-END-DT ' TYP:' WS-PPER-TYPE
PERFORM 9900-SQL-ERR-PARA THRU 9900-EXIT
WHEN 1009
DISPLAY 'SYSIBM DATE FUNCTION FAILED:' WS-SQL-CODE
DISPLAY 'DATE:' WS-CUR-END-DT ' TYP:' WS-PPER-TYPE
PERFORM 9900-SQL-ERR-PARA THRU 9900-EXIT
WHEN 3000
DISPLAY 'CURSOR CUR_SDI OPEN FAILED:' WS-SQL-CODE
PERFORM 9900-SQL-ERR-PARA THRU 9900-EXIT
WHEN 3001
DISPLAY 'CURSOR CUR_SDI OPEN FAILED:' WS-SQL-CODE
PERFORM 9900-SQL-ERR-PARA THRU 9900-EXIT
WHEN 3100
DISPLAY 'CURSOR CUR_SDI FETCH FAILED:' WS-SQL-CODE
PERFORM 9900-SQL-ERR-PARA THRU 9900-EXIT
WHEN 3200
DISPLAY 'SELECT NUID FAILED :' WS-SQL-CODE
PERFORM 9900-SQL-ERR-PARA THRU 9900-EXIT
WHEN 3300
DISPLAY 'SELECT SMAG FAILED :' WS-SQL-CODE
PERFORM 9900-SQL-ERR-PARA THRU 9900-EXIT
WHEN 3350
DISPLAY 'SELECT TCARDUDIT FAILED :' WS-SQL-CODE
PERFORM 9900-SQL-ERR-PARA THRU 9900-EXIT
WHEN 3351
DISPLAY 'SELECT TCARAPR NAME FAILED :' WS-SQL-CODE
PERFORM 9900-SQL-ERR-PARA THRU 9900-EXIT
WHEN 3600
DISPLAY 'SMBR UPDATE FAILED :' WS-SQL-CODE
PERFORM 9900-SQL-ERR-PARA THRU 9900-EXIT
WHEN 4001
DISPLAY 'PARM-FILE CLOSE FAILED:' PARM-STATUS
WHEN 4002
DISPLAY 'SDI OUPUT FILE CLOSE FAILED:' SDIRPT-STATUS
END-EVALUATE
DISPLAY 'SMBR:' WS-CUR-SMBR-NBR
DISPLAY 'TYPE:' WS-CUR-SMBR-TYP
DISPLAY 'PPE:'
WS-CUR-END-DT

00115400
00115500
00115600
00115700
00115800
00115900
00116000
00116100
00116200
00116300
00116400
00116500
00116600
00116700
00116800
00116900
00117000
00117100
00117110
00117200
00117210
00117220
00117230
00117240
00117250
00117260
00117270
00117280
00117250
00117260
00117280
00117250
00117260
00117280
00117250
00117260
00117280
00117250
00117260
00117280
00117250
00117260
00117280
00117250
00117260
00117280
00117250
00117260
00117280
00117250
00117260
00117280
00115400
00115500
00115600
00115700
00133800
00133810
00133820
00133830

EXEC SQL
ROLLBACK
END-EXEC
CALL 'ILBOABN0' USING WS-ABEND.

00133900
00134000
00134100
00134200

Você também pode gostar