CE PLUS - Nota 001238

Módulo: CÂMBIO IMPORTAÇÃO

Funcionalidade: Associação

Data/Hora da Publicação: 24/04/2006 00:00:00

Data/Hora Última Alteração: 18/02/2011 09:30:51

Descrição da Nota: ASSOCIAÇÃO FATURAS EM PERÍODO FECHADO - ANO FISCAL

Sintoma

Ao tentar salvar uma Associação para um determinado Pagamento Antecipado o programa informa que o

período contábil esta fechado, entretanto ao verificar na OB52 o período contábil encontra-se

aberto. No momento que o programa verifica se o período contábil esta aberto ou fechado ele se

perde e verifica com o período incorreto. O programa verifica se o período 04 esta em aberto e

deveria esta verificando com o período 08, devido o ano fiscal ser diferente . O Ano fiscal

começa em Setembro, por isso o período em que se encontra é o período 08.

 

 

 

Solução

Antes de mapear o mês na F-51 e FB08, verificar pela função do SAP qual é o período contábil da data

de lançamento. Após isso fazer a consistência se o período encontra-se aberto.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

ASSOCIAÇÃO - TRATAMENTO PARA A DATA CONFORME PARAMETRIZAÇÃO POR USUÁRIO

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 01238 Data: 24/04/2006 Hora: 17:00:40

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 01238

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00023

Agrupamento              : 00110

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

00798  - 00001 - 6.0    - 00023  - ASSOCIAÇÃO - TRATAMENTO PARA A DATA CONFORME PARAMETRIZAÇÃO POR U

----------------------------------------------------------------------------------------------------

ASSOCIAÇÃO FATURAS EM PERÍODO FECHADO - ANO FISCAL

----------------------------------------------------------------------------------------------------

Palavras Chave:

ASSOCIAÇÃO FATURAS EM PERÍODO FECHADO ANO FISCAL

OBY6 OX06

----------------------------------------------------------------------------------------------------

Objetos da nota:

FUNC /PWS/ZYCM_TRANSACAO_FB08

FUNC /PWS/ZYCM_TRANSACAO_F_51N

FUNC /PWS/ZYCM_TRANSACAO_F_51O

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em FUNC /PWS/ZYCM_TRANSACAO_FB08

 

...

 

* Variáveis

  DATA:

    v_data_lanc_char(10) TYPE c,

    v_nrmsg              TYPE i VALUE 0,

    v_transacao(4)       TYPE c,

    v_mode               TYPE c,

    v_update             TYPE c,

    v_msgid              LIKE t100-arbgb,

    v_date               LIKE t009b-bdatj, "ano Contábil

    v_msgno              LIKE t100-msgnr,

* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_FB08

    v_monat              LIKE t001b-frpe1.

* << Fim da inclusão

 

...

 

             'UF05A-STGRD' t_dados-stgrd,              "Motivo estorno

             'BDC_OKCODE'  '=BU'.

    ENDIF.

 

*   Se o período do documento a ser estornado esta fechado, passa a data

*   do dia que sendo executado o estorno, pois estará aberto

    IF t_dados-budat <> '00000000'.

      IF v_datum <> '00000000'.

        WRITE: v_datum TO v_data_lanc_char.

* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_FB08

        v_data = v_datum.

* << Fim da inclusão

      ELSE.

        WRITE: t_dados-budat TO v_data_lanc_char.

* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_FB08

        v_data = t_dados-budat.

* << Fim da inclusão

      ENDIF.

 

* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_FB08

      select single periv from t001 into t001-periv

                          where bukrs = t_dados-bukrs.

      CALL FUNCTION 'DETERMINE_PERIOD'

           EXPORTING

                date                = v_data

                version             = t001-periv

           IMPORTING

                period              = v_monat

           EXCEPTIONS

                period_in_not_valid = 1

                period_not_assigned = 2

                version_undefined   = 3

                OTHERS              = 4.

* << Fim da inclusão

 

      PERFORM bdc_field  USING:

            'BSIS-BUDAT'  v_data_lanc_char,            "Data lançamento

*         Chamado 285378 - Renato Mendes - 31.01.2006 - Inicio

*           'BSIS-MONAT'  v_data_lanc_char+3(2).       "Período contábil

* >> Início da exclusão: FUNCTION /PWS/ZYCM_TRANSACAO_FB08

*           'BSIS-MONAT'  t_dados-budat+4(2).          "Período contábil

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_FB08

            'BSIS-MONAT'  v_monat+1(2).                "Período contábil

* << Fim da inclusão

*         Chamado 285378 - Renato Mendes - 31.01.2006 - Fim

    ENDIF.

 

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em FUNC /PWS/ZYCM_TRANSACAO_F_51N

 

...

           t_dados-bldat TO v_data_doc_char,

           t_dados-budat TO v_data_lanc_char,

           t_dados-budat TO v_dtlanc_char,

           t_dados-zfbdt TO v_dtvencto_char,

           t_dados-kursf TO v_kursf.

* >> Início da exclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_51N

    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/ZYCM_TRANSACAO_F_51N

    SELECT SINGLE periv FROM t001 INTO t001-periv

                        where bukrs = t_dados-bukrs.

    CALL FUNCTION 'DETERMINE_PERIOD'

         EXPORTING

              date                = t_dados-budat

              version             = t001-periv

         IMPORTING

              period              = v_monat

              year                = v_gjahr

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

* << Fim da inclusão

    v_koart = '+'.

    PERFORM check_periodo USING    v_koart

                                   v_monat

                                   v_bukrs

                                   v_gjahr

...

 

...

      ELSE.

        CONCATENATE v_data_lanc_char+6(4) v_data_lanc_char(2)

                    v_data_lanc_char+3(2) INTO t_dados-budat.

      ENDIF.

      MODIFY t_dados.

* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_51N

      CALL FUNCTION 'DETERMINE_PERIOD'

           EXPORTING

                date                = t_dados-budat

                version             = t001-periv

           IMPORTING

                period              = v_monat

                year                = v_gjahr

           EXCEPTIONS

                period_in_not_valid = 1

                period_not_assigned = 2

                version_undefined   = 3

                OTHERS              = 4.

* << Fim da inclusão

    ENDIF.

* >> Início da exclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_51N

    MOVE t_dados-budat(4) TO v_gjahr.

* << Fim da exclusão

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    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/ZYCM_TRANSACAO_F_51N

           'BKPF-MONAT'  t_dados-budat+4(2),

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_51N

           'BKPF-MONAT'  v_monat+1(2),

* << Fim da inclusão

           'BKPF-WAERS'  t_dados-waers,

           'BKPF-KURSF'  v_kursf,

           'BKPF-WWERT'  v_data_conv_char,

           'BKPF-BVORG'  t_dados-bvorg,

           'BKPF-BKTXT'  t_dados-bktxt,

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em FUNC /PWS/ZYCM_TRANSACAO_F_51O

 

...

           t_dados-budat   TO v_budat,

           t_dados-budat   TO v_budat_ant,

           t_dados-kursf   TO v_kursf,

           t_dados-wrbtr   TO v_wrbtr CURRENCY t_dados-waers,

           t_dados-bukrs   TO v_bukrs.

* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_51O

    SELECT SINGLE periv FROM t001 INTO t001-periv

                        where bukrs = t_dados-bukrs.

    CALL FUNCTION 'DETERMINE_PERIOD'

         EXPORTING

              date                = t_dados-budat

              version             = t001-periv

         IMPORTING

              period              = v_monat

              year                = v_gjahr

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

* << Fim da inclusão

* >> Início da exclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_51O

    v_monat = t_dados-budat+4(2).

    v_gjahr = v_date.

* << Fim da exclusão

    v_koart = '+'.

    PERFORM check_periodo USING    v_koart

                                   v_monat

                                   v_bukrs

                                   v_gjahr

                          CHANGING v_budat

                                   v_ok.

* >> Início da exclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_51O

    CONCATENATE '0' v_budat+3(2) INTO v_monat.

    MOVE v_budat+6(4) TO v_gjahr.

* << Fim da exclusão

    IF v_budat NE v_budat_ant.

      SELECT SINGLE datfm FROM usr01 INTO usr01-datfm

                    WHERE bname = sy-uname.

      IF usr01-datfm = 1 OR sy-subrc NE 0.

        CONCATENATE v_budat+6(4) v_budat+3(2) v_budat(2)

                    INTO t_dados-budat.

      ELSE.

        CONCATENATE v_budat+6(4) v_budat(2) v_budat+3(2)

                    INTO t_dados-budat.

      ENDIF.

* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_51O

      CALL FUNCTION 'DETERMINE_PERIOD'

           EXPORTING

                date                = t_dados-budat

                version             = t001-periv

           IMPORTING

                period              = v_monat

           EXCEPTIONS

                period_in_not_valid = 1

                period_not_assigned = 2

                version_undefined   = 3

                OTHERS              = 4.

* << Fim da inclusão

    ENDIF.

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  v_bukrs,

            'BKPF-BUDAT'  v_budat,

* >> Início da exclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_51O

            'BKPF-MONAT'  t_dados-budat+4(2),

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCM_TRANSACAO_F_51O

            'BKPF-MONAT'  v_monat+1(2),

* << Fim da inclusão

            'BKPF-WAERS'  t_dados-waers,

            'BKPF-KURSF'  v_kursf,

            'BKPF-BKTXT'  t_dados-bktxt,

            'RF05A-AUGTX' t_dados-augtx,

            'BDC_OKCODE'  '=SL'.

...