Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IDENTIFICATION DIVISION.
- PROGRAM-ID. ISSALOAD.
- *
- *
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- FILE-CONTROL.
- SELECT INSISSAG ASSIGN TO ISSAENTR FILE STATUS IS WS-STATUS1.
- SELECT ISSAOUT ASSIGN TO ISSAOUT FILE STATUS IS WS-STATUS2.
- *
- *
- DATA DIVISION.
- *
- FILE SECTION.
- ******************************************************************
- * DECLARA플O DO ARQUIVO DE ENTRADA *
- ******************************************************************
- FD INSISSAG
- RECORDING MODE IS F
- BLOCK CONTAINS 257 CHARACTERS.
- 01 REG-INSISSAG PIC X(257).
- ******************************************************************
- * DECLARA플O DO ARQUIVO DE SAIDA *
- ******************************************************************
- FD ISSAOUT
- RECORDING MODE IS F
- BLOCK CONTAINS 320 CHARACTERS.
- 01 REG-ISSAOUT PIC X(320).
- *
- WORKING-STORAGE SECTION.
- *
- ******************************************************************
- * VARIAVEIS DE STATUS *
- ******************************************************************
- 01 WS-STATUS1 PIC X(02).
- 88 WS-STATUS1-OK VALUE '00'.
- 88 WS-STATUS1-ERROR VALUE '01' THRU '99'.
- 01 WS-STATUS2 PIC X(02).
- 88 WS-STATUS2-OK VALUE '00'.
- 88 WS-STATUS2-ERROR VALUE '01' THRU '99'.
- ******************************************************************
- * VARIAVEIS DE ARQUIVO *
- ******************************************************************
- 01 WS-TABLE.
- 05 WS-HEADER.
- 10 WS-ANALYST PIC X(06).
- 10 WS-PROJECT PIC 9(06).
- 10 WS-REQUESTER PIC X(20).
- 05 WS-DETAIL.
- 10 CBA-MCN-BASE PIC X(06).
- 10 CBA-MCN-SFX PIC X(03).
- 10 CBA-SLS-OFC-CD PIC X(02).
- 10 CBA-BILL-GRP-NUM PIC X(03).
- 10 CBA-BILL-CYC-DAY PIC X(02).
- 10 CBA-BILLING-NAME PIC X(36).
- 10 CBA-BILLING-ADDR-1 PIC X(36).
- 10 CBA-BILLING-ADDR-2 PIC X(36).
- 10 CBA-BILLING-ADDR-3 PIC X(36).
- 10 CBA-CITY-NM PIC X(30).
- 10 CBA-PO-OUT-OF-COUNTRY PIC X(36).
- 10 CBA-ST-ABBR PIC X(02).
- 10 CBA-ZIP-CD PIC X(09).
- 10 CBA-BILLER-ID PIC X(02).
- 10 CBA-TYA PIC X(02).
- 10 FILLER PIC X(16).
- ******************************************************************
- * VARIAVEIS TABELA DB2 *
- ******************************************************************
- EXEC SQL
- DECLARE GUIDB.GUITBL
- (CBA-MCN-BASE VARCHAR(6) NOT NULL,
- CBA-MCN-SFX VARCHAR(3) NOT NULL,
- CBA-SLS-OFC-CD VARCHAR(2) NOT NULL,
- CBA-BILL-GRP-NUM VARCHAR(3) NOT NULL,
- CBA-BILL-CYC-DAY VARCHAR(2) NOT NULL,
- CBA-BILLING-NAME VARCHAR(36) NOT NULL,
- CBA-BILLING-ADDR-1 VARCHAR(36) NOT NULL,
- CBA-BILLING-ADDR-2 VARCHAR(36) NOT NULL,
- CBA-BILLING-ADDR-3 VARCHAR(36) NOT NULL,
- CBA-CITY-NM VARCHAR(30) NOT NULL,
- CBA-PO-OUT-OF-COUNTRY VARCHAR(36) NOT NULL,
- CBA-ST-ABBR VARCHAR(2) NOT NULL,
- CBA-ZIP-CD VARCHAR(9) NOT NULL,
- CBA-BILLER-ID VARCHAR(2) NOT NULL,
- CBA-TYA VARCHAR(2) NOT NULL )
- END-EXEC.
- ******************************************************************
- * SQLCA *
- ******************************************************************
- EXEC SQL
- INCLUDE SQLCA
- END-EXEC.
- ******************************************************************
- * VARIAVEIS AUXILIARES *
- ******************************************************************
- 01 WS-TABLE-AUX PIC X(257).
- 01 WS-HEADER-AUX PIC X(20).
- 01 WS-FIELD-AUX PIC X(01).
- 01 WS-LINE-AUX PIC X(01) VALUE " ".
- ******************************************************************
- * VARIAVEIS DE CONTADOR *
- ******************************************************************
- 01 WS-CONT PIC 9(05) VALUE ZERO.
- ******************************************************************
- * VARIAVEIS DE CONTROLE *
- ******************************************************************
- 01 WS-FLAG PIC 9(03) VALUE ZERO.
- *
- *
- PROCEDURE DIVISION.
- *
- 0000-MAIN.
- ******************************************************************
- * ROTINA PRINCIPAL *
- *****************************************************************
- PERFORM 1000-OPEN.
- PERFORM 2000-READ UNTIL WS-FLAG = 999.
- PERFORM 3000-CONT.
- PERFORM 4000-CLOSE.
- STOP RUN.
- *
- 1000-OPEN.
- ******************************************************************
- * ABERTURA DOS ARQUIVOS *
- ******************************************************************
- OPEN INPUT INSISSAG.
- IF WS-STATUS1-ERROR
- DISPLAY "ERRO NA ABERTURA DO ARQUIVO DE ENTRADA!"
- DISPLAY "FILE STATUS: " WS-STATUS1
- ELSE
- CONTINUE
- END-IF
- OPEN OUTPUT ISSAOUT
- IF WS-STATUS2-ERROR
- DISPLAY "ERRO NA ABERTURA DO ARQUIVO DE SAIDA!"
- DISPLAY "FILE STATUS: " WS-STATUS2
- ELSE
- CONTINUE.
- *
- 2000-READ.
- ******************************************************************
- * LEITURA DO ARQUIVO INSISSAG *
- ******************************************************************
- READ INSISSAG INTO WS-TABLE-AUX AT END MOVE 999 TO WS-FLAG.
- ******************************************************************
- * VERIFICACAO DE DETAIL OU HEADER *
- ******************************************************************
- IF WS-TABLE-AUX(1:1) EQUAL '*'
- PERFORM 2600-UNDETAIL
- ELSE
- PERFORM 2200-UNHEADER
- END-IF.
- *
- 2200-UNHEADER.
- ******************************************************************
- * UNSTRING DO HEADER *
- ******************************************************************
- IF WS-TABLE-AUX(1:2) EQUAL 'OP' OR 'JW'
- PERFORM 2300-UNANALYST
- ELSE
- IF WS-TABLE-AUX(1:6) NOT NUMERIC
- PERFORM 2500-UNREQUESTER
- ELSE
- PERFORM 2400-UNPROJECT
- END-IF
- END-IF.
- *
- 2300-UNANALYST.
- ******************************************************************
- * UNSTRING DO ANALYST *
- ******************************************************************
- UNSTRING
- WS-TABLE-AUX DELIMITED BY ';'
- INTO
- WS-ANALYST
- END-UNSTRING.
- DISPLAY 'ANALYST: ' WS-ANALYST.
- *
- 2400-UNPROJECT.
- ******************************************************************
- * UNSTRING DO PROJECT *
- ******************************************************************
- UNSTRING
- WS-TABLE-AUX DELIMITED BY ';'
- INTO
- WS-PROJECT
- END-UNSTRING.
- DISPLAY 'PROJECT: ' WS-PROJECT.
- *
- 2500-UNREQUESTER.
- ******************************************************************
- * UNSTRING DO REQUESTER *
- ******************************************************************
- UNSTRING
- WS-TABLE-AUX DELIMITED BY ';'
- INTO
- WS-REQUESTER
- END-UNSTRING.
- DISPLAY 'REQUESTER:' WS-REQUESTER.
- *
- 2600-UNDETAIL.
- ******************************************************************
- * UNSTRING DO DETAIL *
- ******************************************************************
- UNSTRING
- WS-TABLE-AUX DELIMITED BY '*' OR ';'
- INTO
- WS-FIELD-AUX
- CBA-MCN-BASE
- CBA-MCN-SFX
- CBA-SLS-OFC-CD
- CBA-BILL-GRP-NUM
- CBA-BILL-CYC-DAY
- CBA-BILLING-NAME
- CBA-BILLING-ADDR-1
- CBA-BILLING-ADDR-2
- CBA-BILLING-ADDR-3
- CBA-CITY-NM
- CBA-PO-OUT-OF-COUNTRY
- CBA-ST-ABBR
- CBA-ZIP-CD
- CBA-BILLER-ID
- CBA-TYA
- END-UNSTRING.
- ******************************************************************
- * CONTAGEM DE ARQUIVOS LIDOS *
- ******************************************************************
- ADD 1 TO WS-CONT.
- ******************************************************************
- * ATUALIZA플O DA TABELA DB2 *
- ******************************************************************
- EXEC SQL
- UPDATE GUIDB.GUITBL
- SET CBA_MCN_BASE = CBA-MCN-BASE;
- UPDATE GUIDB.GUITBL
- SET CBA_MCN_SFX = CBA-MCN-SFX;
- UPDATE GUIDB.GUITBL
- SET CBA_SLS_OFC_CD = CBA-SLS-OFC-CD;
- UPDATE GUIDB.GUITBL
- SET CBA_BILL_GRP_NUM = CBA-BILL-GRP-NUM;
- UPDATE GUIDB.GUITBL
- SET CBA_BILL_CYC_DAY = CBA-BILL-CYC-DAY;
- UPDATE GUIDB.GUITBL
- SET CBA_BILLING_NAME = CBA-BILLING-NAME;
- UPDATE GUIDB.GUITBL
- SET CBA_BILLING_ADDR_1 = CBA-BILLING-ADDR-1;
- UPDATE GUIDB.GUITBL
- SET CBA_BILLING_ADDR_2 = CBA-BILLING-ADDR-2;
- UPDATE GUIDB.GUITBL
- SET CBA_BILLING_ADDR_3 = CBA-BILLING-ADDR-3;
- UPDATE GUIDB.GUITBL
- SET CBA_CITY_NM = CBA-CITY-NM;
- UPDATE GUIDB.GUITBL
- SET CBA_PO_OUT_OF_CTR = CBA-PO-OUT-OF-COUNTRY;
- UPDATE GUIDB.GUITBL
- SET CBA_ST_ABBR = CBA-ST-ABBR;
- UPDATE GUIDB.GUITBL
- SET CBA_ZIP_CD = CBA-ZIP-CD;
- UPDATE GUIDB.GUITBL
- SET CBA_BILLER_ID = CBA-BILLER-ID;
- UPDATE GUIDB.GUITBL
- SET CBA_TYA = CBA-TYA;
- END-EXEC.
- ******************************************************************
- * ESCRITA NO ARQUIVO DE SAIDA O MCN / SO / BG *
- ******************************************************************
- WRITE REG-ISSAOUT FROM CBA-MCN-BASE.
- WRITE REG-ISSAOUT FROM CBA-SLS-OFC-CD.
- WRITE REG-ISSAOUT FROM CBA-BILL-GRP-NUM.
- ******************************************************************
- * DISPLAY DO MCN SO BG *
- ******************************************************************
- DISPLAY 'MCN:' CBA-MCN-BASE ' '
- 'SO:' CBA-SLS-OFC-CD ' '
- 'BG:' CBA-BILL-GRP-NUM.
- *
- 3000-CONT.
- ******************************************************************
- * DISPLAY DO CONTADOR *
- ******************************************************************
- SUBTRACT 1 FROM WS-CONT
- DISPLAY "CONTAS LIDAS COM SUCESSO: " WS-CONT.
- *
- 4000-CLOSE.
- ******************************************************************
- * FECHAMENTO DOS ARQUIVOS *
- ******************************************************************
- CLOSE INSISSAG.
- IF WS-STATUS1-ERROR
- DISPLAY "ERRO NO FECHAMENTO DO ARQUIVO DE ENTRADA!"
- DISPLAY "FILE STATUS: " WS-STATUS1
- ELSE
- CONTINUE
- END-IF
- CLOSE ISSAOUT.
- IF WS-STATUS1-ERROR
- DISPLAY "ERRO NO FECHAMENTO DO ARQUIVO DE SAIDA!"
- DISPLAY "FILE STATUS: " WS-STATUS2
- ELSE
- CONTINUE.
Add Comment
Please, Sign In to add comment