Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Valores Mantidos no Exterior
Data/Hora da Publicação: 16/01/2008 00:00:00
Data/Hora Última Alteração: 10/03/2010 17:53:54
Descrição da Nota: VALORES MANTIDOS NO EXTERIOR - BUSCA CONTA CONTÁBIL
Sintoma
Aditivo na especificação dos Valores Mantidos no Exterior para alterar busca da conta contábil do
Banco ME nos lançamentos feitos na sub pasta "Contrato" da pasta "disponibilidade 70%". Ao invés de
buscar a conta diretamente da Tabela, busca a conta na ZYGL012. Para o caso da conta de débito e
crédito serem diferentes para o mesmo fornecedor banco C/C no exterior. Também será alterada a forma
de busca da conta na compensação.
Solução
Alterada include /PWS/MZYCB034F01 e include /PWS/MZYCB034TOP para que o programa também selecionasse
a conta de crédito parametrizada para o banco. Alterada função /PWS/ZYCB_TRANSACAO_F_30_P, para que
fizesse a seleção também pela conta de crédito.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05652 Data: 16/01/2008 Hora: 09:40:06
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05652
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00004
Agrupamento : 00030
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
VALORES MANTIDOS NO EXTERIOR - BUSCA CONTA CONTÁBIL
----------------------------------------------------------------------------------------------------
Palavras Chave:
VALORES MANTIDOS NO EXTERIOR - BUSCA CONTA CONTÁBIL
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCB_TRANSACAO_F_30_P
REPS /PWS/MZYCB034F01
REPS /PWS/MZYCB034TOP
REPT /PWS/SAPMZYCB034
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_P
FUNCTION /pws/zycb_transacao_f_30_p .
CONSTANTS:
c_vl_min TYPE p DECIMALS 2 VALUE '0.01',
c_vl_max TYPE p DECIMALS 2 VALUE '9999999999.99'.
DATA:
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_P
v_rept TYPE i,
v_debcred(1) TYPE c,
* << Fim da inclusão
v_tela2(4),
v_bldat(10),
v_budat(10),
v_valut(10),
v_kursf(9),
v_xpos(15),
v_campo(15),
v_campo2(15),
v_xpos_budat(15),
v_xpos_zuonr(15),
...
...
READ TABLE itab_oculto WITH KEY campo = 'COBL-FIPOS'
chave = v_lanc1.
IF sy-subrc NE 0.
PERFORM bdc_field USING 'COBL-FIPOS' t_dados-d_fipos.
ENDIF.
ENDIF.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.
ENDIF.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_P
CLEAR: v_rept, v_debcred.
IF NOT t_dados-c_newko IS INITIAL.
IF t_dados-d_newko = t_dados-c_newko.
v_rept = 1.
ELSE.
v_rept = 2.
ENDIF.
ELSE.
v_rept = 1.
ENDIF.
DO v_rept TIMES.
* << Fim da inclusão
WRITE /pws/zycbt089-num_selecao TO v_selecao.
IF v_selecao GT v_xpos_belnr .
SHIFT v_xpos_belnr LEFT DELETING LEADING '0'.
PERFORM bdc_screen USING 'SAPMF05A' '0710'.
CONCATENATE 'RF05A-XPOS1(' v_xpos_belnr ')' INTO v_xpos.
IF t_dados-d_newko1 IS INITIAL.
PERFORM bdc_field USING:
'RF05A-AGKON' t_dados-d_newko,
'RF05A-AGKOA' wa_tbsl-koart,
v_xpos 'X'.
...
...
v_xpos 'X'.
v_agkoa = 'D'.
ENDIF.
ENDIF.
PERFORM bdc_field USING: 'BDC_OKCODE' '=PA'.
ELSE.
SUBTRACT 1 FROM v_xpos_belnr.
SHIFT v_xpos_belnr LEFT DELETING LEADING '0'.
CONCATENATE 'RF05A-XPOS1(' v_selecao ')' INTO v_xpos.
PERFORM bdc_screen USING: 'SAPMF05A' '0710'.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_P
IF v_debcred = 'C'.
v_xpos_belnr = v_xpos_belnr + 1.
CONCATENATE 'RF05A-XPOS1(' v_xpos_belnr ')' INTO v_xpos.
PERFORM bdc_field USING v_xpos 'X'.
ENDIF.
* << Fim da inclusão
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
IF t_dados-d_newko1 IS INITIAL.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_P
IF v_rept = 2 AND v_debcred = 'C'.
PERFORM bdc_field USING:
'RF05A-AGKON' t_dados-c_newko,
'RF05A-AGKOA' wa_tbsl-koart,
v_xpos 'X'.
ELSE.
* << Fim da inclusão
PERFORM bdc_field USING:
'RF05A-AGKON' t_dados-d_newko,
'RF05A-AGKOA' wa_tbsl-koart,
v_xpos 'X'.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_P
ENDIF.
* << Fim da inclusão
IF NOT t_dados-umskz IS INITIAL.
PERFORM bdc_field USING:
'RF05A-AGUMS' t_dados-umskz.
...
...
v_agkoa = 'S'.
ELSE.
PERFORM bdc_field USING:
'RF05A-AGKON' t_dados-d_newko1,
'RF05A-AGKOA' 'D',
'RF05A-AGUMS' t_dados-agums,
v_xpos 'X'.
v_agkoa = 'D'.
ENDIF.
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_P
IF v_debcred <> 'C'.
* << Fim da inclusão
WHILE v_xpos_belnr > 10.
v_xpos_belnr = v_xpos_belnr - 10.
PERFORM bdc_screen USING 'SAPMF05A' '0608'.
PERFORM bdc_field USING 'BDC_OKCODE' 'P+'.
SHIFT v_xpos_belnr LEFT DELETING LEADING '0'.
ENDWHILE.
CONCATENATE 'RF05A-XPOS1(' v_xpos_belnr ')' INTO v_xpos.
PERFORM bdc_screen USING 'SAPMF05A' '0608'.
CONCATENATE 'RF05A-XPOS1(' v_xpos_belnr ')' INTO v_xpos.
PERFORM bdc_field USING:
v_xpos 'X',
'BDC_OKCODE' '/00'.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_P
ENDIF.
* << Fim da inclusão
ENDIF.
PERFORM bdc_screen USING 'SAPMF05A' '0731'.
PERFORM bdc_field USING: 'BDC_OKCODE' '/00',
'RF05A-SEL01(01)' t_dados-belnr.
v_cont = '01'.
LOOP AT t_doctos WHERE tcode = t_dados-tcode
AND tabela = t_dados-tabela
AND cpochv = t_dados-cpochv.
ADD 1 TO v_cont.
CONCATENATE 'RF05A-SEL01(' v_cont ')' INTO v_campo.
PERFORM bdc_field USING v_campo t_doctos-belnr.
IF v_cont = 5.
PERFORM bdc_screen USING 'SAPMF05A' '0731'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
CLEAR v_cont.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_P
IF v_rept = 2 AND v_debcred <> 'C'.
PERFORM bdc_screen USING 'SAPMF05A' '0731'.
PERFORM bdc_field USING 'BDC_OKCODE' '=SLK'.
ELSE.
* << Fim da inclusão
PERFORM bdc_screen USING 'SAPMF05A' '0731'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-SEL01(01)'.
PERFORM bdc_field USING 'BDC_OKCODE' '=PA'.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_P
ENDIF.
v_debcred = 'C'.
ENDDO.
* << Fim da inclusão
MOVE: t_dados-umskz TO v_umskz,
t_dados-newbs TO v_newbs,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034F01
...
ENDLOOP.
FREE p_wa_mensagem.
ENDIF.
ENDFORM.
FORM preenche_f02_contrato
USING p_disp LIKE LINE OF itab_disp_70
p_contrato LIKE LINE OF itab_contrato
p_zycbt011 TYPE /pws/zycbe011
p_cpochv TYPE /pws/zycbe033-cpochv
CHANGING p_zycbe033 LIKE LINE OF itab_zycbe033.
* >> Início da exclusão: FORM PREENCHE_F02_CONTRATO
DATA:
v_codaux TYPE /pws/zygle316-codaux1.
* << Fim da exclusão
p_zycbe033-tcode = c_f02.
p_zycbe033-tabela = c_zycbt239.
p_zycbe033-cpochv = p_cpochv.
p_zycbe033-bukrs = <fs_op>-bukrs.
p_zycbe033-budat = p_contrato-dtdebito.
p_zycbe033-bldat = p_zycbe033-budat.
p_zycbe033-bktxt = p_contrato-txtlanc.
p_zycbe033-waers = <fs_op>-waers.
p_zycbe033-gsber = <fs_op>-gsberf.
p_zycbe033-werks = <fs_op>-werks.
p_zycbe033-brnch = <fs_op>-j_1bbranch.
p_zycbe033-wrbtr = p_disp-vldisp.
p_zycbe033-kursf = p_contrato-kursf.
* >> Início da inclusão: FORM PREENCHE_F02_CONTRATO
CLEAR: v_codaux, v_codaux1, v_codaux2.
* << Fim da inclusão
v_codaux = p_contrato-bco_mi.
SHIFT v_codaux LEFT DELETING LEADING '0'.
* >> Início da inclusão: FORM PREENCHE_F02_CONTRATO
v_codaux1 = <fs_op>-bco_me.
SHIFT v_codaux1 LEFT DELETING LEADING '0'.
v_codaux2 = p_disp-waers.
* << Fim da inclusão
CASE p_contrato-tpcontr.
WHEN c_tp1.
PERFORM busca_conta_contabil
USING c_debito
<fs_op>-bukrs
'FBK'
v_codaux
space
space
CHANGING p_zycbe033-d_newko.
* >> Início da exclusão: FORM PREENCHE_F02_CONTRATO
p_zycbe033-c_newko = p_disp-conta_contabil.
* << Fim da exclusão
* >> Início da inclusão: FORM PREENCHE_F02_CONTRATO
PERFORM busca_conta_contabil
USING c_credito
<fs_op>-bukrs
'FBK'
v_codaux1
v_codaux2
space
CHANGING p_zycbe033-c_newko.
* << Fim da inclusão
WHEN c_tp4.
* >> Início da exclusão: FORM PREENCHE_F02_CONTRATO
p_zycbe033-d_newko = p_disp-conta_contabil.
* << Fim da exclusão
* >> Início da inclusão: FORM PREENCHE_F02_CONTRATO
PERFORM busca_conta_contabil
USING c_debito
<fs_op>-bukrs
'FBK'
v_codaux1
v_codaux2
space
CHANGING p_zycbe033-d_newko.
* << Fim da inclusão
PERFORM busca_conta_contabil
* >> Início da exclusão: FORM PREENCHE_F02_CONTRATO
USING c_debito
* << Fim da exclusão
* >> Início da inclusão: FORM PREENCHE_F02_CONTRATO
USING c_credito
* << Fim da inclusão
<fs_op>-bukrs
'FBK'
v_codaux
...
...
'Empresa'(006).
PERFORM verifica_campo_vazio USING p_zycbe033-waers
'WAERS'
'Moeda'(010).
PERFORM verifica_campo_vazio USING p_zycbe033-kursf
'KURSF'
'Taxa de Câmbio'(019).
PERFORM verifica_campo_vazio USING p_zycbe033-d_newko
'NEWKO'
'Conta Débito'(035).
* >> Início da inclusão: FORM PREENCHE_F02_CONTRATO
PERFORM verifica_campo_vazio USING p_zycbe033-c_newko
'NEWKO'
'Conta Crédito'(036).
* << Fim da inclusão
ENDFORM.
FORM busca_parametros
USING p_evento TYPE /pws/zycbt011-codeven
p_modulo
CHANGING p_zycbt011 TYPE /pws/zycbe011
p_zycbe033 LIKE LINE OF itab_zycbe033.
SELECT SINGLE * FROM /pws/zycbt011 INTO p_zycbt011
WHERE codeven = p_evento
AND codmod = p_modulo.
p_zycbe033-blart = p_zycbt011-blart.
...
...
p_zycbe033-bukrs = <fs_op>-bukrs.
p_zycbe033-budat = wa_contrato-dtdebito.
p_zycbe033-bldat = p_zycbe033-budat.
p_zycbe033-waers = <fs_op>-waers.
p_zycbe033-gsber = <fs_op>-gsberf.
p_zycbe033-werks = <fs_op>-werks.
p_zycbe033-brnch = <fs_op>-j_1bbranch.
p_zycbe033-wrbtr = p_disp-vldisp.
p_zycbe033-kursf = wa_contrato-kursf.
p_zycbe033-flag_nc = 'X'.
* >> Início da exclusão: FORM PREENCHE_F30_CLEARING_CONTRATO
p_zycbe033-d_newko = p_disp-conta_contabil.
* << Fim da exclusão
p_zycbe033-newbs = '50'.
* >> Início da inclusão: FORM PREENCHE_F30_CLEARING_CONTRATO
CLEAR: v_codaux, v_codaux1, v_codaux2.
v_codaux = wa_contrato-bco_mi.
SHIFT v_codaux LEFT DELETING LEADING '0'.
v_codaux1 = <fs_op>-bco_me.
SHIFT v_codaux1 LEFT DELETING LEADING '0'.
v_codaux2 = p_disp-waers.
CASE wa_contrato-tpcontr.
WHEN c_tp1.
PERFORM busca_conta_contabil
USING c_debito
<fs_op>-bukrs
'FBK'
v_codaux1
v_codaux2
space
CHANGING p_zycbe033-d_newko.
PERFORM busca_conta_contabil
USING c_credito
<fs_op>-bukrs
'FBK'
v_codaux1
v_codaux2
space
CHANGING p_zycbe033-c_newko.
WHEN c_tp4.
PERFORM busca_conta_contabil
USING c_debito
<fs_op>-bukrs
'FBK'
v_codaux1
v_codaux2
space
CHANGING p_zycbe033-d_newko.
PERFORM busca_conta_contabil
USING c_credito
<fs_op>-bukrs
'FBK'
v_codaux
space
space
CHANGING p_zycbe033-c_newko.
ENDCASE.
* << Fim da inclusão
LOOP AT p_itab_contrato INTO wa_contrato
WHERE nrseq = p_disp-nrseq
AND destino = p_disp-destino
AND dtdisp = p_disp-dtdisp.
wa_doctos-tcode = p_zycbe033-tcode.
wa_doctos-tabela = p_zycbe033-tabela.
wa_doctos-cpochv = p_zycbe033-cpochv.
wa_doctos-belnr = wa_contrato-doc_cont.
wa_doctos-dtdocto = wa_contrato-dtdebito.
APPEND wa_doctos TO itab_doctos.
...
...
'Empresa'(006).
PERFORM verifica_campo_vazio USING p_zycbe033-waers
'WAERS'
'Moeda'(010).
PERFORM verifica_campo_vazio USING p_zycbe033-kursf
'KURSF'
'Taxa de Câmbio'(019).
PERFORM verifica_campo_vazio USING p_zycbe033-d_newko
'NEWKO'
'Conta Débito'(035).
* >> Início da inclusão: FORM PREENCHE_F30_CLEARING_CONTRATO
PERFORM verifica_campo_vazio USING p_zycbe033-c_newko
'NEWKO'
'Conta Crédito'(036).
* << Fim da inclusão
ENDFORM.
FORM estorno_contrato
CHANGING p_contrato TYPE t_contrato.
DATA:
wa_zycbe033 LIKE LINE OF itab_zycbe033,
v_periodo TYPE frper,
v_ano TYPE gjahr,
v_periodo_fechado(1) TYPE c,
v_cpochv TYPE /pws/zycbe033-cpochv,
wa_mensagem TYPE t_mensagem.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034TOP
...
v_total_30 TYPE wrbtr,
v_total_70 TYPE wrbtr,
v_msg_previsto(74) TYPE c,
opt_origem_embarque(1) TYPE c,
opt_origem_pagantec(1) TYPE c,
opt_destino_30(1) TYPE c,
opt_destino_70(1) TYPE c,
v_mark(1) TYPE c,
v_icone TYPE icons-text,
v_tela_help TYPE sy-dynnr VALUE '0052'.
* >> Início da inclusão:
DATA:
v_codaux TYPE /pws/zygle316-codaux1,
v_codaux1 TYPE /pws/zygle316-codaux1,
v_codaux2 TYPE /pws/zygle316-codaux2.
* << Fim da inclusão
SELECTION-SCREEN BEGIN OF SCREEN 0001.
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-011.
SELECT-OPTIONS: s_bukrs FOR /pws/zycbe226-bukrs,
s_nrseq FOR /pws/zycbe226-nrseq,
s_invoic FOR /pws/zycbe226-nrinvoic
MATCHCODE OBJECT /pws/zycba275,
s_gsber FOR /pws/zycbe226-gsberf,
s_nrparc FOR /pws/zycbe226-nrparcf,
s_kunag FOR /pws/zycbe017-kunag,
s_dtincl FOR /pws/zycbe226-dtincl,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCB034
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 036
Texto: (13 caracteres)
"Conta Crédito"
Comprimento máximo: 13