Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Valores Mantidos no Exterior
Data/Hora da Publicação: 11/08/2008 00:00:00
Data/Hora Última Alteração: 18/02/2011 17:42:07
Descrição da Nota: VALORES MANTIDOS NO EXTERIOR - ANO FISCAL
Sintoma
Ao efetuar um valores mantidos no exterior, não esta encontrando taxa para o desmembramento do
cliente, devido a mesma estar parametrizada para vir da bkpf e a busca da bkpf não estar
considerando ano fiscal diferente.
Solução
Utilizar a função obtem_ano_contabil, para buscar o ano fiscal correto de acordo com a data de
laçamento do documento contábil, desta forma encontra a taxa e efetua o processo por completo.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 07124 Data: 11/08/2008 Hora: 16:54:37
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 07124
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00006
Agrupamento : 00060
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03912 - 00001 - 7.0 - 00002 - VALORES MANTIDOS EXTERIOR - AJUSTE DE PERFORMANCE BKPF
05581 - 00002 - 7.0 - 00004 - VALORES MANTIDOS NO EXTERIOR - ESTORNO - SÓ FAZ F-02, NÃO FAZ F-3
05970 - 00003 - 7.0 - 00004 - VALORES MANTIDOS NO EXTERIOR - TAXA DO ESTORNO
----------------------------------------------------------------------------------------------------
VALORES MANTIDOS NO EXTERIOR - ANO FISCAL
----------------------------------------------------------------------------------------------------
Palavras Chave:
VALORES MANTIDOS NO EXTERIOR - ANO FISCAL GJAHR BKPF
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB034F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034F01
...
FIELD 'FB03'.
IF sy-subrc EQ 0.
SET PARAMETER ID 'BLN' FIELD v_value.
GET CURSOR LINE v_index.
CHECK NOT v_index IS INITIAL.
v_index = tc_op-top_line + v_index - 1.
READ TABLE itab_zycbt226 INDEX v_index ASSIGNING <fs_zycbt226>.
IF sy-subrc = 0.
v_bukrs = <fs_zycbt226>-bukrs.
CHECK NOT v_bukrs IS INITIAL.
* >> Início da exclusão: FORM DRILL_DOWN
v_gjahr = <fs_zycbt226>-dtlancto(4).
* << Fim da exclusão
* >> Início da inclusão: FORM DRILL_DOWN
PERFORM determina_periodo_contabil
USING <fs_zycbt226>-bukrs
<fs_zycbt226>-dtlancto
CHANGING v_periodo
v_gjahr.
* << Fim da inclusão
CHECK NOT v_gjahr IS INITIAL.
SET PARAMETER ID 'BUK' FIELD v_bukrs.
SET PARAMETER ID 'GJR' FIELD v_gjahr.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDIF.
ELSE.
MESSAGE e261(sf) WITH 'FB03'.
ENDIF.
WHEN '/PWS/ZYCBE238-DOC_CONT'
OR '/PWS/ZYCBE238-DOC_DESM'
...
...
SET PARAMETER ID 'BLN' FIELD v_value.
GET CURSOR LINE v_index.
CHECK NOT v_index IS INITIAL.
v_index = tc_op-top_line + v_index - 1.
IF v_campo+0(13) EQ '/PWS/ZYCBE239'.
READ TABLE itab_contrato
INDEX v_index ASSIGNING <fs_contrato>.
CHECK <fs_contrato> IS ASSIGNED.
READ TABLE itab_zycbt226 ASSIGNING <fs_zycbt226>
WITH KEY nrseq = <fs_contrato>-nrseq.
* >> Início da exclusão: FORM DRILL_DOWN
v_gjahr = <fs_contrato>-dtdebito(4).
* << Fim da exclusão
* >> Início da inclusão: FORM DRILL_DOWN
PERFORM determina_periodo_contabil
USING <fs_zycbt226>-bukrs
<fs_contrato>-dtdebito
CHANGING v_periodo
v_gjahr.
* << Fim da inclusão
ELSE.
CASE sy-dynnr.
WHEN '0120'.
READ TABLE itab_disp_30 INDEX v_index ASSIGNING <fs_disp>.
WHEN '0131'.
READ TABLE itab_disp_70 INDEX v_index ASSIGNING <fs_disp>.
ENDCASE.
CHECK <fs_disp> IS ASSIGNED.
READ TABLE itab_zycbt226 ASSIGNING <fs_zycbt226>
WITH KEY nrseq = <fs_disp>-nrseq.
* >> Início da exclusão: FORM DRILL_DOWN
v_gjahr = <fs_disp>-dtlanc(4).
* << Fim da exclusão
* >> Início da inclusão: FORM DRILL_DOWN
PERFORM determina_periodo_contabil
USING <fs_zycbt226>-bukrs
<fs_disp>-dtlanc
CHANGING v_periodo
v_gjahr.
* << Fim da inclusão
ENDIF.
IF sy-subrc = 0.
v_bukrs = <fs_zycbt226>-bukrs.
CHECK NOT v_bukrs IS INITIAL.
CHECK NOT v_gjahr IS INITIAL.
SET PARAMETER ID 'BUK' FIELD v_bukrs.
SET PARAMETER ID 'GJR' FIELD v_gjahr.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDIF.
ELSE.
...
...
IF NOT itab_zycbt030[] IS INITIAL.
LOOP AT itab_zycbt030 INTO wa_zycbt030.
READ TABLE itab_zycbt017 INTO wa_zycbt017
WITH KEY nrinvoic = wa_zycbt030-nrinvoic
gsberf = wa_zycbt030-gsberf
nrparcf = wa_zycbt030-nrparcf.
IF sy-subrc = 0.
wa_zycbt030-bukrs = wa_zycbt017-bukrs.
ENDIF.
IF NOT wa_zycbt030-budat IS INITIAL.
* >> Início da exclusão: FORM SELECIONA_DADOS
wa_zycbt030-gjahr = wa_zycbt030-budat(4).
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
PERFORM determina_periodo_contabil
USING wa_zycbt030-bukrs
wa_zycbt030-budat
CHANGING v_periodo
wa_zycbt030-gjahr.
* << Fim da inclusão
ELSEIF NOT wa_zycbt030-budat_t IS INITIAL.
* >> Início da exclusão: FORM SELECIONA_DADOS
wa_zycbt030-gjahr = wa_zycbt030-budat_t(4).
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
PERFORM determina_periodo_contabil
USING wa_zycbt030-bukrs
wa_zycbt030-budat_t
CHANGING v_periodo
wa_zycbt030-gjahr.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FORM SELECIONA_DADOS
wa_zycbt030-gjahr = wa_zycbt030-dtbelnr(4).
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
PERFORM determina_periodo_contabil
USING wa_zycbt030-bukrs
wa_zycbt030-dtbelnr
CHANGING v_periodo
wa_zycbt030-gjahr.
* << Fim da inclusão
ENDIF.
MODIFY itab_zycbt030 FROM wa_zycbt030
TRANSPORTING bukrs gjahr
WHERE nrinvoic EQ wa_zycbt030-nrinvoic
AND gsberf EQ wa_zycbt030-gsberf
AND nrparcf EQ wa_zycbt030-nrparcf.
ENDLOOP.
SELECT *
FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE itab_bkpf
...
...
<fs_op>-bukrs
c_chave_oper
v_codeven
space
<fs_op>
wa_fat
CHANGING
wa_zycbe033.
IF <fs_op>-belnr_op2 IS INITIAL.
v_belnr = <fs_op>-belnr_op.
* >> Início da exclusão: FORM F02_REVERSA
v_gjahr = <fs_op>-dtlancto.
* << Fim da exclusão
* >> Início da inclusão: FORM F02_REVERSA
PERFORM determina_periodo_contabil
USING <fs_op>-bukrs
<fs_op>-dtlancto
CHANGING v_periodo
v_gjahr.
* << Fim da inclusão
ELSE.
v_belnr = <fs_op>-belnr_op2.
* >> Início da exclusão: FORM F02_REVERSA
v_gjahr = <fs_op>-dtlancto2.
* << Fim da exclusão
* >> Início da inclusão: FORM F02_REVERSA
PERFORM determina_periodo_contabil
USING <fs_op>-bukrs
<fs_op>-dtlancto2
CHANGING v_periodo
v_gjahr.
* << Fim da inclusão
ENDIF.
SELECT SINGLE kursf
FROM bkpf
INTO wa_zycbe033-kursf
WHERE belnr = v_belnr
AND gjahr = v_gjahr
AND bukrs = <fs_op>-bukrs.
IF sy-subrc NE 0.
PERFORM define_taxa_cambio
USING 'O'
...