CE PLUS - Nota 003893

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Fatura Mercadoria

Data/Hora da Publicação: 11/06/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 16:07:57

Descrição da Nota: AJUSTE DE PERFORMANCE NA CRIAÇÃO DA FATURA

Sintoma

Ao criar a fatura o sistema está muito lento, quando possui muitos itens.

A mensagem que mostra o valor da fatura que está sendo criada, aparece na tela novamente depois de

colocar o valor, e só desaparece de ser enter.

 

 

Solução

ajustes para performance na criação da fatura .

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

AO GERAR A NOTA FISCAL OS VALORES DO CUSTO FICAM INCORRETOS.

FATURA TIPO P ESTÁ CONTABILIZANDO ANTES DA DI/DSI.

FATURA DE DESPESA PARA EMBARQUES DE SERVIÇO

DECLARAÇÃO DE TABELAS UTILIZADAS EM BATCH INPUT DA FATURA

SISTEMA ESTÁ SE PERDENDO E SELECIONANDO FATURAS ELIMINADAS NO EMBARQUE

FATURA NÃO ESTA CONTABILIZANDO APOS NF

Informações Complementares

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

Nota Número 03893 Data: 11/06/2007 Hora: 16:51:26

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

 

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

Nota Número              : 03893

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00170

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

Referência às notas relacionadas:

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

 

02396  - 00001 - 6.0    - 00025  - FATURA DE DESPESA PARA EMBARQUES DE SERVIÇO

02421  - 00002 - 6.0    - 00025  - FATURA NÃO ESTA CONTABILIZANDO APOS NF

02593  - 00003 - 6.0    - 00025  - FATURA TIPO P ESTÁ CONTABILIZANDO ANTES DA DI/DSI.

03089  - 00006 - 6.0    - 00026  - SISTEMA ESTÁ SE PERDENDO E SELECIONANDO FATURAS ELIMINADAS NO EMB

03092  - 00004 - 6.0    - 00026  - DECLARAÇÃO DE TABELAS UTILIZADAS EM BATCH INPUT DA FATURA

03654  - 00005 - 7.0    - 00001  - AO GERAR A NOTA FISCAL OS VALORES DO CUSTO FICAM INCORRETOS.

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

AJUSTE DE PERFORMANCE NA CRIAÇÃO DA FATURA

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

Palavras Chave:

PERFORMANCE - PROGRAMA - CRIAÇÃO - FATURA

 

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

Objetos da nota:

DYNP /PWS/SAPMZYCI003                        0100

DYNP /PWS/SAPMZYCI003                        0101

DYNP /PWS/SAPMZYCI003                        0106

RELE F6DK947041 20070611 103112 PWSCI

REPS /PWS/MZYCI003F01

REPS /PWS/MZYCI003F02

REPS /PWS/MZYCI003I01

REPS /PWS/MZYCI003O01

REPS /PWS/MZYCI003X01

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI003                        0101

 

...

  MODULE: user_command_0101,

          atualiza_zycie006,

* >> Início da inclusão:

          check_total.

* << Fim da inclusão

 

 

PROCESS ON VALUE-REQUEST.

  FIELD /pws/zycie006-zterm MODULE valuerequest_zterm.

...

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI003                        0106

 

...

 

    FIELD /pws/zycie003-vlreal MODULE trata_obrigatorio.

 

    MODULE altera_itab_zycit003.

 

  ENDLOOP.

* >> Início da exclusão:

*  MODULE: check_total,

*          calcula_peso,

* << Fim da exclusão

 

* >> Início da inclusão:

  MODULE: calcula_peso,

* << Fim da inclusão

          user_command_0102.

 

PROCESS ON VALUE-REQUEST.

  FIELD :  v_ratval MODULE seta_matchcode.

...

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

Modificações efetuadas em REPS /PWS/MZYCI003F01

 

...

        DELETE FROM /pws/zycit036

           WHERE nrseq EQ itab_zycit003_ini-nrseq AND

                 ebeln EQ itab_zycit003_ini-ebeln AND

                 ebelp EQ itab_zycit003_ini-ebelp AND

                 codigo EQ /pws/zycit031-inco1_ci AND

                 origem EQ 'FAT' AND

                 nrseqori EQ /pws/zycie006-nrseq.

      ENDIF.

    ENDLOOP.

    IF NOT itab_zycit003[] IS INITIAL.

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

      READ TABLE itab_zycit003 INDEX 1.

* << Fim da inclusão

      SELECT * FROM /pws/zycit036 INTO TABLE itab_zycit036

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

               FOR ALL ENTRIES IN itab_zycit003 WHERE

               nrseq = itab_zycit003-nrseq AND

               ebeln = itab_zycit003-ebeln AND

               ebelp = itab_zycit003-ebelp AND

               codigo = /pws/zycit031-inco1_ci AND

               origem = 'FAT' AND

               nrseqori = /pws/zycie006-nrseq.

* << Fim da exclusão

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

         WHERE nrseq    = itab_zycit003-nrseq

           AND codigo   = /pws/zycit031-inco1_ci

           AND origem   = 'FAT'

           AND nrseqori = /pws/zycie006-nrseq.

* << Fim da inclusão

    ENDIF.

    DESCRIBE TABLE itab_zycit003 LINES v_line.

    LOOP AT itab_zycit003.

      v_tabix = sy-tabix.

      /pws/zycie036-nrseq      = itab_zycit003-nrseq.

      /pws/zycie036-ebeln      = itab_zycit003-ebeln.

      /pws/zycie036-ebelp      = itab_zycit003-ebelp.

      /pws/zycie036-werks      = itab_zycit003-werks.

      /pws/zycie036-nrseqori   = /pws/zycie006-nrseq.

      /pws/zycie036-embarca    = /pws/zycie001-embarca.

...

 

...

          v_itens_inconsistentes = 'X'.

        ELSEIF wa_zycit003-inco1 NE /pws/zycie006-inco1.

          v_itens_inconsistentes = 'X'.

        ENDIF.

      ENDIF.

      FREE itab_zycit263_aux.

      CLEAR itab_zycit263_aux.

      REFRESH itab_zycit263_aux.

      IF NOT itab_zycit003_aux[] IS INITIAL.

        SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263_aux

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

             FOR ALL ENTRIES IN itab_zycit003_aux WHERE

             nrseq = itab_zycit003_aux-nrseq AND

             ebeln = itab_zycit003_aux-ebeln AND

             ebelp = itab_zycit003_aux-ebelp AND

             eliminado = space.

* << Fim da exclusão

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

             WHERE nrseq = itab_zycit003_aux-nrseq

               and eliminado = space.

* << Fim da inclusão

        IF NOT itab_zycit263[] IS INITIAL.

          SELECT * FROM /pws/zycit006

            INTO TABLE itab_zycit006

            FOR ALL ENTRIES IN itab_zycit263

            WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

          LOOP AT itab_zycit263.

            v_tabix = sy-tabix.

            READ TABLE itab_zycit006 WITH KEY

                 nrseq_pgfat = itab_zycit263-nrseq_pgfat

                 eliminado   = space.

...

 

...

      ENDIF.

      IF /pws/zycie006-lifnr IS INITIAL.

        IF NOT /pws/zycie006-tpfatura EQ '02' AND

           NOT /pws/zycie006-tpfatura EQ '03'.

          /pws/zycie006-lifnr = wa_zycit003-lifnr.

        ENDIF.

      ENDIF.

    ENDIF.

    IF /pws/zycie006-tpfatura EQ '01' OR /pws/zycie006-tpfatura EQ '02'.

      IF NOT itab_zycit003[] IS INITIAL.

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

        READ TABLE itab_zycit003 INDEX 1.

* << Fim da inclusão

        SELECT nrseq modalidade FROM /pws/zycit001 INTO TABLE itab_serv

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

        FOR ALL ENTRIES IN itab_zycit003 WHERE

        nrseq EQ itab_zycit003-nrseq.

* << Fim da exclusão

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

          WHERE nrseq EQ itab_zycit003-nrseq.

* << Fim da inclusão

      ENDIF.

      CLEAR v_serv.

...

 

...

            i_paramoeda_nao_encontrado = 2

            i_ctmoeda_nao_encontrado   = 3

            i_dtbase_nao_encontrada    = 4

            taxa_nao_encontrada        = 5

            fator_nao_encontrado       = 6

            i_montante_nao_encontrado  = 7

            OTHERS                     = 8.

ENDFORM.

FORM trata_decimais USING    p_waers

                    CHANGING p_valplan.

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

  READ TABLE itab_tcurx INTO tcurx WITH KEY currkey = p_waers.

  IF sy-subrc NE 0.

* << Fim da inclusão

  SELECT SINGLE * FROM tcurx WHERE currkey = p_waers.

  IF sy-subrc <> 0.

    tcurx-currdec = 2.

  ENDIF.

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

    tcurx-currkey = p_waers.

    APPEND tcurx TO itab_tcurx .

  ENDIF.

* << Fim da inclusão

  p_valplan = p_valplan * ( 10 ** ( tcurx-currdec - 2 ) ).

...

 

...

FORM load_mdpg.

  CLEAR: a_modpa.

  SELECT SINGLE descricao FROM /pws/zycit193 INTO a_modpa WHERE

         codmodpag = /pws/zycie006-mdpgto.

ENDFORM.

FORM consiste_regime.

  DATA: itab_zycit001_aux LIKE /pws/zycit001 OCCURS 0 WITH HEADER LINE,

        v_tpdecl LIKE /pws/zycit001-tpdecl,

        v_regime LIKE /pws/zycit001-regime.

  IF NOT itab_zycit003[] IS INITIAL.

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

    READ TABLE itab_zycit003 INDEX 1.

* << Fim da inclusão

    SELECT * FROM /pws/zycit001 INTO TABLE itab_zycit001_aux

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

      FOR ALL ENTRIES IN itab_zycit003

* << Fim da exclusão

      WHERE nrseq = itab_zycit003-nrseq.

    READ TABLE itab_zycit001_aux INDEX 1.

    MOVE: itab_zycit001_aux-tpdecl TO v_tpdecl,

          itab_zycit001_aux-regime TO v_regime.

    LOOP AT itab_zycit001_aux WHERE tpdecl NE v_tpdecl.

    ENDLOOP.

...

 

...

           wa_zycie006_ini-ratval NE /pws/zycie006-ratval  OR

           wa_zycie006_ini-zterm    NE /pws/zycie006-zterm    OR

           wa_zycie006_ini-lifnr    NE /pws/zycie006-lifnr    OR

           wa_zycie006_ini-j_1bbranch NE /pws/zycie006-j_1bbranch OR

           v_contabiliza            EQ 'S'               OR

           wa_zycie006_ini-dtvencto NE /pws/zycie006-dtvencto OR

           wa_zycie006_ini-ebene    NE /pws/zycie006-ebene    OR

           wa_zycie006_ini-dataprvtsr NE /pws/zycie006-dataprvtsr OR

           /pws/zycie006-belnr_p         IS INITIAL.

          IF v_congela IS INITIAL.

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

            SELECT  *

* << Fim da exclusão

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

            READ TABLE itab_zycit003 INDEX 1.

            SELECT SINGLE  *

* << Fim da inclusão

              FROM /pws/zycit042

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

              FOR ALL ENTRIES IN itab_zycit003

* << Fim da exclusão

              WHERE nrseq  EQ itab_zycit003-nrseq

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

                AND ebeln EQ itab_zycit003-ebeln

                AND ebelp  EQ itab_zycit003-ebelp

* << Fim da exclusão

                AND docnum NE ''.

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

            ENDSELECT.

* << Fim da exclusão

            IF sy-subrc NE 0 OR /pws/zycie006-tpfatura NE '01'.

              PERFORM contabilizacao_f-02_ou_f-43.

            ELSE.

              MESSAGE i015 WITH text-169.

            ENDIF.

          ELSE.

            MESSAGE i015 WITH text-135.

          ENDIF.

        ENDIF.

      ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F02

 

...

    p_t_zycit032-tabela = p_t_dados-tabela.

    p_t_zycit032-cpochv = p_t_dados-cpochv.

    p_t_zycit032-tpmsg  = 'S'.

    p_t_zycit032-nrmsg  = p_nrmsg.

    APPEND p_t_zycit032.

  ENDIF.

  REFRESH: p_itab_bdc.

ENDFORM.

FORM retorna_decimais USING    p_waers

                    CHANGING p_valplan.

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

  READ TABLE itab_tcurx INTO tcurx WITH KEY currkey = p_waers.

  IF sy-subrc NE 0.

* << Fim da inclusão

  SELECT SINGLE * FROM tcurx WHERE currkey = p_waers.

  IF sy-subrc <> 0.

    tcurx-currdec = 2.

  ENDIF.

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

    tcurx-currkey = p_waers.

    APPEND tcurx TO itab_tcurx .

  ENDIF.

* << Fim da inclusão

  p_valplan = p_valplan / ( 10 ** ( tcurx-currdec - 2 ) ).

...

 

...

                      CHANGING p_valor.

  SELECT SINGLE * FROM tcurx WHERE currkey = p_moeda.

  IF sy-subrc <> 0.

    tcurx-currdec = 2.

  ENDIF.

  p_valor = p_valor * ( 10 ** ( tcurx-currdec - 2 ) ).

ENDFORM.

FORM calc_vlreal.

  REFRESH: itab_zycit263.

  IF NOT itab_zycit003[] IS INITIAL.

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

    READ TABLE itab_zycit003 INDEX 1.

* << Fim da inclusão

    SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

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

             FOR ALL ENTRIES IN itab_zycit003 WHERE

             nrseq = itab_zycit003-nrseq AND

             ebeln = itab_zycit003-ebeln AND

             ebelp = itab_zycit003-ebelp AND

             eliminado = space.

* << Fim da exclusão

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

          WHERE nrseq = itab_zycit003-nrseq

            AND eliminado = space.

* << Fim da inclusão

    IF NOT itab_zycit263[] IS INITIAL.

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

      REFRESH itab_fat_temp.

      LOOP AT itab_zycit263.

        itab_fat_temp-nrseq_pgfat = itab_zycit263-nrseq_pgfat.

        COLLECT itab_fat_temp.

      ENDLOOP.

* << Fim da inclusão

      SELECT * FROM /pws/zycit006

        INTO TABLE itab_zycit006

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

        FOR ALL ENTRIES IN itab_zycit263

        WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

* << Fim da exclusão

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

        FOR ALL ENTRIES IN itab_fat_temp

        WHERE nrseq_pgfat EQ itab_fat_temp-nrseq_pgfat.

* << Fim da inclusão

      LOOP AT itab_zycit263.

        v_tabix = sy-tabix.

        READ TABLE itab_zycit006 WITH KEY

             nrseq_pgfat = itab_zycit263-nrseq_pgfat

             eliminado   = space.

        IF sy-subrc NE 0.

          itab_zycit263-eliminado = 'X'.

          MODIFY itab_zycit263 INDEX v_tabix.

          MODIFY /pws/zycit263 FROM itab_zycit263 .

        ENDIF.

...

 

...

        v_tot_ntgew = itab_zycit263-ntgew + v_tot_ntgew.

        v_tot_qtd = itab_zycit263-qtd_iten + v_tot_qtd.

      ENDLOOP.

      IF NOT v_tot_ntgew IS INITIAL AND

         NOT v_tot_qtd IS INITIAL.

        itab_zycit003-ntgew = v_tot_ntgew / v_tot_qtd *

                itab_zycit003-toinv.

        MODIFY itab_zycit003 INDEX v_tabix TRANSPORTING ntgew.

      ELSE.

        IF NOT itab_zycit003[] IS INITIAL.

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

          READ TABLE itab_zycit003 INDEX 1.

* << Fim da inclusão

          SELECT nrseq ebeln ebelp ntgew qtd_iten

            FROM /pws/zycit003 INTO TABLE itab_peso

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

            FOR ALL ENTRIES IN itab_zycit003

            WHERE nrseq = itab_zycit003-nrseq AND

                  ebeln = itab_zycit003-ebeln AND

                  ebelp = itab_zycit003-ebelp.

* << Fim da exclusão

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

            WHERE nrseq = itab_zycit003-nrseq.

* << Fim da inclusão

        ENDIF.

        LOOP AT itab_zycit003.

          READ TABLE itab_peso WITH KEY

                  nrseq = itab_zycit003-nrseq

                  ebeln = itab_zycit003-ebeln

                  ebelp = itab_zycit003-ebelp.

          READ TABLE itab_zycit263 WITH KEY

                  nrseq = itab_zycit003-nrseq

                  ebeln = itab_zycit003-ebeln

                  ebelp = itab_zycit003-ebelp

...

 

...

        v_tot_ntgew = itab_zycit263-ntgew + v_tot_ntgew.

        v_tot_qtd = itab_zycit263-qtd_iten + v_tot_qtd.

      ENDLOOP.

      IF NOT v_tot_ntgew IS INITIAL AND

         NOT v_tot_qtd IS INITIAL.

        itab_zycit003-ntgew = v_tot_ntgew / v_tot_qtd *

                itab_zycit003-toinv.

        MODIFY itab_zycit003 INDEX v_tabix TRANSPORTING ntgew.

      ELSE.

        IF NOT itab_zycit003[] IS INITIAL.

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

          READ TABLE itab_zycit003 INDEX 1.

* << Fim da inclusão

          SELECT nrseq ebeln ebelp ntgew qtd_iten

            FROM /pws/zycit003 INTO TABLE itab_peso

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

            FOR ALL ENTRIES IN itab_zycit003

            WHERE nrseq = itab_zycit003-nrseq AND

                  ebeln = itab_zycit003-ebeln AND

                  ebelp = itab_zycit003-ebelp.

* << Fim da exclusão

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

            WHERE nrseq = itab_zycit003-nrseq.

* << Fim da inclusão

        ENDIF.

        LOOP AT itab_zycit003.

          READ TABLE itab_peso WITH KEY

                  nrseq = itab_zycit003-nrseq

                  ebeln = itab_zycit003-ebeln

                  ebelp = itab_zycit003-ebelp.

          itab_zycit003-ntgew = itab_peso-ntgew /

               itab_peso-qtd_iten * itab_zycit003-toinv.

          MODIFY itab_zycit003.

        ENDLOOP.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003I01

 

...

    IF sy-subrc NE 0.

      MESSAGE e015 WITH text-068.

    ENDIF.

  ENDIF.

  IF /pws/zycie006-flagdesc = 'X'.

    CLEAR /pws/zycie006-bcofav.

  ENDIF.

ENDMODULE.

MODULE consiste_cobertura_cambial INPUT.

  IF NOT itab_zycit003[] IS INITIAL.

* >> Início da exclusão: MODULE CONSISTE_COBERTURA_CAMBIAL

    SELECT * FROM /pws/zycit001 INTO TABLE itab_zycit001_at

    FOR ALL ENTRIES IN itab_zycit003

    WHERE nrseq       = itab_zycit003-nrseq.

* << Fim da exclusão

* >> Início da inclusão: MODULE CONSISTE_COBERTURA_CAMBIAL

    READ TABLE itab_zycit003 INDEX 1.

    SELECT SINGLE * FROM /pws/zycit001

      INTO itab_zycit001_at

        WHERE nrseq = itab_zycit003-nrseq.

    IF sy-subrc EQ 0.

      APPEND itab_zycit001_at.

    ENDIF.

* << Fim da inclusão

    IF NOT itab_zycit001_at[] IS INITIAL.

      SELECT * FROM /pws/zycit024 INTO TABLE itab_zycit024

      FOR ALL ENTRIES IN itab_zycit001_at

        WHERE regime = itab_zycit001_at-regime

          AND tpdecl = itab_zycit001_at-tpdecl.

    ENDIF.

    READ TABLE itab_zycit024 INDEX 1.

    MOVE itab_zycit024-cobcambial TO v_cobcambial.

    LOOP AT itab_zycit024 WHERE cobcambial NE v_cobcambial.

    ENDLOOP.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003O01

 

...

        itab_pf_status-fcode = 'FRETECLP'.

        APPEND itab_pf_status.

      ENDIF.

    ENDIF.

    SET PF-STATUS '0100' EXCLUDING itab_pf_status.

  ENDIF.

  SET TITLEBAR '0100'.

ENDMODULE.

MODULE load_data OUTPUT.

  DATA v_peso.

* >> Início da inclusão: MODULE LOAD_DATA

  DATA: BEGIN OF itab_lfa1b OCCURS 0.

  DATA: lifnr TYPE lfa1-lifnr.

  DATA: END OF itab_lfa1b.

* << Fim da inclusão

  SET PARAMETER ID 'LRE' FIELD ' ' .

  IF itab_sele[] IS INITIAL.

    IMPORT itab_sele[]

      FROM MEMORY ID 'IP003B'.

    IF sy-subrc = 0.

      v_importou = 'X'.

    ENDIF.

  ENDIF.

  IMPORT /pws/zycie001-embarca

         /pws/zycie001-nrseq

...

 

...

    READ TABLE itab_zycit003 INDEX 1.

    IF sy-subrc EQ 0.

      SELECT SINGLE * FROM /pws/zycit001 INTO /pws/zycie001

             WHERE nrseq EQ itab_zycit003-nrseq.

    ENDIF.

  ELSEIF sy-subrc EQ 0.

    IF NOT itab_sele[] IS INITIAL AND

       itab_zycit003[] IS INITIAL.

      SELECT * FROM /pws/zycit003

        INTO TABLE itab_zycit003

* >> Início da exclusão: MODULE LOAD_DATA

        FOR ALL ENTRIES IN itab_sele

        WHERE ebeln = itab_sele-ebeln

          AND ebelp = itab_sele-ebelp

          AND nrseq = /pws/zycie001-nrseq.

* << Fim da exclusão

* >> Início da inclusão: MODULE LOAD_DATA

        WHERE nrseq = /pws/zycie001-nrseq.

      LOOP AT itab_zycit003.

        READ TABLE itab_sele WITH KEY ebeln = itab_sele-ebeln

                                      ebelp = itab_sele-ebelp.

        IF sy-subrc NE 0.

          DELETE itab_zycit003.

        ENDIF.

      ENDLOOP.

* << Fim da inclusão

    ENDIF.

    CLEAR okcode.

    MOVE: /pws/zycie001-bukrs   TO /pws/zycie006-bukrs  ,

          /pws/zycie001-inco1   TO /pws/zycie006-inco1,

          /pws/zycie001-waers   TO /pws/zycie006-waers_emb.

    IF  ( NOT /pws/zycie006-tpfatura EQ '02' OR

          NOT /pws/zycie006-tpfatura EQ '03' OR

          NOT /pws/zycie006-tpfatura EQ '04' )

          AND /pws/zycie006-lifnr IS INITIAL

          .

...

 

...

        AND belnr_p NE space.

    IF sy-subrc = 0.

      IF v_existe_bol IS INITIAL.

        MESSAGE i015 WITH text-110.

      ENDIF.

      v_existe_bol = 'X'.

    ELSE.

      CLEAR v_existe_bol.

    ENDIF.

  ENDIF.

* >> Início da inclusão: MODULE LOAD_DATA

  IF /pws/zycit001-nrseq NE /pws/zycie001-nrseq.

* << Fim da inclusão

  SELECT SINGLE * FROM /pws/zycit001

   WHERE nrseq  = /pws/zycie001-nrseq.

* >> Início da inclusão: MODULE LOAD_DATA

  ENDIF.

* << Fim da inclusão

  IF v_prof = 'X' AND /pws/zycie006-dtincl IS INITIAL.

    /pws/zycie006-dtincl =  /pws/zycit001-dt_recorigem.

  ENDIF.

  SELECT SINGLE * FROM /pws/zycit024

   WHERE regime = /pws/zycit001-regime.

...

 

...

           FOR ALL ENTRIES IN itab_zycit003

           WHERE ebeln = itab_zycit003-ebeln

             AND ebelp = itab_zycit003-ebelp.

    IF NOT itab_matuse[] IS INITIAL.

      SELECT matnr mfrpn FROM mara

        INTO TABLE itab_mara

        FOR ALL ENTRIES IN itab_matuse

         WHERE matnr EQ itab_matuse-matnr.

    ENDIF.

    REFRESH itab_zycit263.

* >> Início da inclusão: MODULE LOAD_DATA

    READ TABLE itab_zycit003 INDEX 1.

* << Fim da inclusão

    SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

* >> Início da exclusão: MODULE LOAD_DATA

             FOR ALL ENTRIES IN itab_zycit003 WHERE

             nrseq     = itab_zycit003-nrseq AND

             ebeln     = itab_zycit003-ebeln AND

             ebelp     = itab_zycit003-ebelp .

* << Fim da exclusão

* >> Início da inclusão: MODULE LOAD_DATA

         WHERE nrseq     = itab_zycit003-nrseq .

* << Fim da inclusão

    IF NOT itab_zycit263[] IS INITIAL.

* >> Início da inclusão: MODULE LOAD_DATA

      REFRESH itab_fat_temp.

      LOOP AT itab_zycit263.

        itab_fat_temp-nrseq_pgfat = itab_zycit263-nrseq_pgfat.

        COLLECT itab_fat_temp.

      ENDLOOP.

* << Fim da inclusão

      SELECT * FROM /pws/zycit006

        INTO TABLE itab_zycit006

* >> Início da exclusão: MODULE LOAD_DATA

        FOR ALL ENTRIES IN itab_zycit263

        WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

* << Fim da exclusão

* >> Início da inclusão: MODULE LOAD_DATA

        FOR ALL ENTRIES IN itab_fat_temp

        WHERE nrseq_pgfat EQ itab_fat_temp-nrseq_pgfat.

* << Fim da inclusão

      LOOP AT itab_zycit263.

        v_tabix = sy-tabix.

        READ TABLE itab_zycit006 WITH KEY

             nrseq_pgfat = itab_zycit263-nrseq_pgfat

             eliminado   = space.

        IF sy-subrc NE 0.

          itab_zycit263-eliminado = 'X'.

          MODIFY itab_zycit263 INDEX v_tabix.

* >> Início da exclusão: MODULE LOAD_DATA

          MODIFY /pws/zycit263 FROM itab_zycit263 .

* << Fim da exclusão

        ENDIF.

      ENDLOOP.

* >> Início da inclusão: MODULE LOAD_DATA

      MODIFY /pws/zycit263 FROM TABLE itab_zycit263 .

* << Fim da inclusão

      LOOP AT itab_zycit006.

        v_tabix = sy-tabix.

        READ TABLE itab_zycit263 WITH KEY

             nrseq_pgfat = itab_zycit006-nrseq_pgfat

             eliminado   = space.

        IF sy-subrc NE 0.

          itab_zycit006-eliminado = 'X'.

          MODIFY itab_zycit006 INDEX v_tabix.

* >> Início da exclusão: MODULE LOAD_DATA

          MODIFY /pws/zycit006 FROM itab_zycit006 .

* << Fim da exclusão

        ENDIF.

      ENDLOOP.

* >> Início da inclusão: MODULE LOAD_DATA

      MODIFY /pws/zycit006 FROM TABLE itab_zycit006 .

* << Fim da inclusão

      DELETE itab_zycit006 WHERE eliminado = 'X'.

      DELETE itab_zycit263 WHERE eliminado = 'X'.

    ENDIF.

    LOOP AT itab_zycit003.

      READ TABLE itab_matuse WITH KEY ebeln = itab_zycit003-ebeln

...

 

...

    v_moeda = itab_zycit003-waers.

  ENDIF.

  LOOP AT itab_zycit003 WHERE waers NE v_moeda.

    v_waers_diferente = 'X'.

  ENDLOOP.

  IF sy-subrc NE 0.

    v_waers_diferente = space.

  ENDIF.

  IF v_existe_di NE 'S'.

    IF NOT itab_zycit003[] IS INITIAL.

* >> Início da inclusão: MODULE LOAD_DATA

      READ TABLE itab_zycit003 INDEX 1.

* << Fim da inclusão

      SELECT * FROM /pws/zycit100 INTO TABLE itab_zycit100

* >> Início da exclusão: MODULE LOAD_DATA

      FOR ALL ENTRIES IN itab_zycit003

      WHERE nrseq = itab_zycit003-nrseq

      AND   ebeln = itab_zycit003-ebeln

      AND   ebelp = itab_zycit003-ebelp.

* << Fim da exclusão

* >> Início da inclusão: MODULE LOAD_DATA

          WHERE nrseq = itab_zycit003-nrseq.

* << Fim da inclusão

      IF sy-subrc EQ 0.

        READ TABLE itab_zycit100 INDEX 1.

        SELECT SINGLE * FROM /pws/zycit085

          WHERE nrseqdi = itab_zycit100-nrseqdi.

        IF sy-subrc EQ 0.

          v_existe_di = 'S'.

        ENDIF.

      ENDIF.

    ELSEIF NOT /pws/zycie006-nrseqce IS INITIAL.

      SELECT SINGLE * FROM /pws/zycit085

...

 

...

  ENDIF.

  IF itab_mfrnr[] IS INITIAL.

    LOOP AT itab_zycit003.

      MOVE : itab_zycit003-ebeln      TO itab_mfrnr-ebeln,

             itab_zycit003-ebelp      TO itab_mfrnr-ebelp,

             itab_zycit003-lifnrfabr TO itab_mfrnr-mfrnr.

      APPEND itab_mfrnr.

    ENDLOOP.

  ENDIF.

  IF NOT itab_zycit003[] IS INITIAL.

* >> Início da inclusão: MODULE LOAD_DATA

    REFRESH itab_lfa1b.

    LOOP AT itab_zycit003.

      itab_lfa1b-lifnr = itab_zycit003-lifnrfabr.

      COLLECT itab_lfa1b.

    ENDLOOP.

* << Fim da inclusão

    SELECT lifnr land1 name1 FROM lfa1

    INTO TABLE itab_lfa1

* >> Início da exclusão: MODULE LOAD_DATA

    FOR ALL ENTRIES IN itab_zycit003

    WHERE lifnr EQ itab_zycit003-lifnrfabr.

* << Fim da exclusão

* >> Início da inclusão: MODULE LOAD_DATA

    FOR ALL ENTRIES IN itab_lfa1b

    WHERE lifnr EQ itab_lfa1b-lifnr.

* << Fim da inclusão

  ENDIF.

ENDMODULE.

MODULE carrega_zycie006 OUTPUT.

  MOVE: itab_zycit006-nrseq    TO /pws/zycie006-nrseq,

        itab_zycit006-nrfat    TO /pws/zycie006-nrfat,

        itab_zycit006-belnr_p  TO /pws/zycie006-belnr_p,

        itab_zycit006-tpfatura TO /pws/zycie006-tpfatura,

        itab_zycit006-eliminado TO /pws/zycie006-eliminado,

        itab_zycit006-dtincl   TO /pws/zycie006-dtincl,

        itab_zycit006-waers    TO /pws/zycie006-waers,

...

 

...

    MOVE:

          /pws/zycie001-bukrs   TO /pws/zycie006-bukrs  ,

          /pws/zycie001-j_1bbranch TO /pws/zycie006-j_1bbranch,

          /pws/zycie001-inco1 TO /pws/zycie006-inco1,

          /pws/zycie001-waers   TO /pws/zycie006-waers_emb.

  ENDIF.

  IF NOT /pws/zycie001-nrseq IS INITIAL.

    SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003

       WHERE nrseq EQ /pws/zycie001-nrseq.

    IF NOT itab_zycit003[] IS INITIAL.

* >> Início da inclusão: MODULE LOAD_DATA_001

      READ TABLE itab_zycit003 INDEX 1.

* << Fim da inclusão

      SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

* >> Início da exclusão: MODULE LOAD_DATA_001

      FOR ALL ENTRIES IN itab_zycit003

      WHERE nrseq EQ itab_zycit003-nrseq

      AND   ebeln EQ itab_zycit003-ebeln

      AND   ebelp EQ itab_zycit003-ebelp.

* << Fim da exclusão

* >> Início da inclusão: MODULE LOAD_DATA_001

        WHERE nrseq EQ itab_zycit003-nrseq.

* << Fim da inclusão

      IF NOT itab_zycit263[] IS INITIAL.

* >> Início da inclusão: MODULE LOAD_DATA_001

        REFRESH itab_fat_temp.

        LOOP AT itab_zycit263.

          itab_fat_temp-nrseq_pgfat = itab_zycit263-nrseq_pgfat.

          COLLECT itab_fat_temp .

        ENDLOOP.

* << Fim da inclusão

        SELECT * FROM /pws/zycit006 INTO TABLE itab_zycit006

* >> Início da exclusão: MODULE LOAD_DATA_001

         FOR ALL ENTRIES IN itab_zycit263

         WHERE nrseq_pgfat = itab_zycit263-nrseq_pgfat.

* << Fim da exclusão

* >> Início da inclusão: MODULE LOAD_DATA_001

         FOR ALL ENTRIES IN itab_fat_temp

         WHERE nrseq_pgfat = itab_fat_temp-nrseq_pgfat.

* << Fim da inclusão

      ENDIF.

    ENDIF.

    SELECT SINGLE * FROM /pws/zycit094 INTO /pws/zycie094

      WHERE nrseq = /pws/zycie001-nrseq.

    IF sy-subrc EQ 0.

      SELECT * FROM /pws/zycit006 APPENDING TABLE  itab_zycit006

        WHERE nrseqce = /pws/zycie094-nrseqce AND

              ( tpfatura = '02' OR

                tpfatura = '03' OR

                tpfatura = '04' ).

...

 

...

    SELECT SINGLE * FROM /pws/zycit001 INTO /pws/zycie001 WHERE nrseq =

             /pws/zycie001-nrseq.

  ENDIF.

  IF /pws/zycie001-modalidade EQ '02'.

    REFRESH itab_zycit263.

    SELECT *

      FROM /pws/zycit263

      INTO TABLE itab_zycit263

      WHERE nrseq = /pws/zycie001-nrseq.

    IF NOT itab_zycit263[] IS INITIAL.

* >> Início da inclusão: MODULE LOAD_DATA_001

      REFRESH itab_fat_temp.

      LOOP AT itab_zycit263.

        itab_fat_temp-nrseq_pgfat = itab_zycit263-nrseq_pgfat.

        COLLECT itab_fat_temp .

      ENDLOOP.

* << Fim da inclusão

      SELECT * FROM /pws/zycit006

        INTO TABLE itab_zycit006

* >> Início da exclusão: MODULE LOAD_DATA_001

        FOR ALL ENTRIES IN itab_zycit263

        WHERE nrseq_pgfat = itab_zycit263-nrseq_pgfat.

* << Fim da exclusão

* >> Início da inclusão: MODULE LOAD_DATA_001

        FOR ALL ENTRIES IN itab_fat_temp

        WHERE nrseq_pgfat = itab_fat_temp-nrseq_pgfat.

* << Fim da inclusão

    ENDIF.

    SELECT * FROM /pws/zycit006 APPENDING TABLE  itab_zycit006

      WHERE nrseqf   = /pws/zycie001-nrseq AND

            tpfatura = '04'.

  ENDIF.

  PERFORM verifica_exit USING 'D'

                       '/PWS/SAPMZYCI003'

                       'FAT006'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY zexit = 'FAT006'.

...

 

...

          ENDIF.

          IF screen-name EQ 'BOT1'.

            screen-input = 1.

          ENDIF.

          MODIFY SCREEN.

        ENDIF.

        IF ( screen-name EQ '/PWS/ZYCIE006-VLMERC' OR

             screen-name EQ '/PWS/ZYCIE003-VLREAL' OR

             screen-name EQ '/PWS/ZYCIE036-VLDIF' ) AND

             /pws/zycie006-tpfatura EQ '01'.

* >> Início da exclusão: MODULE SET_SCREEN

          SELECT  *

* << Fim da exclusão

* >> Início da inclusão: MODULE SET_SCREEN

          READ TABLE itab_zycit003 INTO /pws/zycit003 INDEX 1.

          SELECT SINGLE *

* << Fim da inclusão

            FROM /pws/zycit042

* >> Início da exclusão: MODULE SET_SCREEN

            FOR ALL ENTRIES IN itab_zycit003

            WHERE nrseq  EQ itab_zycit003-nrseq

              AND ebeln  EQ itab_zycit003-ebeln

              AND ebelp  EQ itab_zycit003-ebelp

* << Fim da exclusão

* >> Início da inclusão: MODULE SET_SCREEN

            WHERE nrseq  EQ /pws/zycit003-nrseq

* << Fim da inclusão

              AND docnum NE ''.

* >> Início da exclusão: MODULE SET_SCREEN

          ENDSELECT.

* << Fim da exclusão

          IF sy-subrc EQ 0.

            screen-input = 0.

            MODIFY SCREEN.

          ENDIF.

        ENDIF.

      ENDLOOP.

...

 

...

      LOOP AT SCREEN.

        IF v_status_s = 0 OR sy-tcode = '/PWS/ZYCI003_M'.

          screen-input = '0'.

          MODIFY SCREEN.

        ELSEIF v_status_s = 1 AND screen-group1 NE 'OUT'.

          screen-input = '1' .

          MODIFY SCREEN.

        ENDIF.

        IF ( screen-name = '/PWS/ZYCIE006-RATVAL' OR

        screen-name = 'V_RATVAL' ) AND /pws/zycie006-tpfatura = '01'.

* >> Início da exclusão: MODULE SET_SCREEN

          SELECT  *

* << Fim da exclusão

* >> Início da inclusão: MODULE SET_SCREEN

          READ TABLE itab_zycit003 INTO /pws/zycit003 INDEX 1.

          IF NOT /pws/zycit003-nrseq IS INITIAL.

            SELECT SINGLE *

* << Fim da inclusão

            FROM /pws/zycit042

* >> Início da exclusão: MODULE SET_SCREEN

            FOR ALL ENTRIES IN itab_zycit003

            WHERE nrseq  EQ itab_zycit003-nrseq

              AND ebeln EQ itab_zycit003-ebeln

              AND ebelp  EQ itab_zycit003-ebelp

              AND docnum NE ''.

          ENDSELECT.

* << Fim da exclusão

* >> Início da inclusão: MODULE SET_SCREEN

              WHERE nrseq  EQ /pws/zycit003-nrseq

                AND docnum NE space.

          ENDIF.

* << Fim da inclusão

          IF sy-subrc EQ 0.

            screen-input = 0.

            MODIFY SCREEN.

          ENDIF.

        ENDIF.

      ENDLOOP.

      IF v_status_s = 0 OR sy-tcode = '/PWS/ZYCI003_M'.

        LOOP AT tc_itens-cols INTO wa_cols.

          wa_cols-screen-input = '0'.

          MODIFY tc_itens-cols FROM wa_cols.

...

 

...

    IF screen-name = '/PWS/ZYCIE003-PAISFAB' .

      IF sy-tcode NE '/PWS/ZYCIE003_E'.

        screen-input = 1.

      ELSE.

        screen-input = 0.

      ENDIF.

    ENDIF.

    IF ( screen-name = '/PWS/ZYCIE003-VLREAL' OR

       screen-name = '/PWS/ZYCIE036-VLDIF' ) AND

       /pws/zycie006-tpfatura EQ '01'.

* >> Início da exclusão: MODULE SET_SCREEN_TC_0106

      SELECT  *

        FROM /pws/zycit042

        FOR ALL ENTRIES IN itab_zycit003

        WHERE nrseq  EQ itab_zycit003-nrseq

          AND ebeln EQ itab_zycit003-ebeln

          AND ebelp  EQ itab_zycit003-ebelp

          AND docnum NE ''.

      ENDSELECT.

* << Fim da exclusão

* >> Início da inclusão: MODULE SET_SCREEN_TC_0106

      READ TABLE itab_zycit003 INTO /pws/zycit003 INDEX 1.

      SELECT SINGLE * FROM /pws/zycit042

        WHERE nrseq  EQ /pws/zycit003-nrseq.

* << Fim da inclusão

      IF sy-subrc EQ 0.

        screen-input = 0.

      ENDIF.

    ENDIF.

    MODIFY SCREEN.

  ENDLOOP.

ENDMODULE.

MODULE conta_itens OUTPUT.

  CLEAR v_nitens.

  LOOP AT itab_zycit003

...

 

...

    IF screen-name = '/PWS/ZYCIE003-NTGEW'.

      IF /pws/zycie006-rateio = 'S'.

        screen-input = 0.

      ELSEIF /pws/zycie006-rateio = 'N' AND v_status_s = '1'.

        screen-input = 1.

      ENDIF.

    ENDIF.

    IF ( screen-name = '/PWS/ZYCIE003-VLREAL' OR

       screen-name = '/PWS/ZYCIE036-VLDIF' ) AND

       /pws/zycie006-tpfatura EQ '01'.

* >> Início da exclusão: MODULE SET_SCREEN_0400

      SELECT  *

* << Fim da exclusão

* >> Início da inclusão: MODULE SET_SCREEN_0400

      READ TABLE itab_zycit003 INTO /pws/zycit003 INDEX 1.

      SELECT SINGLE *

* << Fim da inclusão

        FROM /pws/zycit042

* >> Início da exclusão: MODULE SET_SCREEN_0400

        FOR ALL ENTRIES IN itab_zycit003

        WHERE nrseq  EQ itab_zycit003-nrseq

          AND ebeln EQ itab_zycit003-ebeln

          AND ebelp  EQ itab_zycit003-ebelp

* << Fim da exclusão

* >> Início da inclusão: MODULE SET_SCREEN_0400

        WHERE nrseq  EQ /pws/zycit003-nrseq

* << Fim da inclusão

          AND docnum NE ''.

* >> Início da exclusão: MODULE SET_SCREEN_0400

      ENDSELECT.

* << Fim da exclusão

      IF sy-subrc EQ 0.

        screen-input = 0.

      ENDIF.

    ENDIF.

    MODIFY SCREEN.

  ENDLOOP.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003X01

 

...

DATA  BEGIN OF itab_zycit006_atual OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit006.

DATA  END   OF itab_zycit006_atual.

DATA: BEGIN OF itab_zycbt035_aux2 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbe035.

DATA  knttp  LIKE ekpo-knttp.

DATA: END OF itab_zycbt035_aux2.

DATA: BEGIN OF itab_contas OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbe035.

DATA: END OF itab_contas.

* >> Início da inclusão:

DATA: BEGIN OF itab_fat_temp OCCURS 0.

DATA: nrseq_pgfat TYPE /pws/zycit263-nrseq_pgfat.

DATA: END OF itab_fat_temp.

DATA: itab_tcurx TYPE tcurx OCCURS 0 WITH HEADER LINE .

* << Fim da inclusão

DATA: END OF COMMON PART.