CE PLUS - Nota 002168

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Rotina de Pagamento

Data/Hora da Publicação: 28/09/2006 00:00:00

Data/Hora Última Alteração: 18/02/2011 13:57:58

Descrição da Nota: ARQUIVO ELETRÔNICO - DUMP GENERATE - ITAÚ/FEBRABAN

Sintoma

Esta ocorrendo dump ao gerar o arquivo eletrônico do Itaú e da Febraban.

 

 

Solução

Criar um novo programa para apenas executar o comando generate, pois ao sair deste programa a

memória intermediária é limpa e permite rodar mais vezes o comando. O novo programa será chamado em

todos os pontos que executa o generate nos arquivos eletrônicos do Itaú e da Febraban

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

DUMP AO INFORMAR CAMINHO DO ARQUIVO ELETRÔNICO - SAP VERSÃO 5.0

DUMP NO PROGRAMA DE ARQUIVO ELETRÔNICO

ARQUIVO ELETRÔNICO ITAÚ E FEBRABAN - QUEBRA DE LINHA

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 02168 Data: 28/09/2006 Hora: 11:44:14

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 02168

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00025

Agrupamento              : 00132

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

00177  - 00001 - 6.0    - 00021  - DUMP NO PROGRAMA DE ARQUIVO ELETRÔNICO

00250  - 00002 - 6.0    - 00021  - ARQUIVO ELETRÔNICO ITAÚ E FEBRABAN - QUEBRA DE LINHA

00971  - 00003 - 6.0    - 00022  - DUMP AO INFORMAR CAMINHO DO ARQUIVO ELETRÔNICO - SAP VERSÃO 5.0

----------------------------------------------------------------------------------------------------

ARQUIVO ELETRÔNICO - DUMP GENERATE - ITAÚ/FEBRABAN

----------------------------------------------------------------------------------------------------

Palavras Chave:

ARQUIVO ELETRÔNICO DUMP GENERATE - ITAÚ FEBRABAN

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/ZYGLR025

REPS /PWS/ZYGLR026

REPS /PWS/ZYGLR039

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYGLR025

 

...

      v_hbkid         LIKE /pws/zycbt134-hbkid,

      v_exit(1)       TYPE c,

      v_arquivo TYPE string.

DATA: t_prog(72)     TYPE c OCCURS 1000 WITH HEADER LINE,

      w_prog         LIKE trdir-name.

* >> Início da inclusão:

DATA: v_chamada(50)      TYPE c,

      wa_header_arq_25   LIKE itab_header_arq,

      wa_header_lote_25  LIKE itab_header_lote,

      wa_detalhe_a_25    LIKE itab_detalhe_a,

      wa_detalhe_b_25    LIKE itab_detalhe_b,

      wa_detalhe_c_25    LIKE itab_detalhe_c,

      wa_trailer_lote_25 LIKE itab_trailer_lote,

      wa_trailer_arq_25  LIKE itab_trailer_arq.

* << Fim da inclusão

DATA: wa_j_1bbranch LIKE j_1bbranch.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

PARAMETERS: p_arq  LIKE rlgrap-filename OBLIGATORY.

SELECTION-SCREEN: END   OF BLOCK b1.

INITIALIZATION.

...

 

...

      itab_zycbt134_arq-j_1bbranch = 'SP01'.

    ENDIF.

  ENDIF.

  CALL FUNCTION 'J_1BREAD_CGC_COMPANY'

       EXPORTING

* >> Início da exclusão: FORM ACESSA_T001

            bukrs       = itab_zycbt134_arq-bukrs

* << Fim da exclusão

* >> Início da inclusão: FORM ACESSA_T001

            bukrs  = itab_zycbt134_arq-bukrs

* << Fim da inclusão

       IMPORTING

* >> Início da exclusão: FORM ACESSA_T001

            branch      = v_branch.

* << Fim da exclusão

* >> Início da inclusão: FORM ACESSA_T001

            branch = v_branch.

* << Fim da inclusão

  IF sy-subrc = 0.

    SELECT SINGLE bukrs branch adrnr

           FROM j_1bbranch

           INTO CORRESPONDING FIELDS OF wa_j_1bbranch

           WHERE bukrs  = itab_zycbt134_arq-bukrs

...

 

...

      APPEND ' MOVE binary_tab(2)        TO wa_saida+240(2).' TO t_prog.

    ELSE.

      APPEND '  MOVE itab_header_arq TO wa_saida.           ' TO t_prog.

    ENDIF.

    APPEND   'endform.                                      ' TO t_prog.

* >> Início da exclusão: FORM GRAVA_HEADER_ARQUIVO

    GENERATE SUBROUTINE POOL t_prog NAME w_prog.

    IF sy-subrc = 0.

      PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                     itab_header_arq

                                               IF FOUND.

    ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM GRAVA_HEADER_ARQUIVO

    v_chamada = 'wa_header_arq_25'.

    wa_header_arq_25 = itab_header_arq.

    EXPORT: t_prog           TO MEMORY ID 'GEN001',

            wa_header_arq_25 TO MEMORY ID 'GEN014',

            v_chamada        TO MEMORY ID 'GEN013'.

    SUBMIT /pws/zyglr039 AND RETURN.

    IMPORT: wa_saida        FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

    APPEND wa_saida TO itab_saida.

    CLEAR  itab_header_arq.

  ENDIF.

ENDFORM.

FORM grava_header_lote.

...

 

...

      APPEND ' MOVE binary_tab(2)        TO wa_saida+240(2).' TO t_prog.

      ELSE.

      APPEND '  MOVE itab_header_lote TO wa_saida.          ' TO t_prog.

      ENDIF.

    APPEND   'endform.                                      ' TO t_prog.

* >> Início da exclusão: FORM GRAVA_HEADER_LOTE

      GENERATE SUBROUTINE POOL t_prog NAME w_prog.

      IF sy-subrc = 0.

        PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                       itab_header_lote

                                                 IF FOUND.

      ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM GRAVA_HEADER_LOTE

      v_chamada = 'wa_header_lote_25'.

      wa_header_lote_25 = itab_header_lote.

      EXPORT: t_prog            TO MEMORY ID 'GEN001',

              wa_header_lote_25 TO MEMORY ID 'GEN015',

              v_chamada         TO MEMORY ID 'GEN013'.

      SUBMIT /pws/zyglr039 AND RETURN.

      IMPORT: wa_saida         FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

      APPEND wa_saida TO itab_saida.

    ENDIF.

  ENDIF.

ENDFORM.

FORM grava_detalhe_a.

...

 

...

      APPEND ' MOVE binary_tab(2)       TO wa_saida+240(2). ' TO t_prog.

    ELSE.

      APPEND '  MOVE itab_detalhe_a TO wa_saida.            ' TO t_prog.

    ENDIF.

    APPEND   'endform.                                      ' TO t_prog.

* >> Início da exclusão: FORM GRAVA_DETALHE_A

    GENERATE SUBROUTINE POOL t_prog NAME w_prog.

    IF sy-subrc = 0.

      PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                     itab_detalhe_a

                                               IF FOUND.

    ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM GRAVA_DETALHE_A

    v_chamada = 'wa_detalhe_a_25'.

    wa_detalhe_a_25 = itab_detalhe_a.

    EXPORT: t_prog          TO MEMORY ID 'GEN001',

            wa_detalhe_a_25 TO MEMORY ID 'GEN016',

            v_chamada       TO MEMORY ID 'GEN013'.

    SUBMIT /pws/zyglr039 AND RETURN.

    IMPORT: wa_saida         FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

    APPEND: wa_saida TO itab_saida.

    APPEND: itab_detalhe_a.

    CLEAR  itab_detalhe_a.

  ENDIF.

  MOVE-CORRESPONDING itab_zycbt134_arq2 TO itab_zycbt134_aux.

...

 

...

      APPEND ' MOVE binary_tab(2)       TO wa_saida+240(2). ' TO t_prog.

    ELSE.

      APPEND '  MOVE itab_detalhe_b TO wa_saida.            ' TO t_prog.

    ENDIF.

    APPEND   'endform.                                      ' TO t_prog.

* >> Início da exclusão: FORM GRAVA_DETALHE_B

    GENERATE SUBROUTINE POOL t_prog NAME w_prog.

    IF sy-subrc = 0.

      PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                     itab_detalhe_b

                                               IF FOUND.

    ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM GRAVA_DETALHE_B

    v_chamada = 'wa_detalhe_b_25'.

    wa_detalhe_b_25 = itab_detalhe_b.

    EXPORT: t_prog          TO MEMORY ID 'GEN001',

            wa_detalhe_b_25 TO MEMORY ID 'GEN017',

            v_chamada       TO MEMORY ID 'GEN013'.

    SUBMIT /pws/zyglr039 AND RETURN.

    IMPORT: wa_saida         FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

    APPEND wa_saida TO itab_saida.

    CLEAR  itab_detalhe_b.

  ENDIF.

ENDFORM.

FORM grava_detalhe_c.

...

 

...

      APPEND ' MOVE binary_tab(2)       TO wa_saida+240(2). ' TO t_prog.

    ELSE.

      APPEND '  MOVE itab_detalhe_c TO wa_saida.            ' TO t_prog.

    ENDIF.

    APPEND   'endform.                                      ' TO t_prog.

* >> Início da exclusão: FORM GRAVA_DETALHE_C

    GENERATE SUBROUTINE POOL t_prog NAME w_prog.

    IF sy-subrc = 0.

      PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                     itab_detalhe_c

                                               IF FOUND.

    ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM GRAVA_DETALHE_C

    v_chamada = 'wa_detalhe_c_25'.

    wa_detalhe_c_25 = itab_detalhe_c.

    EXPORT: t_prog          TO MEMORY ID 'GEN001',

            wa_detalhe_c_25 TO MEMORY ID 'GEN018',

            v_chamada       TO MEMORY ID 'GEN013'.

    SUBMIT /pws/zyglr039 AND RETURN.

    IMPORT: wa_saida         FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

    APPEND wa_saida TO itab_saida.

    CLEAR  itab_detalhe_c.

  ENDIF.

ENDFORM.

FORM grava_trailer_lote.

...

 

...

      APPEND ' MOVE binary_tab(2)       TO wa_saida+240(2). ' TO t_prog.

    ELSE.

      APPEND '  MOVE itab_trailer_lote TO wa_saida.         ' TO t_prog.

    ENDIF.

    APPEND   'endform.                                      ' TO t_prog.

* >> Início da exclusão: FORM GRAVA_TRAILER_LOTE

    GENERATE SUBROUTINE POOL t_prog NAME w_prog.

    IF sy-subrc = 0.

      PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                     itab_trailer_lote

                                               IF FOUND.

    ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM GRAVA_TRAILER_LOTE

    v_chamada = 'wa_trailer_lote_25'.

    wa_trailer_lote_25 = itab_trailer_lote.

    EXPORT: t_prog             TO MEMORY ID 'GEN001',

            wa_trailer_lote_25 TO MEMORY ID 'GEN019',

            v_chamada          TO MEMORY ID 'GEN013'.

    SUBMIT /pws/zyglr039 AND RETURN.

    IMPORT: wa_saida          FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

    APPEND wa_saida TO itab_saida.

  ENDIF.

  ADD 1 TO itab_trailer_arq-qtdlotearq.

  CLEAR v_cont_lote.

ENDFORM.

...

 

...

      APPEND ' MOVE binary_tab(2)       TO wa_saida+240(2). ' TO t_prog.

    ELSE.

      APPEND '  MOVE itab_trailer_arq TO wa_saida.          ' TO t_prog.

    ENDIF.

    APPEND   'endform.                                      ' TO t_prog.

* >> Início da exclusão: FORM GRAVA_TRAILER_ARQUIVO

    GENERATE SUBROUTINE POOL t_prog NAME w_prog.

    IF sy-subrc = 0.

      PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                     itab_trailer_arq

                                               IF FOUND.

    ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM GRAVA_TRAILER_ARQUIVO

    v_chamada = 'wa_trailer_arq_25'.

    wa_trailer_arq_25 = itab_trailer_arq.

    EXPORT: t_prog            TO MEMORY ID 'GEN001',

            wa_trailer_arq_25 TO MEMORY ID 'GEN020',

            v_chamada         TO MEMORY ID 'GEN013'.

    SUBMIT /pws/zyglr039 AND RETURN.

    IMPORT: wa_saida          FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

    APPEND wa_saida TO itab_saida.

    CLEAR  itab_trailer_arq.

  ENDIF.

ENDFORM.

FORM acessa_zyglt355.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYGLR026

 

...

      v_cod_lote(4)       TYPE n,

      v_exit(1)           TYPE c,

      v_arquivo TYPE string.

DATA: t_prog(72)     TYPE c OCCURS 1000 WITH HEADER LINE,

      w_prog         LIKE trdir-name.

* >> Início da inclusão:

DATA: v_chamada(50)          TYPE c,

      wa_header_arq_26       LIKE itab_header_arq,

      wa_header_lote_26      LIKE itab_header_lote,

      wa_det_segto_a_341_26  LIKE itab_det_segto_a_341,

      wa_det_segto_a_n341_26 LIKE itab_det_segto_a_n341,

      wa_det_segto_b_26      LIKE itab_det_segto_b,

      wa_trailer_lote_26     LIKE itab_trailer_lote,

      wa_trailer_arq_26      LIKE itab_trailer_arq.

* << Fim da inclusão

TYPE-POOLS:    sydes.

DATA: t_sydes  TYPE sydes_desc,

      wa_types TYPE sydes_typeinfo,

      v_len    TYPE i.

DATA: wa_j_1bbranch LIKE j_1bbranch.

...

 

...

      itab_zycbt134_arq-j_1bbranch = 'SP01'.

    ENDIF.

  ENDIF.

  CALL FUNCTION 'J_1BREAD_CGC_COMPANY'

       EXPORTING

* >> Início da exclusão: FORM ACESSA_T001

            bukrs       = itab_zycbt134_arq-bukrs

* << Fim da exclusão

* >> Início da inclusão: FORM ACESSA_T001

            bukrs  = itab_zycbt134_arq-bukrs

* << Fim da inclusão

       IMPORTING

* >> Início da exclusão: FORM ACESSA_T001

            branch      = v_branch.

* << Fim da exclusão

* >> Início da inclusão: FORM ACESSA_T001

            branch = v_branch.

* << Fim da inclusão

  IF sy-subrc = 0.

    SELECT SINGLE bukrs branch adrnr

           FROM j_1bbranch

           INTO CORRESPONDING FIELDS OF wa_j_1bbranch

           WHERE bukrs  = itab_zycbt134_arq-bukrs

...

 

...

      APPEND ' MOVE binary_tab(2)        TO wa_saida+240(2).' TO t_prog.

    ELSE.

      APPEND '  MOVE itab_header_arq TO wa_saida.           ' TO t_prog.

    ENDIF.

    APPEND   'endform.                                      ' TO t_prog.

* >> Início da exclusão: FORM MONTA_HEADER_DE_ARQUIVO

    GENERATE SUBROUTINE POOL t_prog NAME w_prog.

    IF sy-subrc = 0.

      PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                     itab_header_arq

                                               IF FOUND.

    ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_HEADER_DE_ARQUIVO

    v_chamada = 'wa_header_arq_26'.

    wa_header_arq_26 = itab_header_arq.

    EXPORT: t_prog           TO MEMORY ID 'GEN001',

            wa_header_arq_26 TO MEMORY ID 'GEN003',

            v_chamada        TO MEMORY ID 'GEN013'.

    SUBMIT /pws/zyglr039 AND RETURN.

    IMPORT: wa_saida        FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

    APPEND wa_saida TO itab_final.

  ENDIF.

ENDFORM.

FORM monta_header_de_lote.

  v_tot_hl = c_1.

...

 

...

        APPEND 'MOVE binary_tab(2)       TO wa_saida+240(2).' TO t_prog.

      ELSE.

        APPEND 'MOVE itab_header_lote TO wa_saida.          ' TO t_prog.

      ENDIF.

      APPEND   'endform.                                    ' TO t_prog.

* >> Início da inclusão: FORM MONTA_HEADER_DE_LOTE

      v_chamada = 'wa_header_lote_26'.

      wa_header_lote_26 = itab_header_lote.

      EXPORT: t_prog            TO MEMORY ID 'GEN001',

              wa_header_lote_26 TO MEMORY ID 'GEN004',

              v_chamada         TO MEMORY ID 'GEN013'.

* << Fim da inclusão

* >> Início da exclusão: FORM MONTA_HEADER_DE_LOTE

      GENERATE SUBROUTINE POOL t_prog NAME w_prog.

      IF sy-subrc = 0.

        PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                       itab_header_lote

                                                 IF FOUND.

      ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_HEADER_DE_LOTE

      SUBMIT /pws/zyglr039 AND RETURN.

      IMPORT: wa_saida         FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

      APPEND wa_saida TO itab_final.

    ENDIF.

  ENDIF.

ENDFORM.

FORM monta_detalhe_segto_a.

...

 

...

          APPEND ' MOVE binary_tab(2)    TO wa_saida+240(2).' TO t_prog.

        ELSE.

          APPEND '  MOVE itab_det_segto_a_341 TO wa_saida.  ' TO t_prog.

        ENDIF.

        APPEND ' endform.                                   ' TO t_prog.

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_A

        GENERATE SUBROUTINE POOL t_prog NAME w_prog.

        IF sy-subrc = 0.

          PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   itab_det_segto_a_341

                                                   IF FOUND.

        ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

        v_chamada = 'wa_det_segto_a_341_26'.

        wa_det_segto_a_341_26 = itab_det_segto_a_341.

        EXPORT: t_prog                TO MEMORY ID 'GEN001',

                wa_det_segto_a_341_26 TO MEMORY ID 'GEN005',

                v_chamada             TO MEMORY ID 'GEN013'.

        SUBMIT /pws/zyglr039 AND RETURN.

        IMPORT: wa_saida             FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

        APPEND wa_saida TO itab_final.

      ENDIF.

      CLEAR   t_prog.

      REFRESH t_prog.

      APPEND 'report sy-repid.                              ' TO t_prog.

...

 

...

        APPEND ' MOVE binary_tab(2)      TO wa_saida+240(2).' TO t_prog.

      ELSE.

        APPEND '  MOVE itab_det_segto_a_341 TO wa_saida.    ' TO t_prog.

      ENDIF.

      APPEND ' endform.                                     ' TO t_prog.

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

      v_chamada = 'wa_det_segto_a_341_26'.

      wa_det_segto_a_341_26 = itab_det_segto_a_341.

      EXPORT: t_prog                TO MEMORY ID 'GEN001',

              wa_det_segto_a_341_26 TO MEMORY ID 'GEN005',

              v_chamada             TO MEMORY ID 'GEN013'.

* << Fim da inclusão

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_A

      GENERATE SUBROUTINE POOL t_prog NAME w_prog.

      IF sy-subrc = 0.

        PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                 itab_det_segto_a_341

                                                 IF FOUND.

      ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

      SUBMIT /pws/zyglr039 AND RETURN.

      IMPORT: wa_saida             FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

      APPEND wa_saida TO itab_final_da.

      APPEND itab_det_segto_a_341.

      v_cod_lote = itab_det_segto_a_341-cod_lote.

      CLEAR   itab_det_segto_a_341.

    ELSE.

...

 

...

          APPEND ' MOVE binary_tab(2)    TO wa_saida+240(2).' TO t_prog.

        ELSE.

          APPEND '  MOVE itab_det_segto_a_n341 TO wa_saida. ' TO t_prog.

        ENDIF.

        APPEND ' endform.                                   ' TO t_prog.

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

        v_chamada = 'wa_det_segto_a_n341_26'.

        wa_det_segto_a_n341_26 = itab_det_segto_a_n341.

        EXPORT: t_prog                 TO MEMORY ID 'GEN001',

                wa_det_segto_a_n341_26 TO MEMORY ID 'GEN006',

                v_chamada              TO MEMORY ID 'GEN013'.

        SUBMIT /pws/zyglr039 AND RETURN.

        IMPORT: wa_saida              FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_A

        GENERATE SUBROUTINE POOL t_prog NAME w_prog.

        IF sy-subrc = 0.

          PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                  itab_det_segto_a_n341

                                                   IF FOUND.

        ENDIF.

* << Fim da exclusão

        APPEND wa_saida TO itab_final.

      ENDIF.

      CLEAR   t_prog.

      REFRESH t_prog.

      APPEND ' report sy-repid.                             ' TO t_prog.

...

 

...

        APPEND ' MOVE binary_tab(2)      TO wa_saida+240(2).' TO t_prog.

      ELSE.

        APPEND '  MOVE itab_det_segto_a_n341 TO wa_saida.   ' TO t_prog.

      ENDIF.

      APPEND ' endform.                                     ' TO t_prog.

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

      v_chamada = 'wa_det_segto_a_n341_26'.

      wa_det_segto_a_n341_26 = itab_det_segto_a_n341.

      EXPORT: t_prog                 TO MEMORY ID 'GEN001',

              wa_det_segto_a_n341_26 TO MEMORY ID 'GEN006',

              v_chamada              TO MEMORY ID 'GEN013'.

* << Fim da inclusão

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_A

      GENERATE SUBROUTINE POOL t_prog NAME w_prog.

      IF sy-subrc = 0.

        PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                itab_det_segto_a_n341

                                                 IF FOUND.

      ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

      SUBMIT /pws/zyglr039 AND RETURN.

      IMPORT: wa_saida              FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

      APPEND: wa_saida TO itab_final_da2,

              itab_det_segto_a_n341.

      CLEAR   itab_det_segto_a_n341.

      v_cod_lote = itab_det_segto_a_341-cod_lote.

    ENDIF.

...

 

...

              itab_det_segto_a_341_serv.

    ELSE.

      CLEAR   t_prog.

      REFRESH t_prog.

      APPEND ' report sy-repid.                             ' TO t_prog.

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_A

      APPEND ' form quebra_linha using  itab_final          ' TO t_prog.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

      APPEND ' form quebra_linha using  wa_saida            ' TO t_prog.

* << Fim da inclusão

      APPEND '                        itab_det_segto_a_n341.' TO t_prog.

      IF sy-saprl(3) GE '620' OR sy-saprl(2) EQ '47'.

        APPEND '  DATA: BEGIN OF binary_tab OCCURS 0,       ' TO t_prog.

        APPEND '    default(200) TYPE c,                    ' TO t_prog.

        APPEND '  END OF binary_tab.                        ' TO t_prog.

...

 

...

        SHIFT t_prog+8 RIGHT.

        APPEND t_prog.

        APPEND '    TABLES                                  ' TO t_prog.

        APPEND '       binary_tab = binary_tab.             ' TO t_prog.

        APPEND

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_A

        'MOVE itab_det_segto_a_n341(240) TO itab_final(240).' TO t_prog.

        APPEND ' MOVE binary_tab(2)    TO itab_final+240(2).' TO t_prog.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

        'MOVE itab_det_segto_a_n341(240) TO wa_saida(240).' TO t_prog.

        APPEND ' MOVE binary_tab(2)    TO wa_saida+240(2).' TO t_prog.

* << Fim da inclusão

      ELSE.

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_A

        APPEND '  MOVE itab_det_segto_a_n341 TO itab_final. ' TO t_prog.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

        APPEND '  MOVE itab_det_segto_a_n341 TO wa_saida. ' TO t_prog.

* << Fim da inclusão

      ENDIF.

      APPEND ' endform.                                     ' TO t_prog.

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

      v_chamada = 'wa_det_segto_a_n341_26'.

      wa_det_segto_a_n341_26 = itab_det_segto_a_n341.

      EXPORT: t_prog                 TO MEMORY ID 'GEN001',

              wa_det_segto_a_n341_26 TO MEMORY ID 'GEN006',

              v_chamada              TO MEMORY ID 'GEN013'.

* << Fim da inclusão

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_A

      GENERATE SUBROUTINE POOL t_prog NAME w_prog.

      IF sy-subrc = 0.

        PERFORM quebra_linha IN PROGRAM (w_prog) USING itab_final

                                                itab_det_segto_a_n341

                                                 IF FOUND.

      ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

      SUBMIT /pws/zyglr039 AND RETURN.

      IMPORT: wa_saida              FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_A

      APPEND itab_final.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

      APPEND wa_saida TO itab_final.

* << Fim da inclusão

    ENDIF.

    CLEAR   t_prog.

    REFRESH t_prog.

    APPEND ' report sy-repid.                             ' TO t_prog.

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_A

    APPEND ' form quebra_linha using  itab_final_da2      ' TO t_prog.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

    APPEND ' form quebra_linha using  wa_saida            ' TO t_prog.

* << Fim da inclusão

    APPEND '                        itab_det_segto_a_n341.' TO t_prog.

    IF sy-saprl(3) GE '620' OR sy-saprl(2) EQ '47'.

      APPEND '  DATA: BEGIN OF binary_tab OCCURS 0,       ' TO t_prog.

      APPEND '    default(200) TYPE c,                    ' TO t_prog.

      APPEND '  END OF binary_tab.                        ' TO t_prog.

...

 

...

      SHIFT t_prog+8 RIGHT.

      APPEND t_prog.

      APPEND '    TABLES                                  ' TO t_prog.

      APPEND '       binary_tab = binary_tab.             ' TO t_prog.

      APPEND

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_A

             'MOVE itab_det_segto_a_n341(240) TO itab_final_da2(240).'

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

             'MOVE itab_det_segto_a_n341(240) TO wa_saida(240).'

* << Fim da inclusão

                                                            TO t_prog.

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_A

      APPEND 'MOVE binary_tab(2) TO itab_final_da2+240(2).' TO t_prog.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

      APPEND 'MOVE binary_tab(2) TO wa_saida+240(2).' TO t_prog.

* << Fim da inclusão

    ELSE.

      APPEND

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_A

            'MOVE itab_det_segto_a_n341 TO itab_final_da2.' TO t_prog.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

            'MOVE itab_det_segto_a_n341 TO wa_saida.' TO t_prog.

* << Fim da inclusão

    ENDIF.

    APPEND  'endform.                                     ' TO t_prog.

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

    v_chamada = 'wa_det_segto_a_n341_26'.

    wa_det_segto_a_n341_26 = itab_det_segto_a_n341.

    EXPORT: t_prog                 TO MEMORY ID 'GEN001',

            wa_det_segto_a_n341_26 TO MEMORY ID 'GEN006',

            v_chamada              TO MEMORY ID 'GEN013'.

* << Fim da inclusão

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_A

    GENERATE SUBROUTINE POOL t_prog NAME w_prog.

    IF sy-subrc = 0.

      PERFORM quebra_linha IN PROGRAM (w_prog) USING itab_final_da2

                                              itab_det_segto_a_n341

                                               IF FOUND.

    ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

    SUBMIT /pws/zyglr039 AND RETURN.

    IMPORT: wa_saida      FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_A

    APPEND itab_final_da2.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_A

    APPEND wa_saida TO itab_final_da2.

* << Fim da inclusão

    APPEND: itab_det_segto_a_341 TO itab_det_segto_a_341.

    CLEAR   itab_det_segto_a_n341.

    v_cod_lote = itab_det_segto_a_341-cod_lote.

  ENDIF.

ENDFORM.

...

 

...

      APPEND ' MOVE binary_tab(2)        TO wa_saida+240(2).' TO t_prog.

    ELSE.

      APPEND '  MOVE itab_det_segto_b TO wa_saida.          ' TO t_prog.

    ENDIF.

    APPEND   'endform.                                      ' TO t_prog.

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_B

    v_chamada = 'wa_det_segto_b_26'.

    wa_det_segto_b_26 = itab_det_segto_b.

    EXPORT: t_prog            TO MEMORY ID 'GEN001',

            wa_det_segto_b_26 TO MEMORY ID 'GEN007',

            v_chamada         TO MEMORY ID 'GEN013'.

* << Fim da inclusão

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_B

    GENERATE SUBROUTINE POOL t_prog NAME w_prog.

    IF sy-subrc = 0.

      PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                     itab_det_segto_b

                                               IF FOUND.

    ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_B

    SUBMIT /pws/zyglr039 AND RETURN.

    IMPORT: wa_saida         FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

    APPEND wa_saida TO itab_final.

  ENDIF.

  CLEAR   t_prog.

  REFRESH t_prog.

  APPEND   'report sy-repid.                              ' TO t_prog.

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_B

  APPEND   'form quebra_linha using  itab_final_db        ' TO t_prog.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_B

  APPEND   'form quebra_linha using  wa_saida        ' TO t_prog.

* << Fim da inclusão

  APPEND   '                         itab_det_segto_b.    ' TO t_prog.

  IF sy-saprl(3) GE '620' OR sy-saprl(2) EQ '47'.

    APPEND '  DATA: BEGIN OF binary_tab OCCURS 0,         ' TO t_prog.

    APPEND '    default(200) TYPE c,                      ' TO t_prog.

    APPEND '  END OF binary_tab.                          ' TO t_prog.

...

 

...

                INTO t_prog.

    SHIFT t_prog+8 RIGHT.

    APPEND t_prog.

    APPEND '    TABLES                                    ' TO t_prog.

    APPEND '       binary_tab = binary_tab.               ' TO t_prog.

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_B

    APPEND ' MOVE itab_det_segto_b(240) TO itab_final_db(240). '

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_B

    APPEND ' MOVE itab_det_segto_b(240) TO wa_saida(240). '

* << Fim da inclusão

    TO t_prog.

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_B

    APPEND ' MOVE binary_tab(2)   TO itab_final_db+240(2).' TO t_prog.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_B

    APPEND ' MOVE binary_tab(2)   TO wa_saida+240(2).' TO t_prog.

* << Fim da inclusão

  ELSE.

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_B

    APPEND '  MOVE itab_det_segto_b TO itab_final_db.     ' TO t_prog.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_B

    APPEND '  MOVE itab_det_segto_b TO wa_saida.     ' TO t_prog.

* << Fim da inclusão

  ENDIF.

  APPEND   'endform.                                      ' TO t_prog.

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_B

  GENERATE SUBROUTINE POOL t_prog NAME w_prog.

  IF sy-subrc = 0.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING itab_final_db

                                                   itab_det_segto_b

                                             IF FOUND.

  ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_B

  v_chamada = 'wa_det_segto_b_26'.

  wa_det_segto_b_26 = itab_det_segto_b.

  EXPORT: t_prog            TO MEMORY ID 'GEN001',

          wa_det_segto_b_26 TO MEMORY ID 'GEN007',

          v_chamada         TO MEMORY ID 'GEN013'.

  SUBMIT /pws/zyglr039 AND RETURN.

  IMPORT: wa_saida   FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

* >> Início da exclusão: FORM MONTA_DETALHE_SEGTO_B

  APPEND itab_final_db.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_DETALHE_SEGTO_B

  APPEND wa_saida TO itab_final_db.

* << Fim da inclusão

ENDFORM.

FORM monta_trailer_de_lote.

  v_tot_tl = c_1.

  ADD 1 TO itab_trailer_lote-cod_lote.

  DESCRIBE TABLE: itab_final_da  LINES v_tot_da,

...

 

...

      APPEND ' MOVE binary_tab(2)       TO wa_saida+240(2). ' TO t_prog.

    ELSE.

      APPEND '  MOVE itab_trailer_lote TO wa_saida.         ' TO t_prog.

    ENDIF.

    APPEND   'endform.                                      ' TO t_prog.

* >> Início da exclusão: FORM MONTA_TRAILER_DE_LOTE

    GENERATE SUBROUTINE POOL t_prog NAME w_prog.

    IF sy-subrc = 0.

      PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                     itab_trailer_lote

                                               IF FOUND.

    ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_TRAILER_DE_LOTE

    v_chamada = 'wa_trailer_lote_26'.

    wa_trailer_lote_26 = itab_trailer_lote.

    EXPORT: t_prog             TO MEMORY ID 'GEN001',

            wa_trailer_lote_26 TO MEMORY ID 'GEN008',

            v_chamada          TO MEMORY ID 'GEN013'.

    SUBMIT /pws/zyglr039 AND RETURN.

    IMPORT: wa_saida          FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

    APPEND wa_saida TO itab_final.

  ENDIF.

  CLEAR v_tot_pagto.

  ADD 1 TO itab_trailer_arq-total_qtd_lotes.

ENDFORM.

...

 

...

      APPEND ' MOVE binary_tab(2)       TO wa_saida+240(2). ' TO t_prog.

    ELSE.

      APPEND '  MOVE itab_trailer_arq TO wa_saida.          ' TO t_prog.

    ENDIF.

    APPEND   'endform.                                      ' TO t_prog.

* >> Início da exclusão: FORM MONTA_TRAILER_DE_ARQUIVO

    GENERATE SUBROUTINE POOL t_prog NAME w_prog.

    IF sy-subrc = 0.

      PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                     itab_trailer_arq

                                               IF FOUND.

    ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_TRAILER_DE_ARQUIVO

    v_chamada = 'wa_trailer_arq_26'.

    wa_trailer_arq_26 = itab_trailer_arq.

    EXPORT: t_prog            TO MEMORY ID 'GEN001',

            wa_trailer_arq_26 TO MEMORY ID 'GEN009',

            v_chamada         TO MEMORY ID 'GEN013'.

    SUBMIT /pws/zyglr039 AND RETURN.

    IMPORT: wa_saida         FROM MEMORY ID 'GEN002'.

* << Fim da inclusão

    APPEND wa_saida TO itab_final.

  ENDIF.

ENDFORM.

FORM acessa_zyglt358.

  SELECT *

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYGLR039

* >> Início da inclusão

*----------------------------------------------------------------------

* PROCWORK SOFTWARE

* Produto   : pw.CE - Câmbio

* Módulo    :

* Descrição : GL - Execução do Generate - Programa utilizado para

*             geração do arquivo eletrônico onde é executado mais de 36

*             vezes o comando generate e gera dump. A forma encontrada

*             para zerar a memória intermediária é saindo da transação

*             que efetuou o generate.

* Help Desk : 11-5504-0270

*----------------------------------------------------------------------

* ESTE PROGRAMA NÃO DEVE SER ALTERADO SEM PRÉVIA CONSULTA

*----------------------------------------------------------------------

* Nome          Data           Descrição

* 332471        27.09.2006     Codificação Inicial

*----------------------------------------------------------------------

REPORT  /pws/zyglr039.

 

* Tabela Internas

DATA: BEGIN OF itab_saida OCCURS 0,

        campo(242)         TYPE c,

      END OF itab_saida.

 

DATA: wa_saida LIKE itab_saida.

 

DATA: t_prog(72)     TYPE c OCCURS 1000 WITH HEADER LINE,

      w_prog         LIKE trdir-name,

      v_chamada(50)  TYPE c.

 

* Febraban--------------------------------------------------------------

DATA: BEGIN OF itab_header_arq_25 OCCURS 0,

       banco(03)       TYPE n,                              "Campo01.0

       lote(04)        TYPE n VALUE '0000',                 "Campo02.0

       registro(01)    TYPE n VALUE '0',                    "Campo03.0

       cnab1(09)       TYPE c VALUE space,                  "Campo04.0

       instipo(01)     TYPE n VALUE '2',                    "Campo05.0

       insnume(14)     TYPE n,                              "Campo06.0

       convenio(20)    TYPE c,                              "Campo07.0

       agencimaco(05)  TYPE n,                              "Campo08.0

       dvagenci(01)    TYPE c,                              "Campo09.0

       nccorrente(12)  TYPE n,                              "Campo10.0

       dvconta(01)     TYPE c,                              "Campo11.0

       dvagenconta(01) TYPE c VALUE space,                  "Campo12.0

       nomeempresa(30) TYPE c,                              "Campo13.0

       nomebanco(30)   TYPE c,                              "Campo14.0

       cnab2(10)       TYPE c VALUE space,                  "Campo15.0

       codremreto(01)  TYPE n VALUE '1',                    "Campo16.0

       dtgeraarq(08)   TYPE n,                              "Campo17.0

       horgerarq(06)   TYPE n,                              "Campo18.0

       numseqarq(06)   TYPE n,                              "Campo19.0

       nuverlayarq(03) TYPE n,                              "Campo20.0

       densgravarq(05) TYPE n VALUE 0,                      "Campo21.0

       reservbanco(20) TYPE c VALUE space,                  "Campo22.0

       reservempre(20) TYPE c VALUE space,                  "Campo23.0

       cnab3(29)       TYPE c VALUE space,                  "Campo24.0

       del_regs(2)     TYPE x,               " Delimitador de Registro

      END OF itab_header_arq_25.

 

DATA: BEGIN OF itab_header_lote_25 OCCURS 0,

       banco(03)       TYPE n,                              "Campo01.1

       lote(04)        TYPE n,                              "Campo02.1

       tpregis(01)     TYPE c VALUE '1',                    "Campo03.1

       tpopera(01)     TYPE c VALUE 'C',                    "Campo04.1

       tpservico(02)   TYPE n VALUE '20',                   "Campo05.1

       forlanca(02)    TYPE n,                              "Campo06.1

       nuverlaylot(3)  TYPE n,

                      "like /pws/zyglt355-versaolote,       "campo07.1

       cnab1(01)       TYPE c VALUE space,                  "Campo08.1

       instipo(01)     TYPE n VALUE '2',                    "Campo09.1

       insnume(14)     TYPE n,                              "Campo10.1

       convenio(20)    TYPE c,                              "Campo11.1

       agencimaco(05)  TYPE n,                              "Campo12.1

       dvagenci(01)    TYPE c,                              "Campo13.1

       nccorrente(12)  TYPE n,                              "Campo14.1

       dvconta(01)     TYPE c,                              "Campo15.1

       dvagenconta(01) TYPE c VALUE space,                  "Campo16.1

       nomeempresa(30) TYPE c,                              "Campo17.1

       mensagem(40)    TYPE c VALUE space,                  "Campo18.1

       nomerua(30)     TYPE c,                              "Campo19.1

       numlocal(05)    TYPE n,                              "Campo20.1

       casaapsala(15)  TYPE c VALUE space,                  "Campo21.1

       nomecidade(20)  TYPE c,                              "Campo22.1

       cep(05)         TYPE n,                              "Campo23.1

       complcep(03)    TYPE c,                              "Campo24.1

       siglaestado(02) TYPE c VALUE space,                  "Campo25.1

       cnab2(08)       TYPE c VALUE space,                  "Campo26.1

       ocorrencias(10) TYPE c VALUE space,                  "Campo27.1

       del_regs(2)     TYPE x,               " Delimitador de Registro

      END OF itab_header_lote_25.

 

DATA: BEGIN OF itab_detalhe_a_25 OCCURS 0,

       banco(03)       TYPE n,                              "Campo01.3A

       lote(04)        TYPE n VALUE '0001',                 "Campo02.3A

       tpregis(01)     TYPE n VALUE '3',                    "Campo03.3A

       nseqreglote(05) TYPE n,                              "Campo04.3A

       codsegredet(01) TYPE c VALUE 'A',                    "Campo05.3A

       tpmovto(01)     TYPE n VALUE 0,                      "Campo06.3A

       codinstmovt(02) TYPE n VALUE 0,                      "Campo07.3A

       codcamacent(03) TYPE n,                              "Campo08.3A

       codbcofavor(03) TYPE n,                              "Campo09.3A

       agencimaco(05)  TYPE n,                              "Campo10.3A

       dvagenci(01)    TYPE c,                              "Campo11.3A

       nccorrente(12)  TYPE n,                              "Campo12.3A

       dvconta(01)     TYPE c,                              "Campo13.3A

       dvagenconta(01) TYPE c,                              "Campo14.3A

       nomefavore(30)  TYPE c,                              "Campo15.3A

       nudocatremp(20) TYPE c,                              "Campo16.3A

       dtpagto(08)     TYPE n,                              "Campo17.3A

       tpmoeda(03)     TYPE c,                              "Campo18.3A

       qtdmoeda(15)    TYPE n,                              "Campo19.3A

       vlrpagto(15)    TYPE c,                              "Campo20.3A

       nudocatrbco(20) TYPE c,                              "Campo21.3A

       dtrealefpag(08) TYPE n VALUE '00000000',             "Campo22.3A

       vlrrealefpg(15) TYPE n,                              "Campo23.3A

       informacao(40)  TYPE c VALUE space,                  "Campo24.3A

       compltpserv(02) TYPE c VALUE space,                  "Campo25.3A

       cnab1(10)       TYPE c VALUE space,                  "Campo26.3A

       aviso(01)       TYPE n,                              "Campo27.3A

       ocorrencias(10) TYPE c VALUE space,                  "Campo28.3A

       del_regs(2)     TYPE x,                " Delimitador de Registro

     END OF itab_detalhe_a_25.

 

DATA: BEGIN OF itab_detalhe_b_25 OCCURS 0,

       banco(03)       TYPE n,                              "Campo01.3B

       lote(04)        TYPE n VALUE '0001',                 "Campo02.3B

       tpregis(01)     TYPE n VALUE '3',                    "Campo03.3B

       nseqreglote(05) TYPE n,                              "Campo04.3B

       codsegredet(01) TYPE c VALUE 'B',                    "Campo05.3B

       cnab1(03)       TYPE c VALUE space,                  "Campo06.3B

       tpinscfavor(01) TYPE n,                              "Campo07.3B

       nuinscfavor(14) TYPE n,                              "Campo08.3B

       nomerua(30)     TYPE c,                              "Campo09.3B

       numlocal(05)    TYPE n,                              "Campo10.3B

       casaapsala(15)  TYPE c VALUE space,                  "Campo11.3B

       bairro(15)      TYPE c,                              "Campo12.3B

       nomecidade(20)  TYPE c,                              "Campo13.3B

       cep(05)         TYPE n,                              "Campo14.3B

       complcep(03)    TYPE c,                              "Campo15.3B

       siglaestado(02) TYPE c,                              "Campo16.3B

       dtvcmtonomi(08) TYPE n,                              "Campo17.3B

       vlrdoctonom(15) TYPE c,                              "Campo18.3B

       vlrabatimto(15) TYPE n,                              "Campo19.3B

       vlrdesconto(15) TYPE n,                              "Campo20.3B

       vlrmora(15)     TYPE n,                              "Campo21.3B

       vlrmulta(15)    TYPE n,                              "Campo22.3B

       coddocfavor(15) TYPE c VALUE space,                  "Campo23.3B

       cnab2(15)       TYPE c VALUE space,                  "Campo24.3B

       del_regs(2)     TYPE x,               " Delimitador de Registro

      END OF itab_detalhe_b_25.

 

DATA: BEGIN OF itab_detalhe_c_25 OCCURS 0,

       banco(03)       TYPE n,                              "Campo01.3C

       lote(04)        TYPE n VALUE '0001',                 "Campo02.3C

       tpregis(01)     TYPE n VALUE '3',                    "Campo03.3C

       nseqreglote(05) TYPE n,                              "Campo04.3C

       codsegredet(01) TYPE c VALUE 'C',                    "Campo05.3C

       cnab1(03)       TYPE c VALUE space,                  "Campo06.3C

       vlrir(15)       TYPE n,                              "Campo07.3C

       vlriss(15)      TYPE n,                              "Campo08.3C

       vlriof(15)      TYPE n,                              "Campo09.3C

       vlroutded(15)   TYPE n,                              "Campo10.3C

       vlroutacr(15)   TYPE n,                              "Campo11.3C

       agefavore(05)   TYPE n VALUE '00000',                "Campo12.3C

       dvagencia(01)   TYPE c VALUE space,                  "Campo13.3C

       nccorrente(12)  TYPE n VALUE '000000000000',         "Campo14.3C

       dvconta(01)     TYPE c VALUE space,                  "Campo15.3C

       dvagenconta(01) TYPE c VALUE space,                  "Campo16.3C

       vlrinss(15)     TYPE n,                              "Campo17.3C

       cnab2(113)      TYPE c VALUE space,                  "Campo18.3C

       del_regs(2)     TYPE x,                " Delimitador de Registro

      END OF itab_detalhe_c_25.

 

DATA: BEGIN OF itab_trailer_lote_25 OCCURS 0,

       banco(03)       TYPE n,                              "Campo01.5

       lote(04)        TYPE n,                              "Campo02.5

       tpregis(01)     TYPE n  VALUE '5',                   "Campo03.5

       cnab1(09)       TYPE c,                              "Campo04.5

       qtdreglote(06)  TYPE n,                              "Campo05.5

       somavalores(18) TYPE c,                              "Campo06.5

       somaqtmoeda(18) TYPE n,                              "Campo07.5

       numavisodeb(06) TYPE c,                              "Campo08.5

       cnab2(165)      TYPE c VALUE space,                  "Campo09.5

       ocorrencias(10) TYPE c VALUE space,                  "Campo10.5

       del_regs(2)     TYPE x,                " Delimitador de Registro

      END OF itab_trailer_lote_25.

 

DATA: BEGIN OF itab_trailer_arq_25 OCCURS 0,

       banco(03)       TYPE n,                              "Campo01.9

       lote(04)        TYPE n VALUE '9999',                 "Campo02.9

       tpregis(01)     TYPE c VALUE '9',                    "Campo03.9

       cnab1(09)       TYPE c VALUE space,                  "Campo04.9

       qtdlotearq(06)  TYPE n,                              "Campo05.9

       qtdregarq(06)   TYPE n,                              "Campo06.9

       qtdcontconc(06) TYPE n VALUE 0,                      "Campo07.9

       cnab2(205)      TYPE c VALUE space,                  "Campo08.9

       del_regs(2)     TYPE x,                " Delimitador de Registro

      END OF itab_trailer_arq_25.

 

* Itaú------------------------------------------------------------------

 

DATA: BEGIN OF itab_header_arq_26 OCCURS 0,

        cod_banco(3)    TYPE n VALUE '341',                 "Campo1

        cod_lote(4)     TYPE n,                             "Campo2

        tipo_reg(1)     TYPE n,                             "Campo3

        brancos(6)      TYPE c,                             "Campo4

        layout_arq(3)   TYPE n, " VALUE '050',              "Campo5

        emp_inscr(1)    TYPE n VALUE '2',                   "Campo6

        inscr_num(14)   TYPE n,                             "Campo7

        brancos2(20)    TYPE c,                             "Campo8

        agencia(5)      TYPE n,                             "Campo9

        brancos3(1)     TYPE c,                             "Campo10

        conta(12)       TYPE n,                             "Campo11

        brancos4(1)     TYPE c,                             "Campo12

        dac(1)          TYPE c,                             "Campo13

        nome_emp(30)    TYPE c,                             "Campo14

        nome_banco(30)  TYPE c,                             "Campo15

        brancos5(10)    TYPE c,                             "Campo16

        arq_codigo(1)   TYPE n VALUE '1',                   "Campo17

        dt_geracao(8)   TYPE n,                             "Campo18

        hr_geracao(6)   TYPE n,                             "Campo19

        num_arq(9)      TYPE n,                             "Campo20

        un_densid(5)    TYPE n,                             "Campo21

        brancos6(69)    TYPE c VALUE space,                 "Campo22

        del_regs(2)     TYPE x,            " Delimitador de Registro

      END OF itab_header_arq_26.

 

DATA: BEGIN OF itab_header_lote_26 OCCURS 0,

        cod_banco(3)     TYPE n VALUE '341',                "Campo23

        cod_lote(4)      TYPE n,                            "Campo24

        tipo_reg(1)      TYPE n VALUE '1',                  "Campo25

        tipo_operac(1)   TYPE c VALUE 'C',                  "Campo26

        tipo_pagto(2)    TYPE n VALUE '20',                 "Campo27

        forma_pagto(2)   TYPE n,                            "Campo28

        layout_lote(3)   TYPE n, "LIKE /pws/zyglt355-versaolote,

                                                            "campo29

        brancos(1)       TYPE c,                            "Campo30

        emp_inscr(1)     TYPE n VALUE '2',                  "Campo31

        inscr_num(14)    TYPE n,                            "Campo32

        brancos2(20)     TYPE c,                            "Campo33

        agencia(5)       TYPE n,                            "Campo34

        brancos3(1)      TYPE c,                            "Campo35

        conta(12)        TYPE n,                            "Campo36

        brancos4(1)      TYPE c,                            "Campo37

        dac(1)           TYPE c,                            "Campo38

        nome_emp(30)     TYPE c,                            "Campo39

        final_lote(30)   TYPE c,                            "Campo40

        historic_cc(10)  TYPE c,                            "Campo41

        end_empresa(30)  TYPE c,                            "Campo42

        numero(5)        TYPE n,                            "Campo43

        complemento(15)  TYPE c,                            "Campo44

        cidade(20)       TYPE c,                            "Campo45

        cep(8)           TYPE n,                            "Campo46

        estado(2)        TYPE c,                            "Campo47

        brancos5(8)      TYPE c,                            "Campo48

        ocorrencias(10)  TYPE c VALUE space,                "Campo49

        del_regs(2)      TYPE x,           " Delimitador de Registro

      END OF itab_header_lote_26.

 

DATA: BEGIN OF itab_det_segto_a_341_26 OCCURS 0,

        cod_banco(3)     TYPE n VALUE '341',                "Campo50

        cod_lote(4)      TYPE n,                            "Campo51

        tipo_reg(1)      TYPE n VALUE '3',                  "Campo52

        numero_reg(5)    TYPE n,                            "Campo53

        segmento(1)      TYPE c VALUE 'A',                  "Campo54

        tipo_movto(3)    TYPE n VALUE '003',                "Campo55

        zeros(3)         TYPE n,                            "Campo56

        bco_favorec(3)   TYPE n,                            "Campo57

        zeros3(1)        TYPE n,                            "Campo58

        agencia(4)       TYPE n,                            "Campo58

        brancos4(1)      TYPE c,                            "Campo58

        zeros4(7)        TYPE n,                            "Campo58

        conta(5)         TYPE n,                            "Campo58

        brancos5(1)      TYPE c,                            "Campo58

        dac(1)           TYPE c,                            "Campo58

        nm_favorec(30)   TYPE c,                            "Campo59

        seu_numero(20)   TYPE c,                            "Campo60

        data_pagto(8)    TYPE n,                            "Campo61

        moeda_tipo(3)    TYPE c,                            "Campo62

        zeros2(15)       TYPE n,                            "Campo63

        valor_pagto(15)  TYPE n,                            "Campo64

        nosso_numer(15)  TYPE c,                            "Campo65

        brancos(5)       TYPE c,                            "Campo66

        data_efetiva(8)  TYPE n,                            "Campo67

        vl_efetivo(15)   TYPE n,                            "Campo68

        fin_detalhe(18)  TYPE c,                            "Campo69

        brancos2(2)      TYPE c,                            "Campo70

        numero_docto(6)  TYPE c,                            "Campo71

        numero_insc(14)  TYPE n,                            "Campo72

        brancos3(12)     TYPE c,                            "Campo73

        aviso(1)         TYPE c,                            "Campo74

        ocorrencias(10)  TYPE c VALUE space,                "Campo75

        del_regs(2)      TYPE x,           " Delimitador de Registro

      END OF itab_det_segto_a_341_26.

 

DATA: BEGIN OF itab_det_segto_a_n341_26 OCCURS 0,

        cod_banco(3)     TYPE n VALUE '341',                "Campo50

        cod_lote(4)      TYPE n,                            "Campo51

        tipo_reg(1)      TYPE n VALUE '3',                  "Campo52

        numero_reg(5)    TYPE n,                            "Campo53

        segmento(1)      TYPE c VALUE 'A',                  "Campo54

        tipo_movto(3)    TYPE n,                            "Campo55

        zeros(3)         TYPE n,                            "Campo56

        bco_favorec(3)   TYPE n,                            "Campo57

        agencia(5)       TYPE n,                            "Campo58

        brancos4(1)      TYPE c,                            "Campo58

        conta(12)        TYPE n,                            "Campo58

        brancos5(1)      TYPE c,                            "Campo58

        dac(1)           TYPE c,                            "Campo58

        nm_favorec(30)   TYPE c,                            "Campo59

        seu_numero(20)   TYPE c,                            "Campo60

        data_pagto(8)    TYPE n,                            "Campo61

        moeda_tipo(3)    TYPE c,                            "Campo62

        zeros2(15)       TYPE n,                            "Campo63

        valor_pagto(15)  TYPE n,                            "Campo64

        nosso_numer(15)  TYPE c,                            "Campo65

        brancos(5)       TYPE c,                            "Campo66

        data_efetiva(8)  TYPE n,                            "Campo67

        vl_efetivo(15)   TYPE n,                            "Campo68

        fin_detalhe(18)  TYPE c,                            "Campo69

        brancos2(2)      TYPE c,                            "Campo70

        numero_docto(6)  TYPE c,                            "Campo71

        numero_insc(14)  TYPE n,                            "Campo72

        brancos3(12)     TYPE c,                            "Campo73

        aviso(1)         TYPE c,                            "Campo74

        ocorrencias(10)  TYPE c VALUE space,                "Campo75

        del_regs(2)      TYPE x,           " Delimitador de Registro

      END OF itab_det_segto_a_n341_26.

 

DATA: BEGIN OF itab_det_segto_b_26 OCCURS 0,

        cod_banco(3)     TYPE n VALUE '341',                "Campo76

        cod_lote(4)      TYPE n,                            "Campo77

        tipo_reg(1)      TYPE n VALUE '3',                  "Campo78

        numero_reg(5)    TYPE n,                            "Campo79

        cod_segto(1)     TYPE c VALUE 'B',                  "Campo80

        brancos(3)       TYPE c,                            "Campo81

        emp_inscr(1)     TYPE n,                            "Campo82

        numero_insc(14)  TYPE n,                            "Campo83

        endereco(30)     TYPE c,                            "Campo84

        numero(5)        TYPE n,                            "Campo85

        complemento(15)  TYPE c,                            "Campo86

        bairro(15)       TYPE c,                            "Campo87

        cidade(20)       TYPE c,                            "Campo88

        cep(8)           TYPE n,                            "Campo89

        estado(2)        TYPE c,                            "Campo90

        brancos1(113)    TYPE c VALUE space,                "Campo91

        del_regs(2)      TYPE x,           " Delimitador de Registro

      END OF itab_det_segto_b_26.

 

DATA: BEGIN OF itab_trailer_lote_26 OCCURS 0,

        cod_banco(3)       TYPE n VALUE '341',              "Campo92

        cod_lote(4)        TYPE n,                          "Campo93

        tipo_reg(1)        TYPE n VALUE '5',                "Campo94

        brancos(9)         TYPE c,                          "Campo95

        total_qtd_reg(6)   TYPE n,                          "Campo96

        total_vl_pagto(18) TYPE n,                          "Campo97

        zeros(18)          TYPE n,                          "Campo98

        brancos2(171)      TYPE c,                          "Campo99

        ocorrencias(10)    TYPE c VALUE space,              "Campo100

        del_regs(2)        TYPE x,          " Delimitador de Registro

      END OF itab_trailer_lote_26.

 

DATA: BEGIN OF itab_trailer_arq_26 OCCURS 0,

        cod_banco(3)       TYPE n VALUE '341',              "Campo101

        cod_lote(4)        TYPE n VALUE '9999',             "Campo102

        tipo_reg(1)        TYPE n VALUE '9',                "Campo103

        brancos(9)         TYPE c,                          "Campo104

        total_qtd_lotes(6) TYPE n,                          "Campo105

        total_qtd_reg(6)   TYPE n,                          "Campo106

        brancos2(211)      TYPE c VALUE space,              "Campo107

        del_regs(2)        TYPE x,          " Delimitador de Registro

      END OF itab_trailer_arq_26.

 

data: wa_header_arq_26       LIKE itab_header_arq_26,

      wa_header_lote_26      LIKE itab_header_lote_26,

      wa_det_segto_a_341_26  LIKE itab_det_segto_a_341_26,

      wa_det_segto_a_n341_26 LIKE itab_det_segto_a_n341_26,

      wa_det_segto_b_26      LIKE itab_det_segto_b_26,

      wa_trailer_lote_26     LIKE itab_trailer_lote_26,

      wa_trailer_arq_26      LIKE itab_trailer_arq_26,

      wa_header_arq_25       LIKE itab_header_arq_25,

      wa_header_lote_25      LIKE itab_header_lote_25,

      wa_detalhe_a_25        LIKE itab_detalhe_a_25,

      wa_detalhe_b_25        LIKE itab_detalhe_b_25,

      wa_detalhe_c_25        LIKE itab_detalhe_c_25,

      wa_trailer_lote_25     LIKE itab_trailer_lote_25,

      wa_trailer_arq_25      LIKE itab_trailer_arq_25.

 

* Importa dados

IMPORT: t_prog                 FROM MEMORY ID 'GEN001',

        wa_header_arq_26       FROM MEMORY ID 'GEN003',

        wa_header_lote_26      FROM MEMORY ID 'GEN004',

        wa_det_segto_a_341_26  FROM MEMORY ID 'GEN005',

        wa_det_segto_a_n341_26 FROM MEMORY ID 'GEN006',

        wa_det_segto_b_26      FROM MEMORY ID 'GEN007',

        wa_trailer_lote_26     FROM MEMORY ID 'GEN008',

        wa_trailer_arq_26      FROM MEMORY ID 'GEN009',

        v_chamada              FROM MEMORY ID 'GEN013',

        wa_header_arq_25       FROM MEMORY ID 'GEN014',

        wa_header_lote_25      FROM MEMORY ID 'GEN015',

        wa_detalhe_a_25        FROM MEMORY ID 'GEN016',

        wa_detalhe_b_25        FROM MEMORY ID 'GEN017',

        wa_detalhe_c_25        FROM MEMORY ID 'GEN018',

        wa_trailer_lote_25     FROM MEMORY ID 'GEN019',

        wa_trailer_arq_25      FROM MEMORY ID 'GEN020'.

 

* Executa form¿s dinâmicos, de acordo com chamada dos programas de

* arquivo eletrônico

GENERATE SUBROUTINE POOL t_prog NAME w_prog.

 

IF sy-subrc = 0.

* Febraban--------------------------------------------------------------

  IF v_chamada = 'wa_header_arq_25'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_header_arq_25

                                             IF FOUND.

 

  ELSEIF v_chamada = 'wa_header_lote_25'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_header_lote_25

                                             IF FOUND.

 

  ELSEIF v_chamada = 'wa_detalhe_a_25'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_detalhe_a_25

                                             IF FOUND.

 

  ELSEIF v_chamada = 'wa_detalhe_b_25'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_detalhe_b_25

                                             IF FOUND.

 

  ELSEIF v_chamada = 'wa_detalhe_c_25'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_detalhe_c_25

                                             IF FOUND.

 

  ELSEIF v_chamada = 'wa_trailer_lote_25'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_trailer_lote_25

                                             IF FOUND.

 

  ELSEIF v_chamada = 'wa_trailer_arq_25'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_trailer_arq_25

                                             IF FOUND.

* Itaú------------------------------------------------------------------

  ELSEIF v_chamada = 'wa_header_arq_26'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                wa_header_arq_26

                                             IF FOUND.

 

  ELSEIF v_chamada = 'wa_header_lote_26'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_header_lote_26

                                             IF FOUND.

 

  ELSEIF v_chamada = 'wa_det_segto_a_341_26'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                             wa_det_segto_a_341_26

                                             IF FOUND.

 

  ELSEIF v_chamada = 'wa_det_segto_a_n341_26'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                            wa_det_segto_a_n341_26

                                             IF FOUND.

 

  ELSEIF v_chamada = 'wa_det_segto_a_n341_26'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                            wa_det_segto_a_n341_26

                                             IF FOUND.

 

  ELSEIF v_chamada = 'wa_det_segto_a_n341_26'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                            wa_det_segto_a_n341_26

                                             IF FOUND.

 

  ELSEIF v_chamada = 'wa_det_segto_b_26'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_det_segto_b_26

                                             IF FOUND.

 

  ELSEIF v_chamada = 'wa_trailer_lote_26'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_trailer_lote_26

                                             IF FOUND.

 

  ELSEIF v_chamada = 'wa_trailer_arq_26'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_trailer_arq_26

                                             IF FOUND.

 

  ELSEIF v_chamada = 'wa_det_segto_b_26'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_det_segto_b_26

                                             IF FOUND.

  ENDIF.

ENDIF.

 

* Exporta dados atualizados

EXPORT: wa_saida                 TO MEMORY ID 'GEN002'.

 

*Abandona programa para zerar memória intermediária do generate

LEAVE PROGRAM.

* >> Fim da inclusão

* >> Fim da inclusão

* >> Fim da inclusão

* >> Fim da inclusão