Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Vinculação
Data/Hora da Publicação: 17/03/2006 00:00:00
Data/Hora Última Alteração: 18/02/2011 15:01:02
Descrição da Nota: ESTORNO LIQ. AUTOMÁTICA CÂMBIO PRONTO MESMA FATURA PARCELA DIFERENTE
Sintoma
Ao estornar a vinculação/liquidação com a mesma fatura e parcelas diferentes (parcelas que tenham
liquidação em andamento), de um contrato de câmbio pronto (com liquidação automática), o programa
faz o estorno da primeira fatura corretamente: gerando os documentos de estorno da liquidação,
clearing da liquidação em andamento e clearing do ACE. Mas ao entrar na segunda FBRA, ao invés de
jogar o documento de liquidação da 2ª fatura, o programa está jogando o último documento gerado no
estorno da 1ª fatura que é de clearing de ACE, dessa forma ocorre erro no estorno e no momento do
clearing do ACE também não está jogando o documento de desmembramento do ACE da 2ª fatura.
Solução
Nas atualizações da itab_vinc, validado também o campo nrparcf (número da parcela da fatura).
6.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 01053 Data: 17/03/2006 Hora: 13:48:14
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 01053
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00023
Agrupamento : 00106
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
ESTORNO LIQ. AUTOMÁTICA CÂMBIO PRONTO MESMA FATURA PARCELA DIFERENTE
----------------------------------------------------------------------------------------------------
Palavras Chave:
ERRO ESTORNO LIQUIDAÇÃO AUTOMÁTICA CÂMBIO PRONTO LIQUIDAÇÃO EM ANDAMENTO
----------------------------------------------------------------------------------------------------
Objetos da nota:
RELE F6PK900432 20060317 094712 PWSCIQA
REPS /PWS/MZYCB009F08
REPS /PWS/MZYCB009F10
----------------------------------------------------------------------------------------------------
Modificações efetuadas em RELE F6PK900432 20060317 094712 PWSCIQA
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F08
...
EXIT.
ENDIF.
itab_vinc-belnr = v_belnr.
MODIFY itab_vinc TRANSPORTING belnr
WHERE nrinvoic = itab_vinc-nrinvoic
* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO
AND gsberf = itab_vinc-gsberf.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO
AND gsberf = itab_vinc-gsberf
and nrparcf = itab_vinc-nrparcf.
* << Fim da inclusão
IF itab_vinc-status EQ 'A'.
itab_vinc-status = 'I'.
itab_vinc-belnr = v_belnr.
MODIFY itab_vinc TRANSPORTING belnr
WHERE nrinvoic = itab_vinc-nrinvoic
* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO
AND gsberf = itab_vinc-gsberf.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO
AND gsberf = itab_vinc-gsberf
and nrparcf = itab_vinc-nrparcf.
* << Fim da inclusão
itab_vinc-status = 'E'.
ELSE.
itab_vinc-status = ' '.
ENDIF.
MODIFY itab_vinc.
...
...
itab_zycbt006-belnr = v_belnr.
itab_zycbt006-dtvincul = itab_vinc-dtvincul.
itab_zycbt006-status = 'E'.
MODIFY itab_zycbt006 TRANSPORTING belnr dtvincul status
WHERE nrinvoic = itab_vinc-nrinvoic
* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO
AND gsberf = itab_vinc-gsberf.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO
AND gsberf = itab_vinc-gsberf
and nrparcf = itab_vinc-nrparcf.
* << Fim da inclusão
ENDLOOP.
IF v_subrc NE 0.
LOOP AT itab_vinc
WHERE flag = text-039 OR
( flag = text-040 AND status EQ 'C' ).
...
...
IF NOT itab_vinc-belnr IS INITIAL.
PERFORM anula_desm_ace TABLES itab_vinc.
IF sy-subrc EQ 0.
CLEAR itab_vinc-belnr.
MODIFY itab_vinc TRANSPORTING belnr
* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO
WHERE nrinvoic = itab_vinc-nrinvoic AND
gsberf = itab_vinc-gsberf.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO
WHERE nrinvoic = itab_vinc-nrinvoic
and gsberf = itab_vinc-gsberf
and nrparcf = itab_vinc-nrparcf.
* << Fim da inclusão
ENDIF.
ENDIF.
itab_vinc-belnr = v_belnr.
PERFORM estorna_liq TABLES itab_vinc.
IF itab_vinc-status = 'I' AND
...
...
itab_vinc-slpagar = itab_vinc-slpagar -
itab_vinc-vlme_p.
CLEAR itab_vinc-belnr.
MODIFY itab_vinc TRANSPORTING belnr dtbelnr slpagar belnr
WHERE nrinvoic = itab_vinc-nrinvoic
* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO
AND gsberf = itab_vinc-gsberf.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO
AND gsberf = itab_vinc-gsberf
and nrparcf = itab_vinc-nrparcf.
* << Fim da inclusão
IF itab_vinc-status EQ 'A'.
itab_vinc-status = 'I'.
itab_vinc-dtbelnr = v_datum.
MODIFY itab_vinc TRANSPORTING belnr dtbelnr
WHERE nrinvoic = itab_vinc-nrinvoic
* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO
AND gsberf = itab_vinc-gsberf.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO
AND gsberf = itab_vinc-gsberf
and nrparcf = itab_vinc-nrparcf.
* << Fim da inclusão
IF NOT itab_vinc-tpcontr(1) CA 'PS'.
itab_vinc-belnr_vinc = itab_vinc-belnr.
ENDIF.
itab_vinc-status = 'E'.
ELSE.
...
...
tpmsg = 'S'.
IF sy-subrc EQ 0.
CLEAR itab_vinc-belnr.
MODIFY itab_vinc TRANSPORTING belnr
WHERE nrinvoic = itab_vinc-nrinvoic
* >> Início da exclusão: FORM ANULA_DESM_ACE
AND gsberf = itab_vinc-gsberf.
* << Fim da exclusão
* >> Início da inclusão: FORM ANULA_DESM_ACE
AND gsberf = itab_vinc-gsberf
and nrparcf = itab_vinc-nrparcf.
* << Fim da inclusão
itab_contabil-nrinvoic = itab_vinc-nrinvoic.
CLEAR itab_contabil-vbeln.
itab_contabil-gsberf = itab_vinc-gsberf.
itab_contabil-docto = itab_zycbt032-belnr.
itab_contabil-msg = text-183.
...
...
itab_vinc-dtbelnr = itab_vinc-dtvincul.
itab_vinc-slpagar = itab_vinc-slpagar -
itab_vinc-vldif.
MODIFY itab_vinc TRANSPORTING belnr dtbelnr slpagar
WHERE nrinvoic = itab_vinc-nrinvoic
* >> Início da exclusão: FORM ESTORNO_PERIODO_ABERTO
AND gsberf = itab_vinc-gsberf.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO
AND gsberf = itab_vinc-gsberf
and nrparcf = itab_vinc-nrparcf.
* << Fim da inclusão
IF itab_vinc-status EQ 'A'.
itab_vinc-belnr = v_belnr.
itab_vinc-dtbelnr = itab_vinc-dtvincul.
MODIFY itab_vinc TRANSPORTING belnr dtbelnr
WHERE nrinvoic = itab_vinc-nrinvoic
* >> Início da exclusão: FORM ESTORNO_PERIODO_ABERTO
AND gsberf = itab_vinc-gsberf.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO
AND gsberf = itab_vinc-gsberf
and nrparcf = itab_vinc-nrparcf.
* << Fim da inclusão
itab_vinc-status = 'I'.
ELSE.
itab_vinc-status = ' '.
ENDIF.
MODIFY itab_vinc.
...
...
itab_zycbt006-belnr = v_belnr.
itab_zycbt006-dtvincul = itab_vinc-dtvincul.
itab_zycbt006-status = 'E'.
MODIFY itab_zycbt006 TRANSPORTING belnr dtvincul status
WHERE nrinvoic = itab_vinc-nrinvoic
* >> Início da exclusão: FORM ESTORNO_PERIODO_ABERTO
AND gsberf = itab_vinc-gsberf.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO
AND gsberf = itab_vinc-gsberf
and nrparcf = itab_vinc-nrparcf.
* << Fim da inclusão
ENDLOOP.
MODIFY /pws/zycbt030 FROM TABLE itab_zycbt030.
MODIFY /pws/zycbt221 FROM TABLE itab_zycbt221.
COMMIT WORK.
sy-subrc = v_subrc.
...
...
CLEAR itab_vinc-belnr.
ENDIF.
itab_vinc-belnr_d = v_belnr_comp.
MODIFY itab_vinc TRANSPORTING belnr belnr_d
WHERE nrinvoic = itab_vinc-nrinvoic
* >> Início da exclusão: FORM ANULA_LIQUIDACAO
AND gsberf = itab_vinc-gsberf.
* << Fim da exclusão
* >> Início da inclusão: FORM ANULA_LIQUIDACAO
AND gsberf = itab_vinc-gsberf
and nrparcf = itab_vinc-nrparcf.
* << Fim da inclusão
itab_contabil-nrinvoic = itab_vinc-nrinvoic.
CLEAR itab_contabil-vbeln.
itab_contabil-gsberf = itab_vinc-gsberf.
itab_contabil-docto = itab_zycbt032-belnr.
itab_contabil-msg = text-294.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F10
...
v_doc_f30 = 'X'.
CLEAR itab_vinc-belnr.
itab_vinc-belnr_d = v_belnr_comp.
MODIFY itab_vinc TRANSPORTING belnr belnr_d
WHERE nrinvoic = itab_vinc-nrinvoic
* >> Início da exclusão: FORM ANULA_LIQUIDACAO_2
AND gsberf = itab_vinc-gsberf.
* << Fim da exclusão
* >> Início da inclusão: FORM ANULA_LIQUIDACAO_2
AND gsberf = itab_vinc-gsberf
and nrparcf = itab_vinc-nrparcf.
* << Fim da inclusão
itab_contabil-nrinvoic = itab_vinc-nrinvoic.
CLEAR itab_contabil-vbeln.
itab_contabil-gsberf = itab_vinc-gsberf.
itab_contabil-docto = itab_zycbt032-belnr.
itab_contabil-msg = text-294.
...