Módulo: DOC. IMPORTAÇÃO
Funcionalidade: LI
Data/Hora da Publicação: 29/08/2012 00:00:00
Data/Hora Última Alteração: 03/09/2012 17:07:17
Descrição da Nota: AJUSTE/ERRO NO CAMPO VAL.TOT.LOCAL EMBAR -> /PWS/ZYCIE078-VLMERC
Sintoma
Campo Valor Total Local Embarque, na Pasta Mercadoria 2, está com o valor errado.
Solução
Toda vez que for adicionado um item, ou deletado, ou alterar a quantidade, devemos atualizar o campo
Val.Tot.Local Embar.
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 12469 Data: 29/08/2012 Hora: 09:00:40
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 12469
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 9.0
Pacote : 00001
Agrupamento : 00127
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
12183 - 00001 - 8.0 - 00011 - QUANTIDADE ESTATÍSTICA VALOR TOTAL LOCAL EMBARQUE PESO LÍQUIDO
----------------------------------------------------------------------------------------------------
AJUSTE/ERRO NO CAMPO VAL.TOT.LOCAL EMBAR -> /PWS/ZYCIE078-VLMERC
----------------------------------------------------------------------------------------------------
Palavras Chave:
/PWS/SAPMZYCI020 - VAL.TOT.LOCAL EMBAR - /PWS/ZYCIE078-VLMERC
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI020F01
REPS /PWS/MZYCI020I01
REPS /PWS/MZYCI020O01
REPS /PWS/MZYCI020X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020F01
...
MOVE it_zycit079 TO it_zycit079_del.
APPEND it_zycit079_del.
MOVE it_zycit079 TO it_079_del.
APPEND it_079_del.
DELETE it_zycit081 WHERE ebeln EQ it_zycit079-ebeln
AND ebelp EQ it_zycit079-ebelp.
DELETE it_anu2 WHERE ebeln EQ it_zycit079-ebeln
AND ebelp EQ it_zycit079-ebelp.
DELETE it_zycit079 INDEX v_idx.
ENDLOOP.
* >> Início da inclusão: FORM DELETA_ITENS
IF sy-subrc EQ 0.
PERFORM verifica_vltotal_local_emb.
ENDIF.
* << Fim da inclusão
IF it_zycit079[] IS INITIAL.
CLEAR: /pws/zycie078-inco1,
/pws/zycie078-waers.
ENDIF.
ENDFORM.
...
...
FORM verifica_vltotal_local_emb.
DATA: itab_komv_aux LIKE itab_komv OCCURS 0 WITH HEADER LINE.
DATA:
v_ebelp LIKE konv-kposn,
v_vlmerc LIKE /pws/zycit003-netpr,
v_vlmerc_aux LIKE /pws/zycit003-netpr.
* >> Início da inclusão: FORM VERIFICA_VLTOTAL_LOCAL_EMB
CHECK sy-tcode NE '/PWS/ZYCI020_E'.
CLEAR: /pws/zycie078-vlmerc.
* << Fim da inclusão
CHECK NOT it_zycit079[] IS INITIAL.
it_zycit079_a[] = it_zycit079[].
FREE itab_itens_aux.
IF NOT it_zycit079_a[] IS INITIAL.
SELECT ekko~ebeln ekko~lifnr ekko~inco1
ekpo~ebelp ekpo~txz01 ekpo~menge ekpo~ktmng ekpo~bstyp
ekpo~meins ekpo~ntgew ekpo~gewei ekpo~netpr ekpo~bednr
ekpo~uebto ekpo~uebtk ekpo~loekz ekpo~elikz ekpo~j_1bnbm
ekpo~matnr
FROM ( ekpo INNER JOIN ekko ON ekpo~ebeln = ekko~ebeln )
...
...
SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie078-bukrs.
SELECT * FROM /pws/zycit030
INTO TABLE itab_zycit030
WHERE codigo EQ 'FOB'
AND land1 EQ t001-land1
AND bukrs EQ /pws/zycie078-bukrs.
LOOP AT it_zycit079_a.
CLEAR v_vlmerc.
CLEAR itab_itens_aux.
* >> Início da exclusão: FORM VERIFICA_VLTOTAL_LOCAL_EMB
IF it_zycit079_a-vlmerc IS INITIAL.
* << Fim da exclusão
READ TABLE itab_itens_aux WITH KEY ebeln = it_zycit079_a-ebeln
ebelp = it_zycit079_a-ebelp.
IF sy-subrc EQ 0.
MOVE: itab_itens_aux-txz01 TO it_zycit079_a-descr,
itab_itens_aux-bednr TO it_zycit079_a-bednr,
itab_itens_aux-uebto TO it_zycit079_a-uebto,
itab_itens_aux-meins TO it_zycit079_a-meins,
itab_itens_aux-uebtk TO it_zycit079_a-uebtk.
READ TABLE it_ekpo WITH KEY ebeln = itab_itens-ebeln
ebelp = itab_itens-ebelp.
...
...
MODIFY it_zycit079 TRANSPORTING vlmerc
WHERE nrseqli = it_zycit079_a-nrseqli
AND tpli = it_zycit079_a-tpli
AND ebeln = it_zycit079_a-ebeln
AND ebelp = it_zycit079_a-ebelp.
ENDIF.
ENDAT.
ENDLOOP.
FREE itab_zycit030_aux.
ENDIF.
* >> Início da exclusão: FORM VERIFICA_VLTOTAL_LOCAL_EMB
ENDIF.
v_vlmerc_aux = v_vlmerc_aux +
( it_zycit079_a-netpr * it_zycit079_a-qtd_iten ) .
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_VLTOTAL_LOCAL_EMB
/pws/zycie078-vlmerc = /pws/zycie078-vlmerc +
( v_vlmerc * it_zycit079_a-qtd_iten ) .
* << Fim da inclusão
ENDLOOP.
* >> Início da exclusão: FORM VERIFICA_VLTOTAL_LOCAL_EMB
IF /pws/zycie078-vlmerc IS INITIAL OR v_atualiza EQ 'X'.
/pws/zycie078-vlmerc = v_vlmerc_aux.
ENDIF.
* << Fim da exclusão
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020I01
...
MODULE altera_it_zycit079 INPUT.
READ TABLE it_zycit079 INDEX tc_item-current_line.
IF sy-subrc EQ 0 AND
/pws/zycie079-qtd_iten NE it_zycit079-qtd_iten AND
/pws/zycie079-ntgew EQ it_zycit079-ntgew.
CLEAR: /pws/zycie079-ntgew, it_zycit079-ntgew.
ENDIF.
* >> Início da exclusão: MODULE ALTERA_IT_ZYCIT079
IF sy-subrc EQ 0 AND
/pws/zycie079-qtd_iten NE it_zycit079-qtd_iten.
v_atualiza = 'X'.
ENDIF.
* << Fim da exclusão
MOVE: mark TO it_zycit079-mark ,
/pws/zycie079-ebeln TO it_zycit079-ebeln ,
/pws/zycie079-ebelp TO it_zycit079-ebelp ,
/pws/zycie079-descr TO it_zycit079-descr ,
/pws/zycie079-bednr TO it_zycit079-bednr ,
/pws/zycie079-menge TO it_zycit079-menge ,
/pws/zycie079-meins TO it_zycit079-meins ,
/pws/zycie079-netpr TO it_zycit079-netpr ,
/pws/zycie079-qtd_iten TO it_zycit079-qtd_iten ,
/pws/zycie079-ntgew TO it_zycit079-ntgew ,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020O01
...
MODULE load_data OUTPUT.
* >> Início da exclusão: MODULE LOAD_DATA
DATA v_vlmerc_aux LIKE /pws/zycit003-netpr.
* << Fim da exclusão
DATA: flag_emp TYPE c.
CHECK sy-ucomm NE 'MKTD'.
CHECK sy-ucomm NE 'DKTD'.
IF ( sy-tcode EQ '/PWS/ZYCI020_G' OR
sy-tcode EQ '/PWS/ZYCI020_I') .
SELECT SINGLE nrpli dtreg FROM /pws/zycit078
INTO (v_nrpli, v_dtreg)
WHERE nrseqli = /pws/zycie078-nrseqli.
ELSEIF ( sy-tcode EQ '/PWS/ZYCI020_C' OR
sy-tcode EQ '/PWS/ZYCI020_A') AND
...
...
IF v_novo_item EQ 'X'.
IF NOT it_zycit079-qtd_iten IS INITIAL.
/pws/zycie078-qtdest = /pws/zycie078-qtdest +
it_zycit079-qtd_iten.
DELETE itab_itens WHERE ebeln EQ it_zycit079-ebeln
AND ebelp EQ it_zycit079-ebelp.
CLEAR v_novo_item.
ENDIF.
ENDIF.
ENDIF.
* >> Início da exclusão: MODULE LOAD_DATA
IF v_atualiza EQ 'X'.
/pws/zycie078-qtdest = v_qtdest.
CLEAR v_atualiza.
ENDIF.
* << Fim da exclusão
ENDIF.
ELSEIF /pws/zycie078-qtdest <> v_qtdest AND
NOT v_novo_item IS INITIAL.
/pws/zycie078-qtdest = v_qtdest.
CLEAR v_novo_item.
ENDIF.
LOOP AT it_079_del.
READ TABLE it_ekpo WITH KEY ebeln = it_079_del-ebeln
ebelp = it_079_del-ebelp.
IF sy-subrc NE 0.
...
...
ENDIF.
ENDIF.
IF NOT it_ekpo-matnr IS INITIAL.
PERFORM converte_um_ncm USING it_ekpo-matnr
CHANGING it_079_del-meins
it_079_del-qtd_iten.
ENDIF.
IF /pws/zycie078-qtdest GE it_079_del-qtd_iten.
/pws/zycie078-qtdest = /pws/zycie078-qtdest -
it_079_del-qtd_iten.
* >> Início da exclusão: MODULE LOAD_DATA
ENDIF.
IF /pws/zycie078-ntgew GE it_079_del-ntgew.
/pws/zycie078-ntgew = /pws/zycie078-ntgew -
it_079_del-ntgew.
ENDIF.
CLEAR v_vlmerc_aux.
v_vlmerc_aux = it_079_del-netpr * it_079_del-qtd_iten.
IF /pws/zycie078-vlmerc GE v_vlmerc_aux.
/pws/zycie078-vlmerc = /pws/zycie078-vlmerc - v_vlmerc_aux.
ENDIF.
IF /pws/zycie078-vltot GE v_vlmerc_aux.
/pws/zycie078-vltot = /pws/zycie078-vltot - v_vlmerc_aux.
* << Fim da exclusão
ENDIF.
DELETE it_079_del WHERE ebeln EQ it_079_del-ebeln
AND ebelp EQ it_079_del-ebelp.
ENDLOOP.
ELSE.
CLEAR /pws/zycie078-qtdest.
* >> Início da exclusão: MODULE LOAD_DATA
CLEAR: /pws/zycie078-vlmerc,
/pws/zycie078-vltot ,
/pws/zycie078-ntgew .
* << Fim da exclusão
ENDIF.
ENDMODULE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020X01
...
* >> Início da exclusão:
DATA v_atualiza TYPE c.
* << Fim da exclusão
...