CE PLUS - Nota 010487

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Liquidação de Fatura

Data/Hora da Publicação: 11/08/2010 00:00:00

Data/Hora Última Alteração: 18/02/2011 17:03:14

Descrição da Nota: CAMBIO EXPORTAÇÃO - LIQUIDAÇÃO - EXIT 'LIQ034'

Sintoma

time-out nas tabelas  BSAD e BSAS por conter muitos registros.

 

 

Solução

Cliente que não quer fazer indice nas tabelas BSAD e BSAS, utiliza a exit para nova seleção nessas

tabelas.

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

LIQUIDAÇÃO - LANÇAMENTOS DE CLIENTE/LIQ. AND COM CHAVE CPT(INCORRETA)

VINCULAÇÃO-ATRIBUIÇÃO INCORRETA, LIQUIDAÇÃO-CHAVE DE REFERÊNCIA VAZIA

LIQUIDAÇÃO - ERRO ATUALIZAÇÃO SALDO NO ESTORNO

LIQUIDAÇÃO - ARBITRAGEM - CONTA ARB INCORRETA PT-NÃO FAZ ARREDONDAMENTO

LIQUIDAÇÃO - PREENCHIMENTO DO CAMPO SOCIEDADE PARCEIRA.

VINCULAÇÃO COM LIQ AUTOMÁTICA - MENSAGEM INCORRETA DOCUMENTO COMPENSADO

DEVOLUÇÃO DA VINCULAÇÃO DE FATURAS, LIQUIDAÇÃO DE FATURAS

Informações Complementares

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

Nota Número 10487 Data: 11/08/2010 Hora: 12:03:38

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

 

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

Nota Número              : 10487

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00004

Agrupamento              : 00034

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

Referência às notas relacionadas:

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

 

09444  - 00007 - 8.0    - 00001  - LIQUIDAÇÃO - LANÇAMENTOS DE CLIENTE/LIQ. AND COM CHAVE CPT(INCORR

09890  - 00006 - 8.0    - 00002  - DEVOLUÇÃO DA VINCULAÇÃO DE FATURAS, LIQUIDAÇÃO DE FATURAS

09980  - 00005 - 8.0    - 00003  - VINCULAÇÃO COM LIQ AUTOMÁTICA - MENSAGEM INCORRETA DOCUMENTO COMP

10020  - 00004 - 8.0    - 00003  - LIQUIDAÇÃO - ARBITRAGEM - CONTA ARB INCORRETA PT-NÃO FAZ ARREDOND

10204  - 00003 - 8.0    - 00003  - LIQUIDAÇÃO - PREENCHIMENTO DO CAMPO SOCIEDADE PARCEIRA.

10270  - 00002 - 8.0    - 00003  - LIQUIDAÇÃO - ERRO ATUALIZAÇÃO SALDO NO ESTORNO

10436  - 00001 - 8.0    - 00004  - VINCULAÇÃO-ATRIBUIÇÃO INCORRETA, LIQUIDAÇÃO-CHAVE DE REFERÊNCIA V

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

CAMBIO EXPORTAÇÃO - LIQUIDAÇÃO - EXIT 'LIQ034'

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

Palavras Chave:

CAMBIO EXPORTAÇÃO - LIQUIDAÇÃO - EXIT 'LIQ034'

PARA  TRATAMENTO ANTES DA SELEÇÃO DAS TABELAS BSAD E BSAS

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

Objetos da nota:

REPS /PWS/MZYCB004F01

REPS /PWS/MZYCB004F02

REPS /PWS/MZYCB004X01

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F01

 

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

data: begin of itab_bsad occurs 0,

          bukrs like bsad-bukrs,

          kunnr like bsad-kunnr,

          umskz like bsad-umskz,

          augdt type bsad-augdt,

          augbl type bsad-augbl,

          gjahr like bsad-gjahr,

          belnr like bsad-belnr,

          bschl like bsad-bschl,

          gsber like bsad-gsber,

          wrbtr like bsad-wrbtr,

          sgtxt like bsad-sgtxt,

          zuonr like bsad-zuonr,

          budat like bsad-budat,

        end of itab_bsad.

 

  data: begin of itab_bsas occurs 0,

          bukrs like bsas-bukrs,

          hkont like bsas-hkont,

          augdt type bsas-augdt,

          augbl type bsas-augbl,

          gjahr like bsas-gjahr,

          belnr like bsas-belnr,

          bschl like bsas-bschl,

          gsber like bsas-gsber,

          wrbtr like bsas-wrbtr,

          sgtxt like bsas-sgtxt,

          zuonr like bsas-zuonr,

          budat like bsas-budat,

        end of itab_bsas.

* << Fim da exclusão

...

          itab_zycbt006_aux4-gjahr   = v_year.

          APPEND itab_zycbt006_aux4.

          itab_zycbt006_aux4-belnr   = itab_zycbt006-belnr.

          APPEND itab_zycbt006_aux4.

          itab_zycbt006_aux4-belnr   = itab_zycbt006-belnr_f28.

          APPEND itab_zycbt006_aux4.

        ENDIF.

      ENDLOOP.

    ENDLOOP.

    IF NOT itab_zycbt006_aux4[] IS INITIAL.

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

      CLEAR itab_zyglt100.

      REFRESH: itab_zyglt100.

      IF itab_zyglt100[] IS INITIAL.

        v_syrepid = sy-repid.

        CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

             EXPORTING

                  i_codmod                = 'E'

                  i_func                  = v_syrepid

             TABLES

                  itab_zyglt100           = itab_zyglt100

             EXCEPTIONS

                  i_codmod_nao_encontrado = 1

                  i_func_nao_encontrado   = 2

                  i_zexit_nao_encontrado  = 3

                  OTHERS                  = 4.

        IF sy-subrc = 0 .

        ELSE.

        ENDIF.

      ENDIF.

      READ TABLE itab_zyglt100 WITH KEY zexit = 'LIQ034' BINARY SEARCH.

      IF sy-subrc EQ 0 and

        NOT itab_zyglt100-zexit_ativa IS INITIAL.

          PERFORM (itab_zyglt100-formulario)

                  IN PROGRAM (itab_zyglt100-programa)

                  USING      ok_code

                  CHANGING   e_subrc.

          IF e_subrc NE 0.

            EXIT.

          ENDIF.

        ELSE.

* << Fim da inclusão

      SELECT bukrs kunnr umskz augdt augbl gjahr belnr bschl

             gsber wrbtr sgtxt zuonr budat

             INTO TABLE itab_bsad

             FROM bsad

             FOR ALL ENTRIES IN itab_zycbt006_aux4

             WHERE bukrs EQ itab_zycbt006_aux4-bukrs

               AND augdt EQ itab_zycbt006_aux4-dtpagto

               AND augbl EQ itab_zycbt006_aux4-belnr

               AND gjahr EQ itab_zycbt006_aux4-gjahr.

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

    ENDIF.

* << Fim da exclusão

    DELETE itab_bsad WHERE kunnr = space

                        OR kunnr = '          '.

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

        ENDIF.

    ENDIF.

* << Fim da inclusão

    LOOP AT itab_bsad.

      v_tabix = sy-tabix.

      LOOP AT itab_zycbt006_aux4 WHERE bukrs      = itab_bsad-bukrs

                                   AND dtpagto    = itab_bsad-augdt

                                   AND belnr      = itab_bsad-augbl

                                   AND gjahr      = itab_bsad-gjahr

                                   AND belnr      = itab_bsad-belnr.

        DELETE itab_bsad INDEX v_tabix.

        EXIT.

      ENDLOOP.

    ENDLOOP.

    IF NOT itab_zycbt006_aux4[] IS INITIAL.

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

      CLEAR itab_zyglt100.

      REFRESH: itab_zyglt100.

      IF itab_zyglt100[] IS INITIAL.

        v_syrepid = sy-repid.

        CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

             EXPORTING

                  i_codmod                = 'E'

                  i_func                  = v_syrepid

             TABLES

                  itab_zyglt100           = itab_zyglt100

             EXCEPTIONS

                  i_codmod_nao_encontrado = 1

                  i_func_nao_encontrado   = 2

                  i_zexit_nao_encontrado  = 3

                  OTHERS                  = 4.

        IF sy-subrc = 0 .

        ELSE.

        ENDIF.

      ENDIF.

      READ TABLE itab_zyglt100 WITH KEY zexit = 'LIQ034' BINARY SEARCH.

      IF sy-subrc EQ 0 and

       NOT itab_zyglt100-zexit_ativa IS INITIAL.

          PERFORM (itab_zyglt100-formulario)

                  IN PROGRAM (itab_zyglt100-programa)

                  USING      ok_code

                  CHANGING   e_subrc.

          IF e_subrc NE 0.

            EXIT.

          ENDIF.

        ELSE.

* << Fim da inclusão

      SELECT bukrs hkont augdt augbl gjahr belnr bschl

             gsber wrbtr sgtxt zuonr budat

             INTO TABLE itab_bsas

             FROM bsas

             FOR ALL ENTRIES IN itab_zycbt006_aux4

             WHERE bukrs EQ itab_zycbt006_aux4-bukrs

               AND augdt EQ itab_zycbt006_aux4-dtpagto

               AND augbl EQ itab_zycbt006_aux4-belnr

               AND gjahr EQ itab_zycbt006_aux4-gjahr.

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

    ENDIF.

* << Fim da exclusão

    DELETE itab_bsas WHERE hkont = space

                        OR hkont = '          '.

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

        ENDIF.

    ENDIF.

* << Fim da inclusão

    LOOP AT itab_bsas.

      v_tabix = sy-tabix.

      IF itab_bsas-bschl NE '40' AND itab_bsas-bschl NE '50'.

...

 

...

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

  data: begin of itab_bsad occurs 0,

          bukrs like bsad-bukrs,

          kunnr like bsad-kunnr,

          umskz like bsad-umskz,

          augdt type bsad-augdt,

          augbl type bsad-augbl,

          gjahr like bsad-gjahr,

          belnr like bsad-belnr,

          bschl like bsad-bschl,

          gsber like bsad-gsber,

          wrbtr like bsad-wrbtr,

          sgtxt like bsad-sgtxt,

          zuonr like bsad-zuonr,

          budat like bsad-budat,

        end of itab_bsad.

 

  data: begin of itab_bsas occurs 0,

          bukrs like bsas-bukrs,

          hkont like bsas-hkont,

          augdt type bsas-augdt,

          augbl type bsas-augbl,

          gjahr like bsas-gjahr,

          belnr like bsas-belnr,

          bschl like bsas-bschl,

          gsber like bsas-gsber,

          wrbtr like bsas-wrbtr,

          sgtxt like bsas-sgtxt,

          zuonr like bsas-zuonr,

          budat like bsas-budat,

        end of itab_bsas.

* << Fim da exclusão

...

          itab_zycbt006_aux4-dtpagto = itab_zycbt209-dtbelnr.

          itab_zycbt006_aux4-belnr   = itab_zycbt209-belnr.

          itab_zycbt006_aux4-gjahr   = v_year.

          APPEND itab_zycbt006_aux4.

          itab_zycbt006_aux4-belnr   = itab_zycbt006-belnr.

          APPEND itab_zycbt006_aux4.

        ENDIF.

      ENDLOOP.

    ENDLOOP.

    IF NOT itab_zycbt006_aux4[] IS INITIAL.

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

      CLEAR itab_zyglt100.

      REFRESH: itab_zyglt100.

      IF itab_zyglt100[] IS INITIAL.

        v_syrepid = sy-repid.

        CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

             EXPORTING

                  i_codmod                = 'E'

                  i_func                  = v_syrepid

             TABLES

                  itab_zyglt100           = itab_zyglt100

             EXCEPTIONS

                  i_codmod_nao_encontrado = 1

                  i_func_nao_encontrado   = 2

                  i_zexit_nao_encontrado  = 3

                  OTHERS                  = 4.

        IF sy-subrc = 0 .

        ELSE.

        ENDIF.

      ENDIF.

      READ TABLE itab_zyglt100 WITH KEY zexit = 'LIQ034' BINARY SEARCH.

      IF sy-subrc EQ 0 and

        NOT itab_zyglt100-zexit_ativa IS INITIAL.

          PERFORM (itab_zyglt100-formulario)

                  IN PROGRAM (itab_zyglt100-programa)

                  USING      ok_code

                  CHANGING   e_subrc.

          IF e_subrc NE 0.

            EXIT.

          ENDIF.

        ELSE.

* << Fim da inclusão

      SELECT bukrs kunnr umskz augdt augbl gjahr belnr bschl

             gsber wrbtr sgtxt zuonr budat

             INTO TABLE itab_bsad

             FROM bsad

             FOR ALL ENTRIES IN itab_zycbt006_aux4

             WHERE bukrs EQ itab_zycbt006_aux4-bukrs

               AND augdt EQ itab_zycbt006_aux4-dtpagto

               AND augbl EQ itab_zycbt006_aux4-belnr

               AND gjahr EQ itab_zycbt006_aux4-gjahr.

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

    ENDIF.

* << Fim da exclusão

    DELETE itab_bsad WHERE kunnr = space

                        OR kunnr = '          '.

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

        ENDIF.

    ENDIF.

* << Fim da inclusão

    LOOP AT itab_bsad.

      v_tabix = sy-tabix.

      LOOP AT itab_zycbt006_aux4 WHERE bukrs = itab_bsad-bukrs

                                   AND dtpagto    = itab_bsad-augdt

                                   AND gjahr      = itab_bsad-gjahr

                                   AND belnr      = itab_bsad-augbl

                                   AND belnr      = itab_bsad-belnr.

        DELETE itab_bsad INDEX v_tabix.

        EXIT.

      ENDLOOP.

    ENDLOOP.

    IF NOT itab_zycbt006_aux4[] IS INITIAL.

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

      CLEAR itab_zyglt100.

      REFRESH: itab_zyglt100.

      IF itab_zyglt100[] IS INITIAL.

        v_syrepid = sy-repid.

        CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

             EXPORTING

                  i_codmod                = 'E'

                  i_func                  = v_syrepid

             TABLES

                  itab_zyglt100           = itab_zyglt100

             EXCEPTIONS

                  i_codmod_nao_encontrado = 1

                  i_func_nao_encontrado   = 2

                  i_zexit_nao_encontrado  = 3

                  OTHERS                  = 4.

        IF sy-subrc = 0 .

        ELSE.

        ENDIF.

      ENDIF.

      READ TABLE itab_zyglt100 WITH KEY zexit = 'LIQ034' BINARY SEARCH.

      IF sy-subrc EQ 0 and

        NOT itab_zyglt100-zexit_ativa IS INITIAL.

          PERFORM (itab_zyglt100-formulario)

                  IN PROGRAM (itab_zyglt100-programa)

                  USING      ok_code

                  CHANGING   e_subrc.

          IF e_subrc NE 0.

            EXIT.

          ENDIF.

        ELSE.

* << Fim da inclusão

      SELECT bukrs hkont augdt augbl gjahr belnr bschl

             gsber wrbtr sgtxt zuonr budat

             INTO TABLE itab_bsas

             FROM bsas

             FOR ALL ENTRIES IN itab_zycbt006_aux4

             WHERE bukrs EQ itab_zycbt006_aux4-bukrs

               AND augdt EQ itab_zycbt006_aux4-dtpagto

               AND augbl EQ itab_zycbt006_aux4-belnr

               AND gjahr EQ itab_zycbt006_aux4-gjahr.

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

    ENDIF.

* << Fim da exclusão

    DELETE itab_bsas WHERE hkont = space

                        OR hkont = '          '.

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

        ENDIF.

    ENDIF.

* << Fim da inclusão

    LOOP AT itab_bsas.

      v_tabix = sy-tabix.

      IF itab_bsas-bschl NE '40' AND itab_bsas-bschl NE '50'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F02

 

...

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

  data: begin of itab_bsas occurs 0,

         bukrs like bsas-bukrs,

         hkont like bsas-hkont,

         augdt like bsas-augdt,

         augbl like bsas-augbl,

         gjahr like bsas-gjahr,

         belnr like bsas-belnr,

         budat like bsas-budat,

         wrbtr like bsas-wrbtr,

        end of itab_bsas.

 

  data: begin of itab_bsad occurs 0,

         bukrs like bsad-bukrs,

         kunnr like bsad-kunnr,

         umskz like bsad-umskz,

         augdt like bsad-augdt,

         augbl like bsad-augbl,

         gjahr like bsad-gjahr,

         belnr like bsad-belnr,

         wrbtr like bsad-wrbtr,

         budat like bsad-budat,

        end of itab_bsad.

* << Fim da exclusão

...

 

                    version_undefined      = 6

                    others                 = 7.

          itab_zycbt006_aux4-dtpagto = itab_zycbt209-dtbelnr.

          itab_zycbt006_aux4-belnr   = itab_zycbt209-belnr.

          itab_zycbt006_aux4-gjahr   = v_year.

          append itab_zycbt006_aux4.

        endif.

      endloop.

    endloop.

    if not itab_zycbt006_aux4[] is initial.

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

      clear itab_zyglt100.

      refresh: itab_zyglt100.

      if itab_zyglt100[] is initial.

        v_syrepid = sy-repid.

        call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

             exporting

                  i_codmod                = 'E'

                  i_func                  = v_syrepid

             tables

                  itab_zyglt100           = itab_zyglt100

             exceptions

                  i_codmod_nao_encontrado = 1

                  i_func_nao_encontrado   = 2

                  i_zexit_nao_encontrado  = 3

                  others                  = 4.

        if sy-subrc = 0 .

        else.

        endif.

      endif.

      read table itab_zyglt100 with key zexit = 'LIQ034' binary search.

      if sy-subrc eq 0 and

        not itab_zyglt100-zexit_ativa is initial.

          perform (itab_zyglt100-formulario)

                  in program (itab_zyglt100-programa)

                  using      ok_code

                  changing   e_subrc.

          if e_subrc ne 0.

            exit.

          endif.

        else.

* << Fim da inclusão

 

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

          select bukrs hkont augdt augbl gjahr belnr budat wrbtr

* << Fim da exclusão

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

          select bukrs hkont augdt augbl gjahr belnr bschl

                 gsber wrbtr sgtxt zuonr budat

* << Fim da inclusão

             from bsas

             into table itab_bsas

             for all entries in itab_zycbt006_aux4

             where bukrs eq itab_zycbt006_aux4-bukrs     and

                   augdt eq itab_zycbt006_aux4-dtpagto   and

                   augbl eq itab_zycbt006_aux4-belnr     and

                   gjahr eq itab_zycbt006_aux4-gjahr.

      delete itab_bsas where hkont = space

                          or hkont = '          '.

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

        endif.

* << Fim da inclusão

      loop at itab_bsas.

        v_tabix = sy-tabix.

        loop at itab_zycbt006_aux4 where bukrs      = itab_bsas-bukrs

                                     and dtpagto    = itab_bsas-augdt

                                     and belnr      = itab_bsas-augbl

                                     and gjahr      = itab_bsas-gjahr

                                     and belnr      = itab_bsas-belnr.

          delete itab_bsas index v_tabix.

          exit.

        endloop.

      endloop.

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

    clear itab_zyglt100.

    refresh: itab_zyglt100.

    if itab_zyglt100[] is initial.

      v_syrepid = sy-repid.

      call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

           exporting

                i_codmod                = 'E'

                i_func                  = v_syrepid

           tables

                itab_zyglt100           = itab_zyglt100

           exceptions

                i_codmod_nao_encontrado = 1

                i_func_nao_encontrado   = 2

                i_zexit_nao_encontrado  = 3

                others                  = 4.

      if sy-subrc = 0 .

      else.

      endif.

    endif.

    read table itab_zyglt100 with key zexit = 'LIQ034' binary search.

    if sy-subrc eq 0 and

      not itab_zyglt100-zexit_ativa is initial.

        perform (itab_zyglt100-formulario)

                in program (itab_zyglt100-programa)

                using      ok_code

                changing   e_subrc.

        if e_subrc ne 0.

          exit.

        endif.

      else.

* << Fim da inclusão

 

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

      select bukrs kunnr umskz augdt augbl gjahr belnr

             wrbtr

             budat

* << Fim da exclusão

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

        select bukrs kunnr umskz augdt augbl gjahr belnr bschl

               gsber wrbtr sgtxt zuonr budat

* << Fim da inclusão

            from bsad

            into table itab_bsad

            for all entries in itab_zycbt006_aux4

            where bukrs eq itab_zycbt006_aux4-bukrs      and

                  augdt eq itab_zycbt006_aux4-dtpagto    and

                  augbl eq itab_zycbt006_aux4-belnr      and

                  gjahr eq itab_zycbt006_aux4-gjahr.

      delete itab_bsad where kunnr = space

                          or kunnr = '          '.

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

      endif.

* << Fim da inclusão

      loop at itab_bsad.

        v_tabix = sy-tabix.

        loop at itab_zycbt006_aux4 where bukrs      = itab_bsad-bukrs

                                     and dtpagto    = itab_bsad-augdt

                                     and belnr      = itab_bsad-augbl

                                     and gjahr      = itab_bsad-gjahr

                                     and belnr      = itab_bsad-belnr.

          delete itab_bsad index v_tabix.

          exit.

        endloop.

...

 

...

        if /pws/zycbt089-tp_liq_and ne 'D'.

          v_kunnr = itab_zycbt006-kunnr.

        else.

          if /pws/zycbt089-liq_and_cod_cli is initial.

            select single ktokd from kna1

            into v_ktokd

            where kunnr eq itab_zycbt006-kunnr.

            select single codtrans

            from          /pws/zyglt368

            into          v_kunnr

            where         ktokd = v_ktokd.                 "#EC CI_NOFIRST

          else.

            v_kunnr = /pws/zycbt089-liq_and_cod_cli.

          endif.

        endif.

        if itab_zycbt006_aux4[] > itab_zycbt006[].

          loop at itab_zycbt006_aux4

                               where nrinvoic = itab_zycbt006-nrinvoic

                                 and nrparcf  = itab_zycbt006-nrparcf

                                 and gsberf   = itab_zycbt006-gsberf.

            loop at itab_bsad

...

 

...

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

 

 

  data: begin of itab_bsad occurs 0,

          bukrs like bsad-bukrs,

          kunnr like bsad-kunnr,

          umskz like bsad-umskz,

          augdt type bsad-augdt,

          augbl type bsad-augbl,

          gjahr like bsad-gjahr,

          belnr like bsad-belnr,

          bschl like bsad-bschl,

          gsber like bsad-gsber,

          wrbtr like bsad-wrbtr,

          sgtxt like bsad-sgtxt,

          zuonr like bsad-zuonr,

          budat like bsad-budat,

        end of itab_bsad.

 

  data: begin of itab_bsas occurs 0,

          bukrs like bsas-bukrs,

          hkont like bsas-hkont,

          augdt type bsas-augdt,

          augbl type bsas-augbl,

          gjahr like bsas-gjahr,

          belnr like bsas-belnr,

          bschl like bsas-bschl,

          gsber like bsas-gsber,

          wrbtr like bsas-wrbtr,

          sgtxt like bsas-sgtxt,

          zuonr like bsas-zuonr,

          budat like bsas-budat,

        end of itab_bsas.

* << Fim da exclusão

 

...

          itab_zycbt006_aux4-dtpagto = itab_zycbt209-dtbelnr.

          itab_zycbt006_aux4-belnr   = itab_zycbt209-belnr.

          itab_zycbt006_aux4-gjahr   = v_year.

          append itab_zycbt006_aux4.

          itab_zycbt006_aux4-belnr   = itab_zycbt006-belnr.

          append itab_zycbt006_aux4.

        endif.

      endloop.

    endloop.

    if not itab_zycbt006_aux4[] is initial.

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

      clear itab_zyglt100.

      refresh: itab_zyglt100.

      if itab_zyglt100[] is initial.

        v_syrepid = sy-repid.

        call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

             exporting

                  i_codmod                = 'E'

                  i_func                  = v_syrepid

             tables

                  itab_zyglt100           = itab_zyglt100

             exceptions

                  i_codmod_nao_encontrado = 1

                  i_func_nao_encontrado   = 2

                  i_zexit_nao_encontrado  = 3

                  others                  = 4.

        if sy-subrc = 0 .

        else.

        endif.

      endif.

      read table itab_zyglt100 with key zexit = 'LIQ034' binary search.

      if sy-subrc eq 0 and

        not itab_zyglt100-zexit_ativa is initial.

          perform (itab_zyglt100-formulario)

                  in program (itab_zyglt100-programa)

                  using      ok_code

                  changing   e_subrc.

          if e_subrc ne 0.

            exit.

          endif.

        else.

* << Fim da inclusão

      select bukrs kunnr umskz augdt augbl gjahr belnr bschl

             gsber wrbtr sgtxt zuonr budat

             into table itab_bsad

             from bsad

             for all entries in itab_zycbt006_aux4

             where bukrs eq itab_zycbt006_aux4-bukrs

               and augdt eq itab_zycbt006_aux4-dtpagto

               and augbl eq itab_zycbt006_aux4-belnr

               and gjahr eq itab_zycbt006_aux4-gjahr.

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

    endif.

* << Fim da exclusão

    delete itab_bsad where kunnr = space

                        or kunnr = '          '.

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

        endif.

    endif.

* << Fim da inclusão

    loop at itab_bsad.

      v_tabix = sy-tabix.

      loop at itab_zycbt006_aux4 where bukrs      = itab_bsad-bukrs

                                   and dtpagto    = itab_bsad-augdt

                                   and belnr      = itab_bsad-augbl

                                   and gjahr      = itab_bsad-gjahr

                                   and belnr      = itab_bsad-belnr.

        delete itab_bsad index v_tabix.

        exit.

      endloop.

    endloop.

    if not itab_zycbt006_aux4[] is initial.

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

      clear itab_zyglt100.

      refresh: itab_zyglt100.

      if itab_zyglt100[] is initial.

        v_syrepid = sy-repid.

        call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

             exporting

                  i_codmod                = 'E'

                  i_func                  = v_syrepid

             tables

                  itab_zyglt100           = itab_zyglt100

             exceptions

                  i_codmod_nao_encontrado = 1

                  i_func_nao_encontrado   = 2

                  i_zexit_nao_encontrado  = 3

                  others                  = 4.

        if sy-subrc = 0 .

        else.

        endif.

      endif.

      read table itab_zyglt100 with key zexit = 'LIQ034' binary search.

      if sy-subrc eq 0 and

        not itab_zyglt100-zexit_ativa is initial.

          perform (itab_zyglt100-formulario)

                  in program (itab_zyglt100-programa)

                  using      ok_code

                  changing   e_subrc.

          if e_subrc ne 0.

            exit.

          endif.

        else.

* << Fim da inclusão

      select bukrs hkont augdt augbl gjahr belnr bschl

             gsber wrbtr sgtxt zuonr budat

             into table itab_bsas

             from bsas

             for all entries in itab_zycbt006_aux4

             where bukrs eq itab_zycbt006_aux4-bukrs

               and augdt eq itab_zycbt006_aux4-dtpagto

               and augbl eq itab_zycbt006_aux4-belnr

               and gjahr eq itab_zycbt006_aux4-gjahr.

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

    endif.

* << Fim da exclusão

    delete itab_bsas where hkont = space

                        or hkont = '          '.

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

        endif.

     endif.

* << Fim da inclusão

    loop at itab_bsas.

      v_tabix = sy-tabix.

      if itab_bsas-bschl ne '40' and itab_bsas-bschl ne '50'.

...

 

...

                    version_undefined      = 6

                    others                 = 7.

          itab_zycbt006_aux4-dtpagto = itab_zycbt209-dtbelnr.

          itab_zycbt006_aux4-belnr   = itab_zycbt209-belnr.

          itab_zycbt006_aux4-gjahr   = v_year.

          append itab_zycbt006_aux4.

        endif.

      endloop.

    endloop.

    if not itab_zycbt006_aux4[] is initial.

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

        clear itab_zyglt100.

        refresh: itab_zyglt100.

        if itab_zyglt100[] is initial.

          v_syrepid = sy-repid.

          call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

               exporting

                    i_codmod                = 'E'

                    i_func                  = v_syrepid

               tables

                    itab_zyglt100           = itab_zyglt100

               exceptions

                    i_codmod_nao_encontrado = 1

                    i_func_nao_encontrado   = 2

                    i_zexit_nao_encontrado  = 3

                    others                  = 4.

          if sy-subrc = 0 .

          else.

          endif.

        endif.

       read table itab_zyglt100 with key zexit = 'LIQ034' binary search.

        if sy-subrc eq 0 and

          not itab_zyglt100-zexit_ativa is initial.

            perform (itab_zyglt100-formulario)

                    in program (itab_zyglt100-programa)

                    using      ok_code

                    changing   e_subrc.

            if e_subrc ne 0.

              exit.

            endif.

          else.

* << Fim da inclusão

 

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

      select bukrs hkont augdt augbl gjahr belnr budat wrbtr

* << Fim da exclusão

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

      select bukrs hkont augdt augbl gjahr belnr bschl

             gsber wrbtr sgtxt zuonr budat

* << Fim da inclusão

             from bsas

             into table itab_bsas

             for all entries in itab_zycbt006_aux4

             where bukrs eq itab_zycbt006_aux4-bukrs     and

                   augdt eq itab_zycbt006_aux4-dtpagto   and

                   augbl eq itab_zycbt006_aux4-belnr     and

                   gjahr eq itab_zycbt006_aux4-gjahr.

      delete itab_bsas where hkont = space

                          or hkont = '          '.

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

          endif.

* << Fim da inclusão

      loop at itab_bsas.

        v_tabix = sy-tabix.

        loop at itab_zycbt006_aux4 where bukrs      = itab_bsas-bukrs

                                     and dtpagto    = itab_bsas-augdt

                                     and belnr      = itab_bsas-augbl

                                     and gjahr      = itab_bsas-gjahr

                                     and belnr      = itab_bsas-belnr.

          delete itab_bsas index v_tabix.

          exit.

        endloop.

      endloop.

      if not itab_zycbt006_aux4[] is initial.

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

        clear itab_zyglt100.

        refresh: itab_zyglt100.

        if itab_zyglt100[] is initial.

          v_syrepid = sy-repid.

          call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

               exporting

                    i_codmod                = 'E'

                    i_func                  = v_syrepid

               tables

                    itab_zyglt100           = itab_zyglt100

               exceptions

                    i_codmod_nao_encontrado = 1

                    i_func_nao_encontrado   = 2

                    i_zexit_nao_encontrado  = 3

                    others                  = 4.

          if sy-subrc = 0 .

          else.

          endif.

        endif.

       read table itab_zyglt100 with key zexit = 'LIQ034' binary search.

        if sy-subrc eq 0 and

          not itab_zyglt100-zexit_ativa is initial.

            perform (itab_zyglt100-formulario)

                    in program (itab_zyglt100-programa)

                    using      ok_code

                    changing   e_subrc.

            if e_subrc ne 0.

              exit.

            endif.

          else.

* << Fim da inclusão

 

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

            select bukrs kunnr umskz augdt augbl gjahr belnr

                   wrbtr

                   budat

* << Fim da exclusão

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

        select bukrs kunnr umskz augdt augbl gjahr belnr bschl

               gsber wrbtr sgtxt zuonr budat

* << Fim da inclusão

              from bsad

              into table itab_bsad

              for all entries in itab_zycbt006_aux4

              where bukrs eq itab_zycbt006_aux4-bukrs      and

                    augdt eq itab_zycbt006_aux4-dtpagto    and

                    augbl eq itab_zycbt006_aux4-belnr      and

                    gjahr eq itab_zycbt006_aux4-gjahr.

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

      endif.

* << Fim da exclusão

      delete itab_bsad where kunnr = space

                          or kunnr = '          '.

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

          endif.

      endif.

* << Fim da inclusão

      loop at itab_bsad.

        v_tabix = sy-tabix.

        loop at itab_zycbt006_aux4 where bukrs      = itab_bsad-bukrs

...

 

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

Modificações efetuadas em REPS /PWS/MZYCB004X01

 

* >> Início da inclusão:

data: begin of itab_bsad occurs 0,

          bukrs like bsad-bukrs,

          kunnr like bsad-kunnr,

          umskz like bsad-umskz,

          augdt type bsad-augdt,

          augbl type bsad-augbl,

          gjahr like bsad-gjahr,

          belnr like bsad-belnr,

          bschl like bsad-bschl,

          gsber like bsad-gsber,

          wrbtr like bsad-wrbtr,

          sgtxt like bsad-sgtxt,

          zuonr like bsad-zuonr,

          budat like bsad-budat,

        end of itab_bsad.

 

  data: begin of itab_bsas occurs 0,

          bukrs like bsas-bukrs,

          hkont like bsas-hkont,

          augdt type bsas-augdt,

          augbl type bsas-augbl,

          gjahr like bsas-gjahr,

          belnr like bsas-belnr,

          bschl like bsas-bschl,

          gsber like bsas-gsber,

          wrbtr like bsas-wrbtr,

          sgtxt like bsas-sgtxt,

          zuonr like bsas-zuonr,

          budat like bsas-budat,

        end of itab_bsas.

 

* << Fim da inclusão