CE PLUS - Nota 001243

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.

 

Versões Tratadas

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.

...