Escolar Documentos
Profissional Documentos
Cultura Documentos
IDENTIFICATION DIVISION.
**==============================================================*
PROGRAM-ID. CBAR1800.
AUTHOR. ONOFRE.
*===============================================================*
* C P M S I S T E M A S *
*---------------------------------------------------------------*
* *
* PROGRAMA : CBAR1800 *
* ANALISTA : MONICA - CPM/ALP *
* PROGRAMADOR : ONOFRE - CPM/ALP *
* DATA : 12/11/2003 *
* *
* OBJETIVO : *
* GERACAO DE ARQUIVO DE SOLICITACAO DE EXTRACAO DAS *
* TABELAS CBARB055 E YMARB000. *
* *
* ARQUIVOS: *
* DDNAME INCLUDE/BOOK *
* ARQSOLIC -------- *
* *
* BANCO DE DADOS: *
* DB2 *
* TABLE INCLUDE/BOOK *
* DB2PRD.CTRL_EXTRC_ARQ CBARB054 *
* DB2PRD.EMPR_TRNSM_PCIAL CBARB056 *
* *
* MODULOS CHAMADOS: *
* *
* -POOL1050 - CONEXAO COM DB2. *
* -POOL7100 - FORMATAR TELA DE ERRO DB2/IMS. *
* -POOL7600 - OBTER DATA E HORA CORRENTES. *
* -POOL1205 - OBTER INDICADOR DE DIA UTIL. *
* *
*===============================================================*
* ULTIMA ALTERACAO *
*---------------------------------------------------------------*
* *
* ANALISTA : EMERSON MARIA *
* PROGRAMADOR : EMMO *
* DATA : DEZEMBRO / 2005 *
* OBJETIVO : PROCEDIMENTOS FINAL DE ANO *
* *
*---------------------------------------------------------------*
* ULTIMA ALTERACAO *
*---------------------------------------------------------------*
* *
* ANALISTA : PRISCILLA DE AMORIM - G&P *
* DATA : DEZEMBRO / 2006 *
* OBJETIVO : PROCEDIMENTOS FINAL DE ANO *
* *
*---------------------------------------------------------------*
*---------------------------------------------------------------*
* A L T E R A C A O *
*---------------------------------------------------------------*
* *
* PROGRAMADOR : ALINE COUTINHO - G&P *
* ANALISTA : ALINE COUTINHO - G&P *
* DATA : JULHO/2007 *
* *
* OBJETIVO : *
* PROCEDIMENTOS FINAL DE ANO. *
* ALTERAR PARA CHAMAR O MODULO CBAR0007. *
* *
*===============================================================*
7COM01* A L T E R A C A O *
. *---------------------------------------------------------------*
. * *
. * PROGRAMADOR : FABRICA - 7COMM *
. * ANALISTA : FABIO MOREIRA - 7COMM *
. * DATA : JULHO/2019 *
. * *
. * OBJETIVO : *
. * ATENDIMENTO DO IN3153322 *
. * CORRECAO NO CALCULO DO HORARIO DE INICIO/TERMINO DE *
. * EXTRACAO EM FUNCAO DO TEMPO DE ESTORNO *
. * *
7COM01*===============================================================*
*===============================================================*
ENVIRONMENT DIVISION.
*===============================================================*
*---------------------------------------------------------------*
CONFIGURATION SECTION.
*---------------------------------------------------------------*
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
EJECT
*---------------------------------------------------------------*
INPUT-OUTPUT SECTION.
*---------------------------------------------------------------*
FILE-CONTROL.
EJECT
*===============================================================*
DATA DIVISION.
*===============================================================*
*---------------------------------------------------------------*
FILE SECTION.
*---------------------------------------------------------------*
*---------------------------------------------------------------*
* INPUT : EXTRACAO DAS TABELAS CBARB055 E YMARB000 *
* ORG. SEQUENCIAL - LRECL = 063 *
*---------------------------------------------------------------*
FD ARQSOLIC
RECORDING MODE IS F
LABEL RECORD IS STANDARD
BLOCK CONTAINS 0 RECORDS.
01 SOLIC-AREA.
03 SOLIC-SGMTO PIC 9(01).
03 SOLIC-EMPR PIC 9(09).
03 SOLIC-HORA-INIC PIC X(26).
03 SOLIC-HORA-FIM PIC X(26).
03 SOLIC-ARQ-VAZIO PIC X(01).
EJECT
*---------------------------------------------------------------*
WORKING-STORAGE SECTION.
*---------------------------------------------------------------*
*---TESTE-FS-STATUS---------------------------------------------*
*---MENSAGEM-FS-STATUS------------------------------------------*
*---------------------------------------------------------------*
* ACUMULADORES *
*---------------------------------------------------------------*
*---------------------------------------------------------------*
* AREA AUXILIAR *
*---------------------------------------------------------------*
01 WRK-AREA.
03 WRK-DIA-UTIL-UM PIC X(01) VALUE SPACES.
03 WRK-DIA-UTIL-DOIS PIC X(01) VALUE SPACES.
03 WRK-TIMESTAMP-FIM.
05 WRK-TIMESTAMP-AAAA-FIM PIC 9(04) VALUE ZEROS.
05 FILLER PIC X(01) VALUE '-'.
05 WRK-TIMESTAMP-MM-FIM PIC 9(02) VALUE ZEROS.
05 FILLER PIC X(01) VALUE '-'.
05 WRK-TIMESTAMP-DD-FIM PIC 9(02) VALUE ZEROS.
05 FILLER PIC X(01) VALUE '-'.
05 WRK-TIMESTAMP-HH-FIM PIC 9(02) VALUE ZEROS.
05 FILLER PIC X(01) VALUE '.'.
05 WRK-TIMESTAMP-MIN-FIM PIC 9(02) VALUE ZEROS.
05 FILLER PIC X(01) VALUE '.'.
05 WRK-TIMESTAMP-SS-FIM PIC 9(02) VALUE ZEROS.
05 FILLER PIC X(01) VALUE '.'.
05 WRK-TIMESTAMP-MSS-FIM PIC 9(06) VALUE ZEROS.
*---AREA-POOL7600------------------------------------------------*
01 WRK-DT-AAAAMMDD-R.
03 FILLER PIC 9(01).
03 WRK-DT-AMD PIC 9(08).
01 WRK-DATA-HORA.
03 WRK-DT-JULIANA PIC 9(05) COMP-3 VALUE ZEROS.
03 WRK-DT-AAMMDD PIC 9(07) COMP-3 VALUE ZEROS.
03 WRK-DT-AAAAMMDD PIC 9(09) COMP-3 VALUE ZEROS.
03 WRK-TI-HHMMSS PIC 9(07) COMP-3 VALUE ZEROS.
03 WRK-TI-HHMMSSMMMMMM PIC 9(13) COMP-3 VALUE ZEROS.
03 WRK-TIMESTAMP.
05 WRK-TIMESTAMP-AAAA PIC 9(04) VALUE ZEROS.
05 WRK-TIMESTAMP-MM PIC 9(02) VALUE ZEROS.
05 WRK-TIMESTAMP-DD PIC 9(02) VALUE ZEROS.
05 WRK-TIMESTAMP-HH PIC 9(02) VALUE ZEROS.
05 WRK-TIMESTAMP-MIN PIC 9(02) VALUE ZEROS.
05 WRK-TIMESTAMP-SS PIC 9(02) VALUE ZEROS.
05 WRK-TIMESTAMP-MSS PIC 9(06) VALUE ZEROS.
01 WRK-DH-R.
03 WRK-DATA.
05 WRK-DATA-D PIC 9(02).
05 WRK-DATA-M PIC 9(02).
05 WRK-DATA-A PIC 9(04).
03 WRK-DATA-R REDEFINES WRK-DATA
PIC 9(08).
03 WRK-HORA.
05 WRK-HH2 PIC 9(02).
05 WRK-MIN PIC 9(02).
05 WRK-SS PIC 9(02).
05 WRK-MSS PIC 9(06).
01 WRK-AREA-POOL0015.
03 WRK-DATA-SUPERIOR PIC 9(09) COMP-3 VALUE ZEROS.
03 WRK-DATA-INFERIOR PIC 9(09) COMP-3 VALUE ZEROS.
03 WRK-DIAS PIC S9(05) COMP-3 VALUE ZEROS.
*---AREA-POOL1205-----------------------------------------------*
01 LISTA-CAMPOS.
03 DT-ENVIADA PIC 9(08) COMP-3.
03 OPCAO PIC X(01).
03 DT-JULIANA PIC 9(07) COMP-3.
03 DT-EDITADA PIC X(10).
03 DT-GREGORI PIC 9(08).
03 DIA-SEMANA PIC X(13).
03 MES-EXTENSO PIC X(09).
03 DIA-UT-ANTER PIC 9(08).
03 DIA-UT-POSTE PIC 9(08).
*---AREA-POOL7100-----------------------------------------------*
-INC POL7100C
EJECT
*---TABELAS-DB2-------------------------------------------------*
EXEC SQL
INCLUDE SQLCA
END-EXEC.
EXEC SQL
INCLUDE CBARB056
END-EXEC.
EXEC SQL
INCLUDE CBARB054
END-EXEC.
*---------------------------------------------------------------*
* *
* SELECIONA TODAS AS EMPRESAS VALIDAS, QUE ESTEJAM DENTRO *
* DE SEU PERIODO DE EXTRACAO. CASO A HR INICIO SEJA MAIOR *
* QUE HR FIM, A HR INICIO DEVERA SER <= A HORA CORRENTE OU *
* A HR FIM DEVERA SER >= A HORA CORRENTE. *
* *
* CASO A HR INICIO SEJA <= HR FIM, A HORA CORRENTE DEVERA *
* ESTAR EXATAMENTE ENTRE O INTERVALO CADASTRADO. *
* *
*---------------------------------------------------------------*
EJECT
*===============================================================*
PROCEDURE DIVISION.
*===============================================================*
*---------------------------------------------------------------*
0000-INICIAR SECTION.
*---------------------------------------------------------------*
CALL 'POOL1050'.
PERFORM 1000-INICIALIZAR.
PERFORM 4000-FINALIZAR.
*---------------------------------------------------------------*
0000-99-FIM. EXIT.
*---------------------------------------------------------------*
EJECT
*---------------------------------------------------------------*
1000-INICIALIZAR SECTION.
*---------------------------------------------------------------*
*---------------------------------------------------------------*
1000-99-FIM. EXIT.
*---------------------------------------------------------------*
EJECT
*---------------------------------------------------------------*
1100-TESTAR-FS-ARQSOLIC SECTION.
*---------------------------------------------------------------*
*---------------------------------------------------------------*
1100-99-FIM. EXIT.
*---------------------------------------------------------------*
EJECT
*---------------------------------------------------------------*
1200-ACESSAR-POOL-7600-1205 SECTION.
*---------------------------------------------------------------*
*---------------------------------------------------------------*
1200-99-FIM. EXIT.
*---------------------------------------------------------------*
EJECT
*---------------------------------------------------------------*
1300-1-OPEN-CURSOR SECTION.
*---------------------------------------------------------------*
EXEC SQL
OPEN C1
END-EXEC.
*---------------------------------------------------------------*
1300-1-99-FIM. EXIT.
*---------------------------------------------------------------*
EJECT
*---------------------------------------------------------------*
1300-2-FETCH-CURSOR SECTION.
*---------------------------------------------------------------*
ADD 1 TO ACU-LIDOS-CBARB056.
*---------------------------------------------------------------*
1300-2-99-FIM. EXIT.
*---------------------------------------------------------------*
EJECT
*---------------------------------------------------------------*
1300-3-CLOSE-CURSOR SECTION.
*---------------------------------------------------------------*
EXEC SQL
CLOSE C1
END-EXEC.
IF ( SQLCODE NOT EQUAL ZEROS ) OR
( SQLWARN0 EQUAL 'W' )
MOVE 'DB2' TO ERR-TIPO-ACESSO
MOVE 'EMPR_TRNSM_PCIAL ' TO ERR-DBD-TAB
MOVE 'CLOSE C1' TO ERR-FUN-COMANDO
MOVE SQLCODE TO ERR-SQL-CODE
MOVE '0003' TO ERR-LOCAL
MOVE SPACES TO ERR-SEGM
PERFORM 9999-ROTINA-ERRO.
*---------------------------------------------------------------*
1300-3-99-FIM. EXIT.
*---------------------------------------------------------------*
EJECT
*---------------------------------------------------------------*
3000-PROCESSAR SECTION.
*---------------------------------------------------------------*
INITIALIZE WRK-AREA.
PERFORM 3300-TRATA-HORARIO-EXTRACAO.
PERFORM 3400-ATUALIZA-HORA-EXTRACAO.
PERFORM 1300-2-FETCH-CURSOR.
*---------------------------------------------------------------*
3000-99-FIM. EXIT.
*---------------------------------------------------------------*
EJECT
*---------------------------------------------------------------*
3200-HORARIO-EXTRACAO SECTION.
*---------------------------------------------------------------*
EXEC SQL
SELECT HEXTRC_MOVTO
INTO :CBARB054.HEXTRC-MOVTO
FROM DB2PRD.CTRL_EXTRC_ARQ
WHERE CSGMTO_EMPR = :CBARB056.CSGMTO-EMPR AND
CEMPR_CONVN_ARRE = :CBARB056.CEMPR-CONVN-ARRE
END-EXEC.
*---------------------------------------------------------------*
3200-99-FIM. EXIT.
*---------------------------------------------------------------*
EJECT
*---------------------------------------------------------------*
3300-TRATA-HORARIO-EXTRACAO SECTION.
*---------------------------------------------------------------*
*================================================================*
* DIMINUICAO DO TEMPO DE ESTORNO DA HORA DE EXTRACAO ATUAL *
*================================================================*
*================================================================*
* MOVIMENTACAO DE DATAS PARA CALCULO DE DIFERENCA DE DIAS *
*================================================================*
*================================================================*
* TRANSFORMA EM MINUTOS A DATA/HORA ATUAL *
*================================================================*
*================================================================*
* TRANSFORMA EM MINUTOS A DATA/HORA ULTIMA EXTRACAO *
*================================================================*
*================================================================*
* CALCULA DIFERENCA DE TEMPO ENTRE ULTIMA EXTRACAO E HORA ATUAL *
*================================================================*
*---------------------------------------------------------------*
3300-99-FIM. EXIT.
*---------------------------------------------------------------*
EJECT
*---------------------------------------------------------------*
3400-ATUALIZA-HORA-EXTRACAO SECTION.
*---------------------------------------------------------------*
ADD 1 TO ACU-GRAVA-CBARB054.
*---------------------------------------------------------------*
3400-99-FIM. EXIT.
*---------------------------------------------------------------*
EJECT
*---------------------------------------------------------------*
4000-FINALIZAR SECTION.
*---------------------------------------------------------------*
PERFORM 4100-EMITIR-DISPLAY.
PERFORM 1300-3-CLOSE-CURSOR.
CLOSE ARQSOLIC.
PERFORM 5000-COMMIT.
GOBACK.
*---------------------------------------------------------------*
4000-99-FIM. EXIT.
*---------------------------------------------------------------*
EJECT
*---------------------------------------------------------------*
4100-EMITIR-DISPLAY SECTION.
*---------------------------------------------------------------*
*---------------------------------------------------------------*
4100-99-FIM. EXIT.
*---------------------------------------------------------------*
EJECT
*---------------------------------------------------------------*
5000-COMMIT SECTION.
*---------------------------------------------------------------*
EXEC SQL
COMMIT
END-EXEC.
*---------------------------------------------------------------*
5000-99-FIM. EXIT.
*---------------------------------------------------------------*
EJECT
*---------------------------------------------------------------*
9999-ROTINA-ERRO SECTION.
*---------------------------------------------------------------*
GOBACK.
*---------------------------------------------------------------*
9999-99-FIM. EXIT.
*---------------------------------------------------------------*