Guest User

Untitled

a guest
Dec 23rd, 2017
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
COBOL 13.62 KB | None | 0 0
  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID. ISSALOAD.
  3.       *
  4.       *
  5.        ENVIRONMENT DIVISION.
  6.        INPUT-OUTPUT SECTION.
  7.        FILE-CONTROL.
  8.            SELECT INSISSAG ASSIGN TO ISSAENTR FILE STATUS IS WS-STATUS1.
  9.            SELECT ISSAOUT  ASSIGN TO ISSAOUT  FILE STATUS IS WS-STATUS2.
  10.       *
  11.       *
  12.        DATA DIVISION.
  13.       *
  14.        FILE SECTION.
  15.       ******************************************************************
  16.       *            DECLARA플O DO ARQUIVO DE ENTRADA                   *
  17.       ******************************************************************
  18.        FD INSISSAG
  19.            RECORDING MODE IS F
  20.            BLOCK CONTAINS 257 CHARACTERS.
  21.        01 REG-INSISSAG PIC X(257).
  22.       ******************************************************************
  23.       *             DECLARA플O DO ARQUIVO DE SAIDA                    *
  24.       ******************************************************************
  25.        FD ISSAOUT
  26.            RECORDING MODE IS F
  27.            BLOCK CONTAINS 320 CHARACTERS.
  28.        01 REG-ISSAOUT PIC X(320).
  29.       *
  30.        WORKING-STORAGE SECTION.
  31.       *
  32. ******************************************************************
  33.       *                 VARIAVEIS DE STATUS                           *
  34.       ******************************************************************
  35.        01 WS-STATUS1                  PIC X(02).
  36.           88 WS-STATUS1-OK            VALUE '00'.
  37.           88 WS-STATUS1-ERROR         VALUE '01' THRU '99'.
  38.        01 WS-STATUS2                  PIC X(02).
  39.           88 WS-STATUS2-OK            VALUE '00'.
  40.           88 WS-STATUS2-ERROR         VALUE '01' THRU '99'.
  41.       ******************************************************************
  42.       *                 VARIAVEIS DE ARQUIVO                          *
  43.       ******************************************************************
  44.        01 WS-TABLE.
  45.           05 WS-HEADER.
  46.              10 WS-ANALYST            PIC X(06).
  47.              10 WS-PROJECT            PIC 9(06).
  48.              10 WS-REQUESTER          PIC X(20).
  49.           05 WS-DETAIL.
  50.              10 CBA-MCN-BASE          PIC X(06).
  51.              10 CBA-MCN-SFX           PIC X(03).
  52.              10 CBA-SLS-OFC-CD        PIC X(02).
  53.              10 CBA-BILL-GRP-NUM      PIC X(03).
  54.              10 CBA-BILL-CYC-DAY      PIC X(02).
  55.              10 CBA-BILLING-NAME      PIC X(36).
  56.              10 CBA-BILLING-ADDR-1    PIC X(36).
  57.              10 CBA-BILLING-ADDR-2    PIC X(36).
  58.              10 CBA-BILLING-ADDR-3    PIC X(36).
  59.              10 CBA-CITY-NM           PIC X(30).
  60.              10 CBA-PO-OUT-OF-COUNTRY PIC X(36).
  61.              10 CBA-ST-ABBR           PIC X(02).
  62.              10 CBA-ZIP-CD            PIC X(09).
  63.              10 CBA-BILLER-ID         PIC X(02).
  64.              10 CBA-TYA               PIC X(02).
  65.              10 FILLER                PIC X(16).
  66.       ******************************************************************
  67.       *                 VARIAVEIS TABELA DB2                          *
  68.       ******************************************************************
  69.        EXEC SQL
  70.            DECLARE GUIDB.GUITBL
  71.                    (CBA-MCN-BASE           VARCHAR(6)  NOT NULL,
  72.                     CBA-MCN-SFX            VARCHAR(3)  NOT NULL,
  73.                     CBA-SLS-OFC-CD         VARCHAR(2)  NOT NULL,
  74.                     CBA-BILL-GRP-NUM       VARCHAR(3)  NOT NULL,
  75.                     CBA-BILL-CYC-DAY       VARCHAR(2)  NOT NULL,
  76.                     CBA-BILLING-NAME       VARCHAR(36) NOT NULL,
  77.                     CBA-BILLING-ADDR-1     VARCHAR(36) NOT NULL,
  78.                     CBA-BILLING-ADDR-2     VARCHAR(36) NOT NULL,
  79.                     CBA-BILLING-ADDR-3     VARCHAR(36) NOT NULL,
  80.                     CBA-CITY-NM            VARCHAR(30) NOT NULL,
  81.                     CBA-PO-OUT-OF-COUNTRY  VARCHAR(36) NOT NULL,
  82.                     CBA-ST-ABBR            VARCHAR(2)  NOT NULL,
  83.                     CBA-ZIP-CD             VARCHAR(9)  NOT NULL,
  84.                     CBA-BILLER-ID          VARCHAR(2)  NOT NULL,
  85.                     CBA-TYA                VARCHAR(2)  NOT NULL )
  86.        END-EXEC.
  87.       ******************************************************************
  88.       *                      SQLCA                                    *
  89.       ******************************************************************
  90.        EXEC SQL
  91.             INCLUDE SQLCA
  92.        END-EXEC.
  93.       ******************************************************************
  94.       *                 VARIAVEIS AUXILIARES                          *
  95.       ******************************************************************
  96.        01 WS-TABLE-AUX                PIC X(257).
  97.        01 WS-HEADER-AUX               PIC X(20).
  98.        01 WS-FIELD-AUX                PIC X(01).
  99.        01 WS-LINE-AUX                 PIC X(01) VALUE " ".
  100.       ******************************************************************
  101.       *                 VARIAVEIS DE CONTADOR                         *
  102.       ******************************************************************
  103.        01 WS-CONT                     PIC 9(05) VALUE ZERO.
  104.       ******************************************************************
  105.       *                 VARIAVEIS DE CONTROLE                         *
  106.       ******************************************************************
  107.        01 WS-FLAG                     PIC 9(03) VALUE ZERO.
  108.       *
  109.       *
  110.        PROCEDURE DIVISION.
  111.       *
  112.        0000-MAIN.
  113.       ******************************************************************
  114.       *                      ROTINA PRINCIPAL                         *
  115.       *****************************************************************
  116.            PERFORM 1000-OPEN.
  117.            PERFORM 2000-READ UNTIL WS-FLAG = 999.
  118.            PERFORM 3000-CONT.
  119.            PERFORM 4000-CLOSE.
  120.            STOP RUN.
  121.       *
  122.        1000-OPEN.
  123.       ******************************************************************
  124.       *                    ABERTURA DOS ARQUIVOS                      *
  125.       ******************************************************************
  126.            OPEN INPUT  INSISSAG.
  127.            IF WS-STATUS1-ERROR
  128.               DISPLAY "ERRO NA ABERTURA DO ARQUIVO DE ENTRADA!"
  129.               DISPLAY "FILE STATUS: " WS-STATUS1
  130.            ELSE
  131.               CONTINUE
  132.            END-IF
  133.            OPEN OUTPUT ISSAOUT
  134.            IF WS-STATUS2-ERROR
  135.               DISPLAY "ERRO NA ABERTURA DO ARQUIVO DE SAIDA!"
  136.               DISPLAY "FILE STATUS: " WS-STATUS2
  137.            ELSE
  138.               CONTINUE.
  139.       *
  140.        2000-READ.
  141.       ******************************************************************
  142.       *                 LEITURA DO ARQUIVO INSISSAG                   *
  143.       ******************************************************************
  144.            READ INSISSAG INTO WS-TABLE-AUX AT END MOVE 999 TO WS-FLAG.
  145.       ******************************************************************
  146.       *              VERIFICACAO DE DETAIL OU HEADER                  *
  147.       ******************************************************************
  148.            IF WS-TABLE-AUX(1:1) EQUAL '*'
  149.                PERFORM 2600-UNDETAIL
  150.            ELSE
  151.                PERFORM 2200-UNHEADER
  152.            END-IF.
  153.       *
  154.        2200-UNHEADER.
  155.       ******************************************************************
  156.       *                    UNSTRING DO HEADER                         *
  157.       ******************************************************************
  158.            IF WS-TABLE-AUX(1:2) EQUAL 'OP' OR 'JW'
  159.                  PERFORM 2300-UNANALYST
  160.            ELSE
  161.               IF WS-TABLE-AUX(1:6) NOT NUMERIC
  162.                  PERFORM 2500-UNREQUESTER
  163.               ELSE
  164.                  PERFORM 2400-UNPROJECT
  165.               END-IF
  166.            END-IF.
  167.       *
  168.        2300-UNANALYST.
  169.       ******************************************************************
  170.       *                   UNSTRING DO ANALYST                         *
  171.       ******************************************************************
  172.            UNSTRING
  173.                   WS-TABLE-AUX DELIMITED BY ';'
  174.            INTO
  175.                   WS-ANALYST
  176.            END-UNSTRING.
  177.            DISPLAY 'ANALYST: ' WS-ANALYST.
  178.       *
  179.        2400-UNPROJECT.
  180.       ******************************************************************
  181.       *                   UNSTRING DO PROJECT                         *
  182.       ******************************************************************
  183.            UNSTRING
  184.                   WS-TABLE-AUX DELIMITED BY ';'
  185.            INTO
  186.                   WS-PROJECT
  187.            END-UNSTRING.
  188.            DISPLAY 'PROJECT: ' WS-PROJECT.
  189.       *
  190.        2500-UNREQUESTER.
  191.       ******************************************************************
  192.       *                   UNSTRING DO REQUESTER                       *
  193.       ******************************************************************
  194.            UNSTRING
  195.                   WS-TABLE-AUX DELIMITED BY ';'
  196.            INTO
  197.                   WS-REQUESTER
  198.            END-UNSTRING.
  199.            DISPLAY 'REQUESTER:' WS-REQUESTER.
  200.       *
  201.        2600-UNDETAIL.
  202.       ******************************************************************
  203.       *                    UNSTRING DO DETAIL                         *
  204.       ******************************************************************
  205.            UNSTRING
  206.                   WS-TABLE-AUX DELIMITED BY '*' OR ';'
  207.            INTO
  208.                   WS-FIELD-AUX
  209.                   CBA-MCN-BASE
  210.                   CBA-MCN-SFX
  211.                   CBA-SLS-OFC-CD
  212.                   CBA-BILL-GRP-NUM
  213.                   CBA-BILL-CYC-DAY
  214.                   CBA-BILLING-NAME
  215.                   CBA-BILLING-ADDR-1
  216.                   CBA-BILLING-ADDR-2
  217.                   CBA-BILLING-ADDR-3
  218.                   CBA-CITY-NM
  219.                   CBA-PO-OUT-OF-COUNTRY
  220.                   CBA-ST-ABBR
  221.                   CBA-ZIP-CD
  222.                   CBA-BILLER-ID
  223.                   CBA-TYA
  224.            END-UNSTRING.
  225.  
  226.       ******************************************************************
  227.       *                 CONTAGEM DE ARQUIVOS LIDOS                    *
  228.       ******************************************************************
  229.            ADD 1 TO WS-CONT.
  230.       ******************************************************************
  231.       *                 ATUALIZA플O DA TABELA DB2                     *
  232.       ******************************************************************
  233.            EXEC SQL
  234.                 UPDATE GUIDB.GUITBL
  235.                    SET CBA_MCN_BASE       = CBA-MCN-BASE;
  236.                 UPDATE GUIDB.GUITBL
  237.                    SET CBA_MCN_SFX        = CBA-MCN-SFX;
  238.                 UPDATE GUIDB.GUITBL
  239.                    SET CBA_SLS_OFC_CD     = CBA-SLS-OFC-CD;
  240.                 UPDATE GUIDB.GUITBL
  241.                    SET CBA_BILL_GRP_NUM   = CBA-BILL-GRP-NUM;
  242.                 UPDATE GUIDB.GUITBL
  243.                    SET CBA_BILL_CYC_DAY   = CBA-BILL-CYC-DAY;
  244.                 UPDATE GUIDB.GUITBL
  245.                    SET CBA_BILLING_NAME   = CBA-BILLING-NAME;
  246.                 UPDATE GUIDB.GUITBL
  247.                    SET CBA_BILLING_ADDR_1 = CBA-BILLING-ADDR-1;
  248.                 UPDATE GUIDB.GUITBL
  249.                    SET CBA_BILLING_ADDR_2 = CBA-BILLING-ADDR-2;
  250.                 UPDATE GUIDB.GUITBL
  251.                    SET CBA_BILLING_ADDR_3 = CBA-BILLING-ADDR-3;
  252.                 UPDATE GUIDB.GUITBL
  253.                    SET CBA_CITY_NM        = CBA-CITY-NM;
  254.                 UPDATE GUIDB.GUITBL
  255.                    SET CBA_PO_OUT_OF_CTR  = CBA-PO-OUT-OF-COUNTRY;
  256.                 UPDATE GUIDB.GUITBL
  257.                    SET CBA_ST_ABBR        = CBA-ST-ABBR;
  258.                 UPDATE GUIDB.GUITBL
  259.                    SET CBA_ZIP_CD         = CBA-ZIP-CD;
  260.                 UPDATE GUIDB.GUITBL
  261.                    SET CBA_BILLER_ID      = CBA-BILLER-ID;
  262.                 UPDATE GUIDB.GUITBL
  263.                    SET CBA_TYA            = CBA-TYA;
  264.            END-EXEC.
  265.       ******************************************************************
  266.       *         ESCRITA NO ARQUIVO DE SAIDA O MCN / SO / BG           *
  267.       ******************************************************************
  268.            WRITE REG-ISSAOUT FROM CBA-MCN-BASE.
  269.            WRITE REG-ISSAOUT FROM CBA-SLS-OFC-CD.
  270.            WRITE REG-ISSAOUT FROM CBA-BILL-GRP-NUM.
  271.       ******************************************************************
  272.       *                  DISPLAY DO MCN SO BG                         *
  273.       ******************************************************************
  274.            DISPLAY 'MCN:' CBA-MCN-BASE ' '
  275.                    'SO:'  CBA-SLS-OFC-CD ' '
  276.                    'BG:'  CBA-BILL-GRP-NUM.
  277.       *
  278.        3000-CONT.
  279.       ******************************************************************
  280.       *                    DISPLAY DO CONTADOR                        *
  281.       ******************************************************************
  282.            SUBTRACT 1 FROM WS-CONT
  283.            DISPLAY "CONTAS LIDAS COM SUCESSO: " WS-CONT.
  284.       *
  285.        4000-CLOSE.
  286.       ******************************************************************
  287.       *                 FECHAMENTO DOS ARQUIVOS                       *
  288.       ******************************************************************
  289.            CLOSE INSISSAG.
  290.            IF WS-STATUS1-ERROR
  291.               DISPLAY "ERRO NO FECHAMENTO DO ARQUIVO DE ENTRADA!"
  292.               DISPLAY "FILE STATUS: " WS-STATUS1
  293.            ELSE
  294.               CONTINUE
  295.            END-IF
  296.            CLOSE ISSAOUT.
  297.            IF WS-STATUS1-ERROR
  298.               DISPLAY "ERRO NO FECHAMENTO DO ARQUIVO DE SAIDA!"
  299.               DISPLAY "FILE STATUS: " WS-STATUS2
  300.            ELSE
  301.               CONTINUE.
  302. 
Add Comment
Please, Sign In to add comment