CE PLUS - Nota 005364

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Embarque

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

Data/Hora Última Alteração: 22/02/2011 15:19:12

Descrição da Nota: EMBARQUE: VINCULAÇÃO RECOF

Sintoma

Melhorar performance ao vincular os produtos da tabela 25 no embarque de nacionalização de recof

(16).

 

 

 

Solução

Antes do SELECT verificar se a tabela interna itab_rc_aux está preenchida. Esta tabela interna é

preenchida com seleção na Tabela /PWS/ZYRCT025.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

TRATAMENTO PARA EMBARQUE DE RECOF COM UTILIZAÇÃO DE MATERIAL

Informações Complementares

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

Nota Número 05364 Data: 30/11/2007 Hora: 17:46:29

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

 

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

Nota Número              : 05364

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00023

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

Referência às notas relacionadas:

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

 

05136  - 00001 - 7.0    - 00003  - TRATAMENTO PARA EMBARQUE DE RECOF COM UTILIZAÇÃO DE MATERIAL

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

EMBARQUE: VINCULAÇÃO RECOF

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

Palavras Chave:

PERFORMANCE; /PWS/ZYRCT025; RECOF; REGIME 16

 

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

Objetos da nota:

REPS /PWS/MZYCI001F03

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F03

 

...

        LOOP AT itab_rc_aux.

          READ TABLE itab_zycit003_rec WITH KEY

           id_reg_ano_nac = itab_rc_aux-id_reg_ano_nac

           id_reg_num_nac = itab_rc_aux-id_reg_num_nac

           id_reg_itm_nac = itab_rc_aux-id_reg_itm_nac.

          IF sy-subrc = 0.

            DELETE itab_rc_aux.

          ENDIF.

        ENDLOOP.

      ENDIF.

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

      IF NOT itab_rc_aux[] IS INITIAL.

* << Fim da inclusão

  SELECT /pws/zycit085~nrseqdi /pws/zycit100~nrseq  /pws/zycit100~ebeln

            /pws/zycit100~ebelp /pws/zycit100~adicao /pws/zycit085~nrdi

        /pws/zycit085~bukrs /pws/zycit085~codreg /pws/zycit085~dtdesemb

                             /pws/zycit003~matnr /pws/zycit003~qtd_iten

                                            /pws/zycit100~item_adi_sisc

                                                FROM (  ( /pws/zycit085

                                            INNER JOIN /pws/zycit100 ON

                        /pws/zycit085~nrseqdi = /pws/zycit100~nrseqdi )

                                            INNER JOIN /pws/zycit003 ON

                              /pws/zycit003~nrseq = /pws/zycit100~nrseq

...

 

...

                itab_rc_aux-id_reg_itm_nac TO itab_da-id_reg_itm_nac.

          APPEND itab_da.

        ENDLOOP.

        SORT itab_da BY nrseqda adicao itseqda ebeln ebelp

              id_reg_ano_nac id_reg_num_nac id_reg_itm_nac.

        DELETE ADJACENT DUPLICATES FROM itab_da

                 COMPARING nrseqda adicao itseqda

                 id_reg_ano_nac id_reg_num_nac id_reg_itm_nac.

        IF NOT itab_da[] IS INITIAL.

          IF /pws/zycie001-regime EQ '16' .

            SELECT * FROM /pws/zycit003                 "#EC CI_NOFIRST

            INTO TABLE itab_zycit003_saldo

               FOR ALL ENTRIES IN itab_da

               WHERE ebeln EQ itab_da-ebeln

               AND   ebelp EQ itab_da-ebelp

               AND   nrseqda EQ itab_da-nrseqda.

          ENDIF.

          IF NOT itab_zycit003_saldo[] IS INITIAL.

            IF /pws/zycie001-regime EQ '16' .

              SELECT nrseq regime FROM /pws/zycit001

                 INTO TABLE itab_zycit001_saldo

...

 

...

                     num_da_di       = itab_da-nrdi

                     num_adicao      = itab_da-adicao

                     num_item_adicao = itab_da-itseqda.

          IF sy-subrc NE 0 OR itab_rc_aux-quantidade IS INITIAL.

            DELETE itab_da INDEX v_reg.

          ELSE.

            itab_da-qtd_nac = itab_rc_aux-quantidade.

            MODIFY itab_da FROM itab_da TRANSPORTING qtd_nac.

          ENDIF.

        ENDLOOP.

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

        ENDIF.

* << Fim da inclusão

      ENDIF.

    ELSE.

      SELECT /pws/zycit442~nrseqda  /pws/zycit442~nrdi

             /pws/zycit442~bukrs

             /pws/zycit442~codreg

             /pws/zycit442~dtdesemb

             /pws/zycit443~lifnr    AS agente

             /pws/zycit443~ebeln    /pws/zycit443~ebelp

             /pws/zycit443~matnr

             /pws/zycit443~qtd_da   AS qtd_lote

...

 

...

            IF itab_da-qtd_nac LE 0.

              DELETE itab_da.

            ENDIF.

          ENDLOOP.

        ENDIF.

      ENDIF.

      DESCRIBE TABLE itab_da LINES v_line.

      v_caller = 'SELECIONAR_RC'.

      CALL SCREEN '0003'.

    ELSE.

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

      MESSAGE s015 WITH text-259.

* << Fim da exclusão

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

      MESSAGE s015 WITH text-259 text-264.

* << Fim da inclusão

    ENDIF.

  ENDIF.

ENDFORM.

FORM criar_tipo USING    p_tabname

                CHANGING p_tipo.

  DATA:

    t_fieldcat TYPE lvc_t_fcat.

  CLEAR:

    t_fieldcat,

    p_tipo.

...