Módulo: CÂMBIO IMPORTAÇÃO
Funcionalidade: Despesas
Data/Hora da Publicação: 25/04/2006 00:00:00
Data/Hora Última Alteração: 18/02/2011 09:38:40
Descrição da Nota: DESPESAS - PROBLEMAS COM ANO E PERÍODO CONTÁBIL
Sintoma
Ao salvar uma despesa, o programa informa que o período contábil está fechado, entretanto o mesmo
encontra-se aberto.
Solução
O programa passou a verificar o início do ano contábil e do período contábil através das tabelas
standard do SAP.
6.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 01243 Data: 25/04/2006 Hora: 13:14:53
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 01243
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00023
Agrupamento : 00111
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
DESPESAS - PROBLEMAS COM ANO E PERÍODO CONTÁBIL
----------------------------------------------------------------------------------------------------
Palavras Chave:
DESPESA FINANCEIRA IMPORTAÇÃO ANO PERÍODO CONTÁBIL
OBY6 - OX06
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCA_TRANSACAO_FB08
FUNC /PWS/ZYCA_TRANSACAO_F_63P
REPS /PWS/LZYCAGF2F01
REPS /PWS/MZYCB105I01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCA_TRANSACAO_FB08
...
v_transacao(4) type c,
v_mode type c,
v_update type c,
v_msgid like t100-arbgb,
v_date like T009B-BDATJ,
* >> Início da exclusão: FUNCTION /PWS/ZYCA_TRANSACAO_FB08
v_msgno like t100-msgnr.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCA_TRANSACAO_FB08
v_msgno LIKE t100-msgnr,
v_period TYPE frper.
* << Fim da inclusão
loop at t_dados.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = t_dados-bukrs
v_date = t_dados-budat
...
...
'BKPF-BUKRS' t_dados-bukrs,
'UF05A-STGRD' t_dados-stgrd,
'BDC_OKCODE' '=BU'.
endif.
if t_dados-budat <> '00000000'.
* >> Início da inclusão: FUNCTION /PWS/ZYCA_TRANSACAO_FB08
PERFORM determina_periodo
USING
t_dados-bukrs
t_dados-budat
CHANGING
v_period
v_date.
* << Fim da inclusão
write: t_dados-budat to v_data_lanc_char.
perform bdc_field using:
'BSIS-BUDAT' v_data_lanc_char,
* >> Início da exclusão: FUNCTION /PWS/ZYCA_TRANSACAO_FB08
'BSIS-MONAT' t_dados-budat+4(2).
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCA_TRANSACAO_FB08
'BSIS-MONAT' v_period+1(2).
* << Fim da inclusão
endif.
refresh itab_msg.
clear itab_msg.
v_transacao = 'FB08'.
v_update = 'S'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCA_TRANSACAO_F_63P
...
ENDIF.
WRITE: t_dados-bukrs TO v_bukrs,
t_dados-bldat TO v_data_doc_char,
t_dados-budat TO v_data_lanc_char,
t_dados-kursf TO v_kursf.
* >> Início da exclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_63P
v_monat = t_dados-budat+4(2).
v_gjahr = t_dados-budat+0(4).
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_63P
PERFORM determina_periodo
USING
t_dados-bukrs
t_dados-bldat
CHANGING
v_monat
v_gjahr.
SELECT SINGLE akont FROM lfb1
INTO v_konto
WHERE
lifnr EQ t_dados-agkon AND
bukrs EQ t_dados-bukrs.
* << Fim da inclusão
v_koart = 'K'.
PERFORM check_periodo USING v_koart
v_monat
v_bukrs
v_gjahr
v_konto
CHANGING v_data_lanc_char
v_ok.
* >> Início da exclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_63P
CONCATENATE '0' v_data_lanc_char+3(2) INTO v_monat.
MOVE v_data_lanc_char+6(4) TO v_gjahr.
* << Fim da exclusão
PERFORM bdc_screen USING 'SAPLF040' '0100'.
PERFORM bdc_field USING:
'BKPF-BLDAT' v_data_doc_char,
'BKPF-BLART' t_dados-blart,
'BKPF-BUKRS' t_dados-bukrs,
'BKPF-BUDAT' v_data_lanc_char,
* >> Início da exclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_63P
'BKPF-MONAT' t_dados-budat+4(2),
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_63P
'BKPF-MONAT' v_monat+1(2),
* << Fim da inclusão
'BKPF-WAERS' t_dados-waers,
'BKPF-KURSF' v_kursf,
'BKPF-XBLNR' t_dados-xblnr,
'BKPF-BKTXT' t_dados-bktxt,
'RF05V-NEWBS' '31'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCAGF2F01
...
p_itab_oculto-campo = 'BSEG-EBELP'.
p_itab_oculto-chave = 'C'.
APPEND p_itab_oculto.
ENDIF.
ENDFORM.
* >> Início da inclusão:
FORM determina_periodo
USING
value(p_bukrs) TYPE bukrs
value(p_data) TYPE d
CHANGING
p_period TYPE frper
p_year TYPE bdatj.
DATA:
v_periv TYPE periv.
SELECT SINGLE periv
FROM t001
INTO v_periv
WHERE bukrs EQ p_bukrs.
CALL FUNCTION 'DETERMINE_PERIOD'
EXPORTING
date = p_data
version = v_periv
IMPORTING
period = p_period
year = p_year
EXCEPTIONS
period_in_not_valid = 1
period_not_assigned = 2
version_undefined = 3
OTHERS = 4.
IF sy-subrc EQ 0.
ENDIF.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB105I01
...
MOVE wa_zycbe118_aux TO /pws/zycbe118.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE.
MODULE user_command_0101 INPUT.
* >> Início da inclusão: MODULE USER_COMMAND_0101
DATA:
v_data TYPE d,
v_periv TYPE t001-periv.
* << Fim da inclusão
CASE sy-ucomm.
WHEN 'CS'.
GET CURSOR FIELD v_campo VALUE v_valor.
IF v_campo EQ '/PWS/ZYCBE118-BELNR_P' OR
v_campo EQ '/PWS/ZYCBE118-BELNRCOMP' OR
...
...
NOT /pws/zycbt031-dtboleto IS INITIAL.
i_belnr = v_valor.
i_bukrs = /pws/zycbt031-bukrs.
IF /pws/zycbe118-frpagto = 'C' AND
v_campo EQ '/PWS/ZYCBE118-BELNRDESP'.
* >> Início da exclusão: MODULE USER_COMMAND_0101
i_gjahr = wa_zycbt118-dtincl(4).
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0101
v_data = wa_zycbt118-dtincl.
* << Fim da inclusão
ELSE.
SELECT SINGLE * FROM /pws/zycbt134 INTO /pws/zycbt134
WHERE nrseq = /pws/zycbt031-nrseq.
IF sy-subrc = 0.
* >> Início da exclusão: MODULE USER_COMMAND_0101
i_gjahr = /pws/zycbt134-dtlanc(4).
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0101
v_data = /pws/zycbt134-dtlanc.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: MODULE USER_COMMAND_0101
i_gjahr = /pws/zycbe118-dtpagto(4).
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0101
v_data = /pws/zycbe118-dtpagto.
* << Fim da inclusão
ENDIF.
ENDIF.
* >> Início da exclusão: MODULE USER_COMMAND_0101
SET PARAMETER ID 'BUK' FIELD i_bukrs.
SET PARAMETER ID 'BLN' FIELD i_belnr.
SET PARAMETER ID 'GJR' FIELD i_gjahr.
AUTHORITY-CHECK OBJECT 'S_TCODE'
ID 'TCD' FIELD 'FB03'.
IF sy-subrc EQ 0.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
* << Fim da exclusão
ELSE.
* >> Início da exclusão: MODULE USER_COMMAND_0101
MESSAGE e261(sf) WITH 'FB03'.
ENDIF.
ELSE.
* << Fim da exclusão
i_belnr = v_valor.
i_bukrs = /pws/zycbe118-bukrs.
IF /pws/zycbe118-frpagto = 'C' AND
v_campo EQ '/PWS/ZYCBE118-BELNRDESP'.
* >> Início da exclusão: MODULE USER_COMMAND_0101
i_gjahr = wa_zycbt118-dtincl(4).
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0101
v_data = wa_zycbt118-dtincl.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: MODULE USER_COMMAND_0101
i_gjahr = /pws/zycbe118-dtpagto(4).
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0101
v_data = /pws/zycbe118-dtpagto.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: MODULE USER_COMMAND_0101
ENDIF.
SELECT SINGLE periv
FROM t001
INTO v_periv
WHERE bukrs EQ i_bukrs.
CALL FUNCTION 'DETERMINE_PERIOD'
EXPORTING
date = v_data
version = v_periv
IMPORTING
year = i_gjahr
EXCEPTIONS
period_in_not_valid = 1
period_not_assigned = 2
version_undefined = 3
OTHERS = 4.
IF sy-subrc NE 0.
ENDIF.
* << Fim da inclusão
SET PARAMETER ID 'BUK' FIELD i_bukrs.
SET PARAMETER ID 'BLN' FIELD i_belnr.
SET PARAMETER ID 'GJR' FIELD i_gjahr.
AUTHORITY-CHECK OBJECT 'S_TCODE'
ID 'TCD' FIELD 'FB03'.
IF sy-subrc EQ 0.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ELSE.
MESSAGE e261(sf) WITH 'FB03'.
* >> Início da exclusão: MODULE USER_COMMAND_0101
ENDIF.
* << Fim da exclusão
ENDIF.
ENDIF.
ENDIF.
ENDCASE.
ENDMODULE.
...