Módulo: CÂMBIO IMPORTAÇÃO
Funcionalidade: Associação
Data/Hora da Publicação: 02/10/2009 00:00:00
Data/Hora Última Alteração: 18/02/2011 10:50:54
Descrição da Nota: ASSOCIAÇÃO DE FATURAS - ERRO DESMEMBRAMENTO COM VALOR ZERO(0,00)
Sintoma
Ao efetuar uma associação parcial e depois efetuar uma nova parcial, onde o cenário é com item de
pedido(/pws/zycmt020), a segunda associação gera erro no desmembramento do pagamento
antecipado/financiamento/pagamento de fatura, levando valor zero(0,00) para o batch-input.
Solução
Atualizar o campo /PWS/ZYCMT020-SALDO com o valor correto(total ou parcial) e efetuar essa
atualização apenas após o sucesso na última contabilização da associação.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 09136 Data: 02/10/2009 Hora: 16:28:35
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 09136
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00001
Agrupamento : 00001
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01988 - 00001 - 6.0 - 00024 - ASSOCIAÇÃO DE FATURAS - DA RATEIO POR ITEM DOC. COMPRA
04588 - 00002 - 7.0 - 00002 - ASSOCIAÇÃO DE FATURAS - ATUALIZAÇÃO INCORRETA DATA E DOCTO DE ASS
08355 - 00003 - 7.0 - 00009 - ASSOCIAÇÃO PAGAMENTO ANTECIPADO IMPORTAÇÃO
----------------------------------------------------------------------------------------------------
ASSOCIAÇÃO DE FATURAS - ERRO DESMEMBRAMENTO COM VALOR ZERO(0,00)
----------------------------------------------------------------------------------------------------
Palavras Chave:
ASSOCIAÇÃO DE FATURAS - ERRO DESMEMBRAMENTO COM VALOR ZERO(0,00)
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/LZYCMGF2F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCMGF2F01
...
clear v_sucesso.
else.
v_sucesso = 'X'.
if v_erro_estorno is initial.
modify /pws/zycbt131 from table itab_zycbt131.
modify /pws/zycbt108 from table itab_zycbt108.
update /pws/zycbt112 set slassoc = /pws/zycbe112-slassoc
belnr2 = /pws/zycbe112-belnr2
fassoc = 'X'
where nrseq = /pws/zycbe112-nrseq.
* >> Início da exclusão: FORM GRAVA_ASSOC_FINAN
loop at itab_zycmt020.
update /pws/zycmt020 set saldo = itab_zycmt020-saldo
where nrseq = itab_zycmt020-nrseq
and codmod = itab_zycmt020-codmod
and ebeln = itab_zycmt020-ebeln
and ebelp = itab_zycmt020-ebelp.
endloop.
* << Fim da exclusão
loop at itab_zycbt108 where belnr_lq ne ' '.
read table itab_zycbt131 with key
nrseq_pgfat = itab_zycbt108-nrseq_pgfat.
if itab_zycbt108-slfat eq 0.
update /pws/zycbt119 set slpgfat = itab_zycbt108-slfat
belnr_p = itab_zycbt131-belnr_as
dtpagto = sy-datum
where nrseq = itab_zycbt108-nrseq_pgfat.
else.
update /pws/zycbt119 set slpgfat = itab_zycbt108-slfat
...
...
clear v_erro_inclusao.
clear v_sucesso.
else.
v_sucesso = 'X'.
if v_erro_estorno is initial.
modify /pws/zycbt131 from table itab_zycbt131.
modify /pws/zycbt108 from table itab_zycbt108.
update /pws/zycbt117 set slpgant = /pws/zycbe117-slpgant
belnr2 = /pws/zycbe117-belnr2
where nrseq = /pws/zycbe117-nrseq.
* >> Início da exclusão: FORM GRAVA_ASSOC_PGANT
loop at itab_zycmt020.
update /pws/zycmt020 set saldo = itab_zycmt020-saldo
where nrseq = itab_zycmt020-nrseq
and codmod = itab_zycmt020-codmod
and ebeln = itab_zycmt020-ebeln
and ebelp = itab_zycmt020-ebelp.
endloop.
* << Fim da exclusão
loop at itab_zycbt108 where belnr_lq ne ' '.
if itab_zycbt108-slfat eq 0.
update /pws/zycbt119 set slpgfat = itab_zycbt108-slfat
belnr_p = itab_zycbt131-belnr_as
dtpagto = sy-datum
where nrseq = itab_zycbt108-nrseq_pgfat.
else.
update /pws/zycbt119 set slpgfat = itab_zycbt108-slfat
belnr_p = itab_zycbt108-belnr_lq
where nrseq = itab_zycbt108-nrseq_pgfat.
...
...
delete itab_zycbt131 where vlme eq ' '.
if v_erro_inclusao eq 'X'.
clear v_erro_inclusao.
clear v_sucesso.
else.
v_sucesso = 'X'.
if v_erro_estorno is initial.
modify /pws/zycbt131 from table itab_zycbt131.
modify /pws/zycbt108 from table itab_zycbt108.
modify /pws/zycbt119 from /pws/zycbe119.
* >> Início da exclusão: FORM GRAVA_ASSOC_PGFAT
loop at itab_zycmt020.
update /pws/zycmt020 set saldo = itab_zycmt020-saldo
where nrseq = itab_zycmt020-nrseq
and codmod = itab_zycmt020-codmod
and ebeln = itab_zycmt020-ebeln
and ebelp = itab_zycmt020-ebelp.
endloop.
* << Fim da exclusão
loop at itab_zycbt108 where belnr_lq ne ' '.
if itab_zycbt108-slfat eq 0.
update /pws/zycbt119 set slpgfat = itab_zycbt108-slfat
belnr_p = itab_zycbt131-belnr_as
dtpagto = sy-datum
where nrseq = itab_zycbt108-nrseq_pgfat.
else.
update /pws/zycbt119 set slpgfat = itab_zycbt108-slfat
belnr_p = itab_zycbt108-belnr_lq
where nrseq = itab_zycbt108-nrseq_pgfat.
...
...
select zuonr from bseg
up to 1 rows
into v_zuonr_fi
where bukrs eq /pws/zycbe117-bukrs
and belnr eq itab_zycbt036-belnr
and gjahr eq v_gjahr
and augbl eq ' '
and koart eq 'K'
and bschl eq '29'.
endselect.
* >> Início da inclusão: FORM DESMEMBRA_DOCTO_PGANT
loop at itab_zycmt020.
itab_zycmt020-vlassoc = itab_zycmt020-saldo.
itab_zycmt020-saldo = space.
modify itab_zycmt020.
endloop.
* << Fim da inclusão
v_ok = 'X'.
exit.
endif.
itab_zycbe033-xblnr = /pws/zycbe117-nrseq.
concatenate /pws/zycbe117-nrseq 'A' into itab_zycbe033-d_zuonr.
v_zuonr_fi = itab_zycbe033-d_zuonr.
itab_zycbe033-c_zuonr = /pws/zycbe117-nrseq.
if /pws/zycbe112-ftxt is initial.
itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.
itab_zycbe033-c_sgtxt = wa_zycbt011-txtdesc.
...
...
itab_zycbt131-belnr_as = itab_zycbt032-belnr.
modify itab_zycbt131 transporting belnr_as
where belnr eq itab_zycbt108-belnr
and nrseq_pgfat eq itab_zycbt108-nrseq_pgfat.
if ( /pws/zyglt009-contpa = 'Y' and
/pws/zycbe117-codint = 'IM' ) or
( /pws/zyglt009-contpa = 'Y' and
/pws/zycbe117-codint = 'ES' and v_trans is initial ).
/pws/zycbe117-slpgant = v_saldo_pa.
endif.
* >> Início da exclusão: FORM F51_PGANT_MOEDAS_IGUAIS
loop at itab_zycmt020.
itab_zycmt020-vlassoc = itab_zycmt020-saldo.
itab_zycmt020-saldo = space.
modify itab_zycmt020.
endloop.
* << Fim da exclusão
perform atualiza_dados_processos.
else.
loop at itab_zycbt032.
perform message_store using
'/PWS/ZYCBM'
'E'
itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50)
space
space
...
...
'I'
itab_zycbt032-msg
space
space
space
'015'.
itab_zycbt131-belnr_as = itab_zycbt032-belnr.
modify itab_zycbt131 transporting belnr_as
where belnr eq itab_zycbt108-belnr
and nrseq_pgfat eq itab_zycbt108-nrseq_pgfat.
* >> Início da exclusão: FORM F51_PGANT_MOEDAS_DIF
loop at itab_zycmt020.
itab_zycmt020-vlassoc = itab_zycmt020-saldo.
itab_zycmt020-saldo = space.
modify itab_zycmt020.
endloop.
* << Fim da exclusão
perform atualiza_dados_processos.
else.
loop at itab_zycbt032.
perform message_store using
'/PWS/ZYCBM'
'E'
itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50)
space
space
...
...
dtassoc = v_dtdocto
where nrseq eq /pws/zycbe119-nrseq.
endif.
if v_fat_cont is initial.
update /pws/zycbt108 set dtassoc = v_dtdocto2
belnr_as = v_belnr_as2
belnr_lq = v_belnr_as2
where belnr eq itab_zycbt108-belnr
and nrseq_pgfat eq itab_zycbt108-nrseq_pgfat. "#EC CI_NOFIRST
endif.
* >> Início da inclusão: FORM ATUALIZA_DADOS_PROCESSOS
loop at itab_zycmt020.
update /pws/zycmt020 set saldo = itab_zycmt020-saldo
where nrseq = itab_zycmt020-nrseq
and codmod = itab_zycmt020-codmod
and ebeln = itab_zycmt020-ebeln
and ebelp = itab_zycmt020-ebelp.
endloop.
* << Fim da inclusão
endform.
form determina_periodo using value(p_data)
value(p_bukrs)
changing p_periodo.
data v_periv(2).
select single periv
from t001
into v_periv
where bukrs eq p_bukrs.
call function 'DETERMINE_PERIOD'
...