Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Vinculação
Data/Hora da Publicação: 17/07/2009 00:00:00
Data/Hora Última Alteração: 18/02/2011 17:57:09
Descrição da Nota: VINCULAÇÃO/LIQUIDAÇÃO - CHAVE REFERÊNCIA E DATA LANÇAMENTO CONTRATO
Sintoma
Cenário: DP ou CP com liquidação automática: contrato de 2008, vinculado 1 vez em 2008 com fatura de
2008. OK. Nova vinculação em 2009 com outra fatura de 2008, só que com erro. Neste momento do erro,
grava os dados na tabela /pws/zycbt005 e grava o campo /pws/zycbt001-dtvincul com a data de 2009
(nova vinculação), mas exibe erro ao tentar fazer próximas vinculações sendo: documento já
compensado e chave de referência no desmembramento do contrato.
Solução
Verificar a última vinculação válida na /pws/zycbt005, onde se a data encontrada for menor que a
/pws/zycbt001-dtvincul, considerar a data da /pws/zycbt005.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 08692 Data: 17/07/2009 Hora: 09:58:27
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 08692
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00010
Agrupamento : 00105
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
07760 - 00001 - 7.0 - 00007 - DA-LIQUIDAÇÃO E VINCULAÇÃO LIQ. AUTOMÁT - NORMAL/ARBITRAGEM/PERFO
08619 - 00002 - 7.0 - 00010 - VINCULAÇÃO - LIQUIDAÇÃO - PARÂMETROS NO IDIOMA - 166/167/168/169
08630 - 00003 - 7.0 - 00010 - LIQUIDAÇÃO - DATA LANÇAMENTO INCORRETO NO BATCH INPUT
----------------------------------------------------------------------------------------------------
VINCULAÇÃO/LIQUIDAÇÃO - CHAVE REFERÊNCIA E DATA LANÇAMENTO CONTRATO
----------------------------------------------------------------------------------------------------
Palavras Chave:
VINCULAÇÃO LIQUIDAÇÃO CHAVE REFERÊNCIA E DATA LANÇAMENTO CONTRATO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB004F01
REPS /PWS/MZYCB004F02
REPS /PWS/MZYCB004F03
REPS /PWS/MZYCB004TOP
REPS /PWS/MZYCB009F04
REPS /PWS/MZYCB009TOP
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F01
...
when 'D'.
v_data = /pws/zycbe001-dtdesem.
when others.
v_data = /pws/zycbe001-dtcred.
endcase.
itab_zycbe033-belnr = /pws/zycbe001-belnr.
itab_zycbe033-dtdocto = v_data.
else.
itab_zycbe033-belnr = /pws/zycbe001-belnr2.
itab_zycbe033-dtdocto = /pws/zycbe001-dtvincul.
* >> Início da inclusão: FORM FILL_DATE6_F30_ACE
if ( /pws/zycbe001-tpcontr(1) eq 'D' and
/pws/zycbt089-f_cont_vinc eq 'F' ) or
( /pws/zycbe001-tpcontr(1) eq 'C' and
wa_zycbt007-liq_cp eq 'X' ).
select * from /pws/zycbt005 into table itab_zycbt005_vinc
where nrseqc = /pws/zycbe001-nrseqc
and status = 'C'.
describe table itab_zycbt005_vinc lines v_linha.
while v_linha > 0.
read table itab_zycbt005_vinc index v_linha.
if sy-subrc = 0
and
itab_zycbt005_vinc-slpagar < itab_zycbt005_vinc-vlvinc
and
itab_zycbt005_vinc-dtvincul < /pws/zycbe001-dtvincul.
itab_zycbe033-dtdocto = itab_zycbt005_vinc-dtvincul.
exit.
else.
v_linha = v_linha - 1.
endif.
endwhile.
endif.
* << Fim da inclusão
endif.
else.
if itab_zycbt005-belnr is initial.
itab_zycbe033-belnr = itab_zycbt005-belnr_vinc.
else.
itab_zycbe033-belnr = itab_zycbt005-belnr.
endif.
itab_zycbe033-dtdocto = itab_zycbt005-dtbelnr.
* >> Início da inclusão: FORM FILL_DATE6_F30_ACE
if ( /pws/zycbe001-tpcontr(1) eq 'D' and
/pws/zycbt089-f_cont_vinc eq 'F' ) or
( /pws/zycbe001-tpcontr(1) eq 'C' and
wa_zycbt007-liq_cp eq 'X' ).
select * from /pws/zycbt005 into table itab_zycbt005_vinc
where nrseqc = /pws/zycbe001-nrseqc
and status = 'C'.
describe table itab_zycbt005_vinc lines v_linha.
while v_linha > 0.
read table itab_zycbt005_vinc index v_linha.
if sy-subrc = 0
and
itab_zycbt005_vinc-slpagar < itab_zycbt005_vinc-vlvinc
and
itab_zycbt005_vinc-dtvincul < itab_zycbt005-dtbelnr.
itab_zycbe033-dtdocto = itab_zycbt005_vinc-dtvincul.
exit.
else.
v_linha = v_linha - 1.
endif.
endwhile.
endif.
* << Fim da inclusão
endif.
endif.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCBT006'.
itab_zycbt036-cpochv = v_cpochv.
perform determina_fator using v_parafator
v_defator.
select *
up to 1 rows
from tcurx
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F02
...
itab_zycbe033-belnr = v_zycbe001-belnr.
itab_zycbe033-dtdocto = v_data.
else.
itab_zycbe033-belnr = v_zycbe001-belnr2.
select single * from /pws/zycbt074
where nrseqc = v_zycbe001-nrseqc.
if not /pws/zycbt074-dtcont is initial.
itab_zycbe033-dtdocto = /pws/zycbt074-dtcont.
else.
itab_zycbe033-dtdocto = v_zycbe001-dtvincul.
* >> Início da inclusão: FORM DESMEMBRA_ACE
if ( /pws/zycbe001-tpcontr(1) eq 'D' and
/pws/zycbt089-f_cont_vinc eq 'F' ) or
( /pws/zycbe001-tpcontr(1) eq 'C' and
wa_zycbt007-liq_cp eq 'X' ).
select * from /pws/zycbt005 into table itab_zycbt005_vinc
where nrseqc = /pws/zycbe001-nrseqc
and status = 'C'.
describe table itab_zycbt005_vinc lines v_linha.
while v_linha > 0.
read table itab_zycbt005_vinc index v_linha.
if sy-subrc = 0
and
itab_zycbt005_vinc-slpagar < itab_zycbt005_vinc-vlvinc
and
itab_zycbt005_vinc-dtvincul < v_zycbe001-dtvincul.
itab_zycbe033-dtdocto = itab_zycbt005_vinc-dtvincul.
exit.
else.
v_linha = v_linha - 1.
endif.
endwhile.
endif.
* << Fim da inclusão
endif.
endif.
else.
itab_zycbe033-belnr = itab_zycbt006-belnr5.
itab_zycbe033-dtdocto = itab_zycbt005-dtbelnr.
if /pws/zycbe001-belnr = itab_zycbt005-belnr.
case /pws/zycbe001-fdtlanc.
when 'O'.
itab_zycbe033-dtdocto = /pws/zycbe001-dtcontr.
when 'D'.
itab_zycbe033-dtdocto = /pws/zycbe001-dtdesem.
when others.
itab_zycbe033-dtdocto = /pws/zycbe001-dtcred.
endcase.
elseif itab_zycbt006-belnr5 = itab_zycbt005-belnr.
itab_zycbe033-dtdocto = itab_zycbt005-dtvincul.
* >> Início da inclusão: FORM DESMEMBRA_ACE
if ( /pws/zycbe001-tpcontr(1) eq 'D' and
/pws/zycbt089-f_cont_vinc eq 'F' ) or
( /pws/zycbe001-tpcontr(1) eq 'C' and
wa_zycbt007-liq_cp eq 'X' ).
select * from /pws/zycbt005 into table itab_zycbt005_vinc
where nrseqc = /pws/zycbe001-nrseqc
and status = 'C'.
describe table itab_zycbt005_vinc lines v_linha.
while v_linha > 0.
read table itab_zycbt005_vinc index v_linha.
if sy-subrc = 0
and
itab_zycbt005_vinc-slpagar < itab_zycbt005_vinc-vlvinc
and
itab_zycbt005_vinc-dtvincul < itab_zycbt005-dtvincul.
itab_zycbe033-dtdocto = itab_zycbt005_vinc-dtvincul.
exit.
else.
v_linha = v_linha - 1.
endif.
endwhile.
endif.
* << Fim da inclusão
endif.
endif.
endif.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = 'ZYCBT006'.
itab_zycbt036-cpochv = itab_zycbe033-cpochv.
if itab_zycbt006-v_armda is initial.
itab_zycbt036-residuo = itab_zycbt006-vlme.
else.
read table itab_paridade with key nrinvoic = itab_zycbt006-nrinvoic
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F03
...
<fs_dtdocto> = /pws/zycbe001-dtdesem.
when others.
<fs_dtdocto> = /pws/zycbe001-dtcred.
endcase.
endif.
when others.
assign:
p_vinculacao-belnr to <fs_belnr>,
p_vinculacao-dtbelnr to <fs_dtdocto>.
endcase.
* >> Início da inclusão: FORM DOCUMENTO_VINCULACAO
IF ( /pws/zycbe001-tpcontr(1) EQ 'D' AND
/pws/zycbt089-f_cont_vinc EQ 'F' ) OR
( /pws/zycbe001-tpcontr(1) EQ 'C' AND
wa_zycbt007-liq_cp EQ 'X' ).
SELECT * FROM /pws/zycbt005 INTO TABLE itab_zycbt005_vinc
WHERE nrseqc = /pws/zycbe001-nrseqc
AND status = 'C'.
DESCRIBE TABLE itab_zycbt005_vinc LINES v_linha.
WHILE v_linha > 0.
READ TABLE itab_zycbt005_vinc INDEX v_linha.
IF sy-subrc = 0
AND
itab_zycbt005_vinc-slpagar < itab_zycbt005_vinc-vlvinc
AND
itab_zycbt005_vinc-dtvincul < <fs_dtdocto>.
ASSIGN itab_zycbt005_vinc-dtvincul TO <fs_dtdocto>.
EXIT.
ELSE.
v_linha = v_linha - 1.
ENDIF.
ENDWHILE.
ENDIF.
* << Fim da inclusão
perform adiciona_documentos
using
p_vinculacao-bukrs_c
<fs_belnr>
<fs_dtdocto>
'H'.
endform.
form seleciona_fatura
using
p_itab_vinculacao type t_itab_vinculacao
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004TOP
...
v_ult type c.
data: icc_ type c,
conta_ like /pws/zycbt012-saknr1,
belnr_ like /pws/zycbt030-belnr,
v_exec(1) type c.
data: v_vljur_acc like /pws/zycbt002-vlme,
v_vljur_ace like /pws/zycbt002-vlme,
v_zycbe005 like /pws/zycbe005,
v_calcula_juros type c,
v_agkon type knb1-kunnr.
* >> Início da inclusão:
data: begin of itab_zycbt005_vinc occurs 0.
include structure /pws/zycbt005.
data: end of itab_zycbt005_vinc.
* << Fim da inclusão
data: v_nome_campo(35) type c,
v_comp(35) type c,
v_cod_grupo like /pws/zyglt320-cod_grupo,
wa_zycbe006_aux like /pws/zycbe006,
cont type i value 0.
data: v_parid like /pws/zycbt005-parid,
v_vlme_c like /pws/zycbt005-vlvinc,
v_waers_c like /pws/zycbt005-waers_c,
v_subrc like sy-subrc,
v_cont_ok,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F04
...
WHEN 'O'.
ASSIGN /pws/zycbe001-dtcontr TO <fs_dtdocto>.
WHEN OTHERS.
ASSIGN /pws/zycbe001-dtcred TO <fs_dtdocto>.
ENDCASE.
ELSE.
ASSIGN v_dtcont TO <fs_dtdocto>.
ENDIF.
ELSE.
ASSIGN /pws/zycbe001-dtvincul TO <fs_dtdocto>.
* >> Início da inclusão: FORM DOCUMENTO_CONTRATO
IF ( /pws/zycbe001-tpcontr(1) EQ 'D' AND
/pws/zycbt089-f_cont_vinc EQ 'F' ) OR
( /pws/zycbe001-tpcontr(1) EQ 'C' AND
wa_zycbt007-liq_cp EQ 'X' ).
SELECT * FROM /pws/zycbt005 INTO TABLE itab_zycbt005_vinc
WHERE nrseqc = /pws/zycbe001-nrseqc
AND status = 'C'.
DESCRIBE TABLE itab_zycbt005_vinc LINES v_line.
WHILE v_line > 0.
READ TABLE itab_zycbt005_vinc INDEX v_line.
IF sy-subrc = 0
AND
itab_zycbt005_vinc-slpagar < itab_zycbt005_vinc-vlvinc
AND
itab_zycbt005_vinc-dtvincul < /pws/zycbe001-dtvincul.
ASSIGN itab_zycbt005_vinc-dtvincul TO <fs_dtdocto>.
EXIT.
ELSE.
v_line = v_line - 1.
ENDIF.
ENDWHILE.
ENDIF.
* << Fim da inclusão
ENDIF.
PERFORM adiciona_documentos
USING
/pws/zycbe001-bukrs
<fs_belnr>
<fs_dtdocto>
'H'.
ENDFORM.
FORM documentos_principal.
FIELD-SYMBOLS:
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009TOP
...
v_zycbe050_vldev LIKE /pws/zycbe050-vldev,
v_belnr_comp LIKE /pws/zycbe033-belnr,
v_vlliq LIKE /pws/zycbt006-vlme,
v_saldo_fat LIKE /pws/zycbt006-vlme,
v_nome_campo(35) TYPE c,
v_comp(35) TYPE c,
v_cod_grupo LIKE /pws/zyglt320-cod_grupo,
cont TYPE i VALUE 0,
reg LIKE sy-tabix,
v_vert(1) TYPE c.
* >> Início da inclusão:
data: begin of itab_zycbt005_vinc occurs 0.
include structure /pws/zycbt005.
data: end of itab_zycbt005_vinc.
* << Fim da inclusão
DATA:
v_belnr_f_22 LIKE /pws/zycbt051-belnr_rd,
v_dtcont LIKE sy-datum,
v_dt_f_22 LIKE sy-datum,
v_belnr_f_22_aux LIKE /pws/zycbt051-belnr_rd,
v_dt_f_22_aux LIKE sy-datum,
v_codeven_aux LIKE /pws/zycbt011-codeven,
v_variacao LIKE /pws/zycbt005-vlme_p,
v_reais_c LIKE /pws/zycbt005-vlme_p,
v_reais_f LIKE /pws/zycbt005-vlme_p,
...