Módulo: DRAWBACK
Funcionalidade: Composição
Data/Hora da Publicação: 27/04/2007 00:00:00
Data/Hora Última Alteração: 17/02/2011 15:39:29
Descrição da Nota: UTIILIZA DATA DE REGISTRO DA DI PARA BUSCA E AJUSTE NA EXCLUSÃO DE ITENS
Sintoma
O programa de composição não está utilizando a data de registro ao selecionar as DI¿s .
Não está excluindo os itens de importação corretamente na composição quando está utilizando itens
genéricos.
Solução
Ajustar o programa para utilizar a data de registro na seleção e montagem dos dados.
Ajustar exclusão dos itens para tratar itens genéricos.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03572 Data: 27/04/2007 Hora: 14:12:52
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03572
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00001
Agrupamento : 00163
----------------------------------------------------------------------------------------------------
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
----------------------------------------------------------------------------------------------------
UTIILIZA DATA DE REGISTRO DA DI PARA BUSCA E AJUSTE NA EXCLUSÃO DE ITENS
----------------------------------------------------------------------------------------------------
Palavras Chave:
DATA - REGISTRO - SELEÇÃO - DI - EXCLUSÃO - ITENS - COMPOSIÇÃO
/PWS/SAPMZYCI064
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI064F03
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064F03
...
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~dtreg >= itab_det_exp-dtre
* << Fim da inclusão
AND c~nrdi NE space.
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[].
...
...
SELECT * FROM /pws/zycit041 INTO TABLE itab_zycit041
FOR ALL ENTRIES IN itab_zycit042
WHERE nrseq EQ itab_zycit042-nrseqnf
AND nfglobal EQ itab_zycit042-nfglobal
AND cancel EQ space.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM SELECIONA_DI3
SORT itab_zycit085 BY dtuserc nrseqdi.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI3
SORT itab_zycit085 BY dtreg nrseqdi.
* << Fim da inclusão
SORT itab_zycit100 BY nrseqdi ebeln ebelp.
REFRESH: itab_ekpo_sort, itab_zycit100_sort.
LOOP AT itab_zycit085.
LOOP AT itab_zycit100 WHERE nrseqdi EQ itab_zycit085-nrseqdi.
READ TABLE itab_ekpo WITH KEY ebeln = itab_zycit100-ebeln
ebelp = itab_zycit100-ebelp.
READ TABLE itab_ekpo_sort WITH KEY ebeln = itab_ekpo-ebeln
ebelp = itab_ekpo-ebelp.
IF sy-subrc NE 0.
itab_ekpo_sort = itab_ekpo.
...
...
AND vbeln_va = itab_det_exp_final-vbeln_va
AND vbeln_vf = itab_det_exp_final-vbeln_vf
AND posnr = itab_det_exp_final-posnr.
LOOP AT itab_di_final WHERE
nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
* >> Início da exclusão: FORM TRATA_BUTTON_EXCLM3
AND codcomp = itab_comp_vinc_final-codcomp.
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_BUTTON_EXCLM3
AND
( codcomp = itab_comp_vinc_final-codcomp
OR grupo EQ itab_comp_vinc_final-grupo ).
* << Fim da inclusão
v_tabix2 = sy-tabix.
LOOP AT itab_di_final_aux WHERE
codcomp EQ itab_di_final-codcomp AND
nrdi EQ itab_di_final-nrdi AND
ebeln EQ itab_di_final-ebeln AND
ebelp EQ itab_di_final-ebelp AND
* >> Início da inclusão: FORM TRATA_BUTTON_EXCLM3
docnum EQ itab_di_final-docnum AND
itmnum EQ itab_di_final-itmnum AND
* << Fim da inclusão
nrseqemb EQ itab_di_final-nrseqemb.
IF
( itab_di_final_aux-nrseqre NE itab_det_exp_final-nrseqre OR
itab_di_final_aux-vbeln_va NE itab_det_exp_final-vbeln_va OR
itab_di_final_aux-vbeln_vf NE itab_det_exp_final-vbeln_vf OR
itab_di_final_aux-posnr NE itab_det_exp_final-posnr OR
itab_di_final_aux-nrseq NE itab_det_exp_final-nrseq OR
itab_di_final_aux-codmat NE itab_det_exp_final-codmat ).
itab_di_final_aux-sdo_qtd =
itab_di_final_aux-sdo_qtd + itab_di_final-qtd_vinc.
...
...
AND vbeln_va = itab_det_exp-vbeln_va
AND vbeln_vf = itab_det_exp-vbeln_vf
AND posnr = itab_det_exp-posnr.
LOOP AT itab_di_final WHERE
nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
* >> Início da exclusão: FORM TRATA_BUTTON_EXCLM3
AND codcomp = itab_comp_vinc_final-codcomp.
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_BUTTON_EXCLM3
AND
( codcomp = itab_comp_vinc_final-codcomp
OR grupo EQ itab_comp_vinc_final-grupo ).
* << Fim da inclusão
v_tabix2 = sy-tabix.
LOOP AT itab_di_final_aux WHERE
codcomp EQ itab_di_final-codcomp AND
nrdi EQ itab_di_final-nrdi AND
ebeln EQ itab_di_final-ebeln AND
ebelp EQ itab_di_final-ebelp AND
* >> Início da inclusão: FORM TRATA_BUTTON_EXCLM3
docnum EQ itab_di_final-docnum AND
itmnum EQ itab_di_final-itmnum AND
* << Fim da inclusão
nrseqemb EQ itab_di_final-nrseqemb.
IF ( itab_di_final_aux-nrseqre NE itab_det_exp-nrseqre OR
itab_di_final_aux-vbeln_va NE itab_det_exp-vbeln_va OR
itab_di_final_aux-vbeln_vf NE itab_det_exp-vbeln_vf OR
itab_di_final_aux-posnr NE itab_det_exp-posnr OR
itab_di_final_aux-nrseq NE itab_det_exp-nrseq OR
itab_di_final_aux-codmat NE itab_det_exp-codmat ).
itab_di_final_aux-sdo_qtd =
itab_di_final_aux-sdo_qtd + itab_di_final-qtd_vinc.
MODIFY itab_di_final_aux INDEX sy-tabix.
...
...
IF pressed_tab_3c_2 EQ 'FS_VINC3'.
itab_di_final_aux[] = itab_di_final[].
LOOP AT itab_comp_vinc WHERE marc_cp EQ 'X'.
LOOP AT itab_di_final WHERE
nrseqre = itab_comp_vinc-nrseqre
AND nrseq = itab_comp_vinc-nrseq
AND codmat = itab_comp_vinc-codmat
AND vbeln_va = itab_comp_vinc-vbeln_va
AND vbeln_vf = itab_comp_vinc-vbeln_vf
AND posnr = itab_comp_vinc-posnr
* >> Início da exclusão: FORM TRATA_BUTTON_EXCLM3
AND codcomp = itab_comp_vinc-codcomp.
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_BUTTON_EXCLM3
AND ( codcomp = itab_comp_vinc-codcomp
OR grupo EQ itab_comp_vinc-grupo ).
* << Fim da inclusão
v_tabix2 = sy-tabix.
LOOP AT itab_di_final_aux WHERE
codcomp EQ itab_di_final-codcomp AND
nrdi EQ itab_di_final-nrdi AND
ebeln EQ itab_di_final-ebeln AND
ebelp EQ itab_di_final-ebelp AND
nrseqemb EQ itab_di_final-nrseqemb.
IF ( itab_di_final_aux-nrseqre NE itab_det_exp-nrseqre OR
itab_di_final_aux-vbeln_va NE itab_det_exp-vbeln_va OR
itab_di_final_aux-vbeln_vf NE itab_det_exp-vbeln_vf OR
...
...
itab_di_final_aux-nrseq NE itab_det_exp-nrseq OR
itab_di_final_aux-codmat NE itab_det_exp-codmat ).
itab_di_final_aux-sdo_qtd =
itab_di_final_aux-sdo_qtd + itab_di_final-qtd_vinc.
MODIFY itab_di_final_aux INDEX sy-tabix.
ENDIF.
ENDLOOP.
DELETE itab_di_final_aux INDEX v_tabix2.
DELETE itab_di_final INDEX v_tabix2.
ENDLOOP.
* >> Início da inclusão: FORM TRATA_BUTTON_EXCLM3
IF /pws/zycit321-it_ge IS INITIAL.
* << Fim da inclusão
DELETE itab_comp_vinc_final WHERE
nrseqre = itab_comp_vinc-nrseqre
AND nrseq = itab_comp_vinc-nrseq
AND codmat = itab_comp_vinc-codmat
AND vbeln_va = itab_comp_vinc-vbeln_va
AND vbeln_vf = itab_comp_vinc-vbeln_vf
AND posnr = itab_comp_vinc-posnr
AND codcomp = itab_comp_vinc-codcomp.
* >> Início da inclusão: FORM TRATA_BUTTON_EXCLM3
ELSE.
DELETE itab_comp_vinc_final WHERE
nrseqre = itab_comp_vinc-nrseqre
AND nrseq = itab_comp_vinc-nrseq
AND codmat = itab_comp_vinc-codmat
AND vbeln_va = itab_comp_vinc-vbeln_va
AND vbeln_vf = itab_comp_vinc-vbeln_vf
AND posnr = itab_comp_vinc-posnr
AND grupo = itab_comp_vinc-grupo.
ENDIF.
* << Fim da inclusão
DELETE itab_comp_vinc.
ENDLOOP.
itab_di_final[] = itab_di_final_aux[].
EXIT.
ENDIF.
ENDFORM.
FORM trata_button_dall3.
IF pressed_tab_3c_2 EQ 'FS_RESUMO3'.
LOOP AT itab_resumo.
itab_resumo-marc_l = ' '.
...
...
APPEND itab_det_exp_final.
ENDLOOP.
ENDFORM.
FORM monta_dis3.
REFRESH itab_di_final_aux.
itab_di_final_aux[] = itab_di_final[].
CLEAR itab_zycit085.
READ TABLE itab_zycit085 WITH KEY
nrseqdi = itab_zycit100_sort-nrseqdi.
CHECK sy-subrc EQ 0 AND
* >> Início da exclusão: FORM MONTA_DIS3
itab_zycit085-dtuserc >= v_dtini AND
itab_zycit085-dtuserc <= v_dtfim.
* << Fim da exclusão
* >> Início da inclusão: FORM MONTA_DIS3
itab_zycit085-dtreg >= v_dtini AND
itab_zycit085-dtreg <= v_dtfim.
* << Fim da inclusão
IF /pws/zycbt007-bukrs NE itab_zycit085-bukrs.
SELECT SINGLE * FROM /pws/zycbt007
WHERE bukrs EQ itab_zycit085-bukrs.
ENDIF.
READ TABLE itab_ekpo WITH KEY
ebeln = itab_zycit100_sort-ebeln
ebelp = itab_zycit100_sort-ebelp.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit100_sort-nrseq
ebeln = itab_zycit100_sort-ebeln
...
...
itab_zycit100_sort-grupo TO itab_di_final-grupo ,
itab_zycit433-desc_g TO itab_di_final-desc_g ,
itab_comp_vinc_final-codmat TO itab_di_final-codmat ,
itab_comp_vinc_final-nrseqre TO itab_di_final-nrseqre ,
itab_comp_vinc_final-nrseq TO itab_di_final-nrseq ,
itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va ,
itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf ,
itab_comp_vinc_final-posnr TO itab_di_final-posnr ,
itab_zycit085-nrseqdi TO itab_di_final-nrdi ,
itab_zycit085-nrdi TO itab_di_final-reg_di ,
* >> Início da exclusão: FORM MONTA_DIS3
itab_zycit085-dtuserc TO itab_di_final-dtdi ,
* << Fim da exclusão
* >> Início da inclusão: FORM MONTA_DIS3
itab_zycit085-dtreg TO itab_di_final-dtdi ,
* << Fim da inclusão
itab_zycit100-nrseq TO itab_di_final-nrseqemb ,
itab_zycit100-adicao TO itab_di_final-adicao ,
itab_ekpo-ebeln TO itab_di_final-ebeln ,
itab_ekpo-ebelp TO itab_di_final-ebelp ,
itab_zycit003-meins TO itab_di_final-meins ,
itab_zycit003-qtd_iten TO itab_di_final-qtd_di ,
itab_zycit003-qtd_iten TO itab_di_final-sdo_qtd ,
itab_zycit003-j_1bnbm TO itab_di_final-j_1bnbm ,
itab_zycit085-dtdesemb TO itab_di_final-dtdesemb ,
itab_zycit003-gewei TO itab_di_final-gewei ,
...
...
itab_zycit100_sort-grupo TO itab_di_final-grupo ,
itab_zycit433-desc_g TO itab_di_final-desc_g ,
itab_comp_vinc_final-codmat TO itab_di_final-codmat ,
itab_comp_vinc_final-nrseqre TO itab_di_final-nrseqre ,
itab_comp_vinc_final-nrseq TO itab_di_final-nrseq ,
itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va ,
itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf ,
itab_comp_vinc_final-posnr TO itab_di_final-posnr ,
itab_zycit085-nrseqdi TO itab_di_final-nrdi ,
itab_zycit085-nrdi TO itab_di_final-reg_di ,
* >> Início da exclusão: FORM MONTA_DIS3
itab_zycit085-dtuserc TO itab_di_final-dtdi ,
* << Fim da exclusão
* >> Início da inclusão: FORM MONTA_DIS3
itab_zycit085-dtreg TO itab_di_final-dtdi ,
* << Fim da inclusão
itab_zycit100-nrseq TO itab_di_final-nrseqemb ,
itab_zycit100-adicao TO itab_di_final-adicao ,
itab_ekpo-ebeln TO itab_di_final-ebeln ,
itab_ekpo-ebelp TO itab_di_final-ebelp ,
itab_zycit003-meins TO itab_di_final-meins ,
itab_zycit003-qtd_iten TO itab_di_final-qtd_di ,
itab_di_final_aux-sdo_qtd TO itab_di_final-sdo_qtd ,
itab_zycit003-j_1bnbm TO itab_di_final-j_1bnbm ,
itab_zycit085-dtdesemb TO itab_di_final-dtdesemb ,
itab_zycit003-gewei TO itab_di_final-gewei ,
...