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.
7.0
Produto:
Nota
Descrição
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.
...