Módulo: DRAWBACK
Funcionalidade: Composição
Data/Hora da Publicação: 08/12/2006 00:00:00
Data/Hora Última Alteração: 17/02/2011 14:40:08
Descrição da Nota: COMPOSIÇÃO TRAS ITENS DE EXPORTAÇÃO DUPLICADOS
Sintoma
O programa de composição esta trazendo itens de exportaçãorepetidos.
Solução
Completar a chave para que os itens não sejam duplicados na seleção.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02656 Data: 08/12/2006 Hora: 16:23:54
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02656
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00025
Agrupamento : 00142
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02251 - 00001 - 6.0 - 00025 - COMPOSIÇÃO ISENÇÃO(EXPORTAÇÃO, TRADING COMPANY, COMERCIAL EXPORTA
02498 - 00002 - 6.0 - 00025 - AJUSTADA COMPOSIÇÃO PARA TRATAR AJUSTE REALIZADOS NOS INSUMOS ALT
----------------------------------------------------------------------------------------------------
COMPOSIÇÃO TRAS ITENS DE EXPORTAÇÃO DUPLICADOS
----------------------------------------------------------------------------------------------------
Palavras Chave:
ITENS - EXPORTAÇÃO - COMPOSIÇÃO - DUPLICADO
/PWS/SAPMZYCI064
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI064F03
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064F03
...
ELSE.
SELECT a~nrseqre a~nrre a~dtincl a~agrupado a~codenq1
b~matnr b~vbeln_va c~vbeln_vf c~posnr b~vbeln_vl b~posnl
b~gewei b~ntgew b~brgew b~waers
b~vfob b~vlagente b~netpr b~seqagrupado b~codnrseq
d~nrseqexp c~werks c~steuc c~vkorg_auft c~vtweg_auft
INTO TABLE itab_re_final
FROM ( /pws/zycet116 AS a INNER JOIN /pws/zycet118 AS b
ON a~nrseqre EQ b~nrseqre
INNER JOIN /pws/zycet002 AS c
* >> Início da exclusão: FORM SELECIONAR_EXPORTACOES3
ON b~vbeln_va EQ c~vbeln_va AND b~vbeln_vf EQ c~vbeln_vf )
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_EXPORTACOES3
ON b~vbeln_va EQ c~vbeln_va
AND b~vbeln_vf EQ c~vbeln_vf
AND b~posnr EQ c~posnr
AND b~posnl EQ c~posnl )
* << Fim da inclusão
LEFT OUTER JOIN /pws/zycit282 AS d
ON c~nrseq EQ d~nrseqexp
AND c~vbeln_va EQ d~vbeln_va
AND c~vbeln_vl EQ d~vbeln_vl
AND c~posnl EQ d~posnl
WHERE a~dtincl >= p_dtexp1 AND
a~dtincl <= p_dtexp2 AND
b~nrato EQ space AND
c~bukrs EQ /pws/zycie258-bukrs AND
b~matnr IN p_matnr.
...
...
ENDIF.
ENDIF.
IF NOT itab_re_final[] IS INITIAL.
IF /pws/zycit321-ltopc NE '1'.
SELECT * FROM /pws/zycit281 INTO TABLE itab_zycit281
FOR ALL ENTRIES IN itab_re_final
WHERE matnr EQ itab_re_final-matnr.
LOOP AT itab_zycit281.
READ TABLE itab_zycit434 WITH KEY
werks = itab_zycit281-werks.
* >> Início da exclusão: FORM SELECIONAR_EXPORTACOES3
IF sy-subrc NE 0.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_EXPORTACOES3
IF sy-subrc NE 0 AND
/pws/zycie258-werks NE itab_zycit281-werks.
* << Fim da inclusão
DELETE itab_zycit281 WHERE werks EQ itab_zycit281-werks.
ENDIF.
ENDLOOP.
ELSE.
CLEAR: itab_mvke, itab_zycit423.
REFRESH: itab_mvke, itab_zycit423.
SELECT * FROM mvke INTO TABLE itab_mvke
FOR ALL ENTRIES IN itab_re_final
WHERE matnr EQ itab_re_final-matnr
AND vkorg EQ itab_re_final-vkorg
AND vtweg EQ itab_re_final-vtweg.
SELECT * FROM /pws/zycit423 INTO TABLE itab_zycit423.
SELECT * FROM /pws/zycit421 INTO TABLE itab_zycit421.
LOOP AT itab_zycit421.
READ TABLE itab_zycit434 WITH KEY
werks = itab_zycit421-werks.
* >> Início da exclusão: FORM SELECIONAR_EXPORTACOES3
IF sy-subrc NE 0.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_EXPORTACOES3
IF sy-subrc NE 0 AND
/pws/zycie258-werks NE itab_zycit281-werks.
* << Fim da inclusão
DELETE itab_zycit421 WHERE werks EQ itab_zycit421-werks.
ENDIF.
ENDLOOP.
ENDIF.
SELECT * FROM /pws/zycet003 INTO TABLE itab_zycet003
FOR ALL ENTRIES IN itab_re_final
WHERE nrseqre EQ itab_re_final-nrseqre.
IF NOT itab_zycet003[] IS INITIAL.
SELECT * FROM /pws/zycet001 INTO TABLE itab_zycet001
FOR ALL ENTRIES IN itab_zycet003
...
...
SELECT c~nrseqdi b~nrseq b~ebeln b~ebelp
FROM ( ( /pws/zycit003 AS a INNER JOIN /pws/zycit100 AS b
ON a~nrseq EQ b~nrseq
AND a~ebeln EQ b~ebeln
AND a~ebelp EQ b~ebelp )
INNER JOIN /pws/zycit085 AS c
ON b~nrseqdi EQ c~nrseqdi )
INTO TABLE itab_sel_di
FOR ALL ENTRIES IN itab_insumo_di
WHERE a~matnr EQ itab_insumo_di-matnr
* >> Início da exclusão: FORM SELECIONA_DI3
AND c~dtuserc >= itab_det_exp-dtre.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI3
AND c~dtuserc >= itab_det_exp-dtre
AND c~nrdi NE space.
* << Fim da inclusão
ENDIF.
IF NOT itab_insumo_di[] IS INITIAL.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003
FOR ALL ENTRIES IN itab_insumo_di
WHERE
matnr EQ itab_insumo_di-matnr.
ENDIF.
IF NOT itab_zycit003[] IS INITIAL.
itab_zycit003_t2[] = itab_zycit003[].
DELETE itab_zycit003_t2 WHERE nrseqd EQ space.
...
...
IF /pws/zycit321-it_ge EQ 'X'.
CLEAR: itab_res_imp-codcomp .
itab_res_imp-grupo = itab_det_imp_final-grupo.
itab_res_imp-desc_g = itab_det_imp_final-desc_g.
ENDIF.
IF v_moeda EQ 'X'.
itab_res_imp-vlfob = itab_res_imp-qtd_vinc *
itab_det_imp_final-valor_u.
itab_res_imp-waers = 'USD'.
ELSE.
* >> Início da exclusão: FORM CARREGA_RESUMO_IMPORTACAO3
itab_res_imp-vlfob = itab_det_imp_final-netpr.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
itab_res_imp-vlfob = itab_res_imp-qtd_vinc *
itab_det_imp_final-netpr.
* << Fim da inclusão
itab_res_imp-waers = itab_det_imp_final-waers.
itab_res_imp-meins = itab_det_imp_final-meins.
ENDIF.
COLLECT itab_res_imp.
ENDLOOP.
SORT itab_det_imp_final BY dtdi ASCENDING.
SORT itab_res_imp BY codcomp.
CLEAR: v_dtini, v_dtfim, v_idxtmp.
LOOP AT itab_res_imp.
v_idxtmp = sy-tabix.
...