Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Liquidação de Fatura
Data/Hora da Publicação: 28/01/2010 00:00:00
Data/Hora Última Alteração: 22/02/2011 12:40:28
Descrição da Nota: LIQUIDAÇÃO - TOTAL FATURA/CONTRATO - ERRO COMPENSAÇÃO CONTRATO F-30
Sintoma
Ao executar a liquidação de um contrato e uma fatura com o mesmo valor, total, não esta mapeando, na
última F-30, todas as atribuições do documento do contrato, não compensando a partida do mesmo.
Solução
Carregar a primeira e segunda atribuição do documento do contrato.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 09747 Data: 28/01/2010 Hora: 18:41:58
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 09747
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00002
Agrupamento : 00006
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
07221 - 00001 - 7.0 - 00006 - LIQUIDAÇÃO DE CONTRATO
08536 - 00002 - 7.0 - 00009 - DA-VINCULAÇÃO/LIQUIDAÇÃO-OTIMIZAÇÃO-BUSCA TAXAS/TIPO DOCTO. POR C
09398 - 00003 - 8.0 - 00001 - EXPORTAÇÃO - LIQUIDAÇÃO DE FATURAS - PROBLEMA NO CAMPO ATRIBUIÇÃO
----------------------------------------------------------------------------------------------------
LIQUIDAÇÃO - TOTAL FATURA/CONTRATO - ERRO COMPENSAÇÃO CONTRATO F-30
----------------------------------------------------------------------------------------------------
Palavras Chave:
LIQUIDAÇÃO - TOTAL FATURA/CONTRATO - ERRO COMPENSAÇÃO CONTRATO F-30
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCB_TRANSACAO_F_30_W
REPS /PWS/MZYCB004F02
REPS /PWS/MZYCB004TOP
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_W
MODIFICAR MÓDULO DE FUNÇÃO: /PWS/ZYCB_TRANSACAO_F_30_W
CARACTERÍSTICAS
IMPORTAÇÃO:
NOME PARAM. ATRIB. TIPO REFERÊNCIA VL. PROPOSTO OPCIONAL TRANSF. TEXT
V_ZUONR TYPE BSEG-ZUONR ' ' 'X'
* >> Início da inclusão:
V_ZUONR2 TYPE BSEG-ZUONR ' ' 'X'
* << Fim da inclusão
Texto Fonte
...
CONCATENATE 'RF05A-XPOS1(' v_xpos1 ')' INTO v_xpos_belnr.
PERFORM bdc_screen USING 'SAPDF05X' '2000'.
PERFORM bdc_field USING 'BDC_CURSOR' v_xpos_belnr.
PERFORM bdc_field USING v_xpos_belnr 'X'.
PERFORM bdc_field USING 'BDC_OKCODE' '=GO'.
PERFORM bdc_screen USING 'SAPDF05X' '0731'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-SEL01(01)'.
CLEAR v_cont.
LOOP AT t_partidas WHERE tcode = t_dados-tcode
AND tabela = t_dados-tabela
* >> Início da exclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_W
AND cpochv = t_dados-cpochv
AND v_sinal = '+'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_W
and cpochv = t_dados-cpochv.
* << Fim da inclusão
ADD 1 TO v_cont.
CONCATENATE 'RF05A-SEL01(' v_cont ')' INTO v_campo.
CONCATENATE 'RF05A-SEL02(' v_cont ')' INTO v_campo2.
PERFORM bdc_field USING v_campo t_partidas-belnr.
PERFORM bdc_field USING v_campo2 t_partidas-belnr.
IF v_cont = 5.
PERFORM bdc_field USING 'BDC_OKCODE' '=SU1'.
PERFORM bdc_screen USING 'SAPDF05X' '0731'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-SEL01(01)'.
CLEAR v_cont.
...
...
PERFORM bdc_field USING 'BDC_OKCODE' '=GO'.
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-ABPOS'.
PERFORM bdc_field USING 'BDC_OKCODE' '=OMX'.
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-ABPOS'.
PERFORM bdc_field USING 'BDC_OKCODE' '=Z+'.
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-ABPOS'.
PERFORM bdc_field USING 'BDC_OKCODE' '=OSE'.
* >> Início da exclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_W
ENDIF.
LOOP AT t_partidas WHERE tcode = t_dados-tcode AND
tabela = t_dados-tabela AND
cpochv = t_dados-cpochv AND
v_sinal = '-'.
EXIT.
ENDLOOP.
IF sy-subrc EQ 0.
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_SUBSCR' 'SAPDF05X'.
PERFORM bdc_field USING 'RF05A-ABPOS' '1'.
PERFORM bdc_field USING 'BDC_OKCODE' '=OSU'.
CLEAR v_xpos1.
SELECT SINGLE selps FROM t021r
INTO v_xpos1
WHERE event = 'SU-AG'
AND feldn = 'BELNR'.
SHIFT v_xpos1 LEFT DELETING LEADING '0'.
WHILE v_xpos1 > 10.
v_xpos1 = v_xpos1 - 10.
PERFORM bdc_screen USING 'SAPDF05X' '2000'.
PERFORM bdc_field USING 'BDC_OKCODE' 'P+'.
SHIFT v_xpos1 LEFT DELETING LEADING '0'.
ENDWHILE.
CONCATENATE 'RF05A-XPOS1(' v_xpos1 ')' INTO v_xpos_belnr.
PERFORM bdc_screen USING 'SAPDF05X' '2000'.
PERFORM bdc_field USING 'BDC_CURSOR' v_xpos_belnr.
PERFORM bdc_field USING v_xpos_belnr 'X'.
PERFORM bdc_field USING 'BDC_OKCODE' '=GO'.
PERFORM bdc_screen USING 'SAPDF05X' '0731'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-SEL01(01)'.
CLEAR v_cont.
LOOP AT t_partidas WHERE tcode = t_dados-tcode
AND tabela = t_dados-tabela
AND cpochv = t_dados-cpochv
AND v_sinal = '-'.
ADD 1 TO v_cont.
CONCATENATE 'RF05A-SEL01(' v_cont ')' INTO v_campo.
CONCATENATE 'RF05A-SEL02(' v_cont ')' INTO v_campo2.
PERFORM bdc_field USING v_campo t_partidas-belnr.
PERFORM bdc_field USING v_campo2 t_partidas-belnr.
IF v_cont = 5.
PERFORM bdc_field USING 'BDC_OKCODE' '=SU1'.
PERFORM bdc_screen USING 'SAPDF05X' '0731'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-SEL01(01)'.
CLEAR v_cont.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_W
ENDLOOP.
PERFORM bdc_field USING 'BDC_OKCODE' '=GO'.
* << Fim da exclusão
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_SUBSCR' 'SAPDF05X'.
PERFORM bdc_field USING 'RF05A-ABPOS' '1'.
PERFORM bdc_field USING 'BDC_OKCODE' '=OSU'.
CLEAR v_xpos1.
...
...
IF v_cont > 5.
PERFORM bdc_field USING 'BDC_OKCODE' 'SU1'.
PERFORM bdc_screen USING 'SAPDF05X' '0731'.
CLEAR v_cont.
ENDIF.
ENDLOOP.
ELSE.
v_cont = v_cont + 1.
CONCATENATE 'RF05A-SEL01(' v_cont ')' INTO v_xpos.
PERFORM bdc_field USING v_xpos v_zuonr.
ENDIF.
endif.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_W
if not v_zuonr2 is initial.
v_cont = v_cont + 1.
concatenate 'RF05A-SEL01(' v_cont ')' into v_xpos.
perform bdc_field using v_xpos v_zuonr2.
endif.
* << Fim da inclusão
LOOP AT t_partidas.
IF NOT t_partidas-d_zuonr IS INITIAL AND v_liqop EQ 'X'
AND t_partidas-d_zuonr(4) = text-052.
v_cont = v_cont + 1.
CONCATENATE 'RF05A-SEL01(' v_cont ')' INTO v_xpos.
...
...
PERFORM bdc_field USING 'BDC_OKCODE' '=OMX'.
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-ABPOS'.
PERFORM bdc_field USING 'BDC_OKCODE' '=Z+'.
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-ABPOS'.
PERFORM bdc_field USING 'BDC_OKCODE' '=OSE'.
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-ABPOS'.
PERFORM bdc_field USING 'BDC_OKCODE' '=OSE'.
* >> Início da exclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_W
ENDIF.
* << Fim da exclusão
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING: 'BDC_OKCODE' '=DBR'.
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-ABPOS'.
PERFORM bdc_field USING 'BDC_OKCODE' '=Z+'.
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING: 'BDC_CURSOR' 'DF05B-PSDIF(01)',
'BDC_OKCODE' '=PI'.
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
IF t_dados-flag_nc EQ 'X'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F02
...
perform determina_ano using itab_zycbe033-dtdocto
/pws/zycbe001-bukrs
changing v_ano.
select single zuonr
from bseg
into v_zuonr
where bukrs = /pws/zycbe001-bukrs
and belnr = itab_zycbe033-belnr
and gjahr = v_ano
and buzei = c_002 .
* >> Início da inclusão: FORM BAIXA_CLIENTE_ACE
select zuonr from bseg into v_zuonr2
up to 1 rows
where bukrs = /pws/zycbe001-bukrs
and belnr = itab_zycbe033-belnr
and gjahr = v_ano.
endselect.
* << Fim da inclusão
endif.
if not /pws/zycbe005-j_1bbranch is initial.
perform verifica_pais_filial using itab_zycbt006-bukrs
/pws/zycbe005-j_1bbranch.
itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.
else.
perform local_negocio.
perform verifica_pais_filial using itab_zycbt006-bukrs
wa_t001w-j_1bbranch.
itab_zycbe033-brnch = wa_t001w-j_1bbranch.
...
...
else.
call function '/PWS/ZYCB_TRANSACAO_F_30_W'
exporting
v_modo = v_modo_bi
v_vinc_tot = v_vinc_tot
v_desc_rec = /pws/zycbe001-desc_receb
v_dp = v_dp
v_contasi = v_contas_iguais
v_liqop = 'X'
v_zuonr = v_zuonr
* >> Início da inclusão: FORM BAIXA_CLIENTE_ACE
v_zuonr2 = v_zuonr2
* << Fim da inclusão
tables
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_partidas = itab_partidas
exceptions
campo_em_branco = 1
periodo_fechado = 2
others = 3.
endif.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004TOP
...
data: v_taxa_liqand type /pws/zycbe033-kursf,
v_taxa_cliente type /pws/zycbe033-kursf,
v_reais_f2 type /pws/zycbt226-sld_exterior,
v_vlmext type /pws/zycbt226-sld_exterior,
v_sld_exterior type /pws/zycbt226-sld_exterior,
v_periodo_aberto(1) type c.
data: v_tpcontabil type /pws/zycbt169-tpcontabil,
v_tot_contrato type c,
v_tot_cliente type c,
v_zuonr type bseg-zuonr.
* >> Início da inclusão:
data: v_zuonr2 type bseg-zuonr.
* << Fim da inclusão
data: vg_flag type c.
data: v_check_flag_deduz type c.
data:
v_tpcontr like /pws/zycbt016-txtdesc,
v_bconegoc like lfa1-name1,
v_bcofinan like lfa1-name1.
data: wa_log type char4000,
wa_zycbt006_log like /pws/zycbt006,
wa_zycet048 like /pws/zycet048.
data: itab_zyglt100
...