CE PLUS - Nota 007790

Módulo: CÂMBIO IMPORTAÇÃO

Funcionalidade: Pagamento Antecipado

Data/Hora da Publicação: 16/12/2008 00:00:00

Data/Hora Última Alteração: 18/02/2011 10:11:25

Descrição da Nota: COMPLEMENTO DO BOLETO - CONTABILIZAÇÃO-PERIODO/ANO FISCAL

Sintoma

erro ao selecionar o periodo e o ano fiscal na hora da contabilização do programa do complemento do

boleto de pagto antecipado

 

 

Solução

incluir funçoes para verificar e trazer o periodo e ano fiscal corretos

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

TRADUÇÃO

COMPLEMENTO DO BOLETO - F-51 DATA EM FORMATO AMERICANO

LIQUIDAÇÃO - DATA OBRIGATÓRIA COM PERIODO FECHADO

EMPRESTIMO - PROBLEMA COM OS CAMPOS DE PERIODO E ANO FISCAL

COMPLEMENTO DO BOLETO - REMESSAS AGRUPADAS-IMPOSTOS - F-51 - ATRIBUIÇÃO

Informações Complementares

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

Nota Número 07790 Data: 16/12/2008 Hora: 14:56:54

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

 

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

Nota Número              : 07790

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00008

Agrupamento              : 00077

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

Referência às notas relacionadas:

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

 

02155  - 00005 - 6.0    - 00025  - TRADUÇÃO

04823  - 00004 - 7.0    - 00003  - COMPLEMENTO DO BOLETO - F-51 DATA EM FORMATO AMERICANO

05287  - 00003 - 7.0    - 00003  - COMPLEMENTO DO BOLETO - REMESSAS AGRUPADAS-IMPOSTOS - F-51 - ATRI

06031  - 00002 - 7.0    - 00004  - LIQUIDAÇÃO - DATA OBRIGATÓRIA COM PERIODO FECHADO

07783  - 00001 - 7.0    - 00008  - EMPRESTIMO - PROBLEMA COM OS CAMPOS DE PERIODO E ANO FISCAL

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

COMPLEMENTO DO BOLETO - CONTABILIZAÇÃO-PERIODO/ANO FISCAL

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

Palavras Chave:

COMPLEMENTO DO BOLETO - CONTABILIZAÇÃO-PERIODO/ANO FISCAL

PROBLEMA COM OS CAMPOS DE PERIODO E ANO FISCAL

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

Objetos da nota:

FUNC /PWS/ZYCA_TRANSACAO_FB02

FUNC /PWS/ZYGL_TRANSACAO_F_51J

FUNC /PWS/ZYGL_TRANSACAO_F_51K

REPS /PWS/LZYGLGF2F01

 

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

Modificações efetuadas em FUNC /PWS/ZYCA_TRANSACAO_FB02

 

...

    v_newko(10)          TYPE c,

    v_newko_aux(10)      TYPE c,

    v_conta              LIKE lfb1-akont,

    v_tamanho(2)         TYPE n,

    v_string_credito     LIKE tbsl-faus1,

    v_nrmsg              TYPE i VALUE 0,

    v_transacao(4)       TYPE c,

    v_mode               TYPE c,

    v_update             TYPE c,

    v_msgid              LIKE t100-arbgb,

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

    v_date               LIKE t009b-bdatj,

* << Fim da inclusão

    v_msgno              LIKE t100-msgnr.

  LOOP AT t_dados.

    CHECK t_dados-tcode = 'FB02'.

    IF ( t_dados-bukrs = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'RF05L-BUKRS'.

      t_campo-descricao = text-021.

      APPEND t_campo.

      RAISE campo_em_branco.

    ENDIF.

...

 

...

    PERFORM determina_string USING t_dados-newbs

                                   t_dados-bukrs

                                   v_conta

                          CHANGING v_string_credito.

    CLEAR   itab_oculto.

    REFRESH itab_oculto.

    PERFORM trata_string_credito TABLES t_dados

                                        t_campo

                                        itab_oculto

                                  USING v_string_credito.

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

    CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

      EXPORTING

        v_bukrs                      = t_dados-bukrs

        v_date                       = t_dados-gjahs

     IMPORTING

        v_year                       = v_date

     EXCEPTIONS

        variante_de_exercicio  = 1

        data_nao_encontrada    = 2

        empresa_nao_encontrada = 3

        period_in_not_valid    = 4

        period_not_assigned    = 5

        version_undefined      = 6

        OTHERS                 = 7.

* << Fim da inclusão

    PERFORM bdc_screen USING: 'SAPMF05L'     '0100'.

    PERFORM bdc_field  USING: 'BDC_OKCODE'   '/00',

                              'RF05L-BELNR'  t_dados-belnr,

                              'RF05L-BUKRS'  t_dados-bukrs,

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

                              'RF05L-GJAHR'  t_dados-gjahs(4).

* << Fim da exclusão

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

                              'RF05L-GJAHR'  v_date.

* << Fim da inclusão

    PERFORM bdc_screen USING: 'SAPMF05L'     '0700'.

    PERFORM bdc_field  USING: 'BDC_CURSOR'   'RF05L-ANZDT(01)',

                              'BDC_OKCODE'   '=PK'.

    IF t_dados-newbs = '31'.

      PERFORM bdc_screen USING:  'SAPMF05L'   '0302'.

      READ TABLE itab_oculto WITH KEY campo = 'BSEG-ZFBDT' chave = 'C'.

      IF sy-subrc NE 0 AND NOT v_zfbdt IS INITIAL.

        PERFORM bdc_field USING: 'BSEG-ZFBDT'  v_zfbdt.

      ENDIF.

      PERFORM bdc_field USING:   'BDC_OKCODE'  '=AE'.

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYGL_TRANSACAO_F_51J

 

...

    v_data_val_char(10)  TYPE c,

    v_pos_awkey          TYPE i,

    v_awkey              LIKE bkpf-awkey,

    v_campo2(15),

    v_xpos_budat(14),

    v_dtdocto(10),

    v_xpos_zuonr(14),

    v_xpos_comp(15),

    v_selecao(2)         TYPE n,

    v_xpos_belnr(2)      TYPE n,

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

    v_ano               LIKE t009b-bdatj,

* << Fim da inclusão

    v_reg                TYPE i.

  DATA: itab_t041t     LIKE t041t OCCURS 0 WITH HEADER LINE,

        wa_zycbt089    LIKE /pws/zycbt089,

        t_zycbt036_aux LIKE t_zycbt036 OCCURS 0 WITH HEADER LINE.

  SELECT SINGLE selps FROM t021r

    INTO  v_xpos1

    WHERE event = 'SL-AG'

      AND feldn = 'BELNR'.

  ADD 1 TO v_xpos1.

  SHIFT v_xpos1 LEFT DELETING LEADING  '0'.

...

 

...

      RAISE campo_em_branco.

    ENDIF.

    WRITE: t_dados-bldat   TO v_bldat,

           t_dados-budat   TO v_budat,

           t_dados-kursf   TO v_kursf,

           t_dados-wrbtr   TO v_wrbtr CURRENCY t_dados-waers,

           t_dados-dmbtr   TO v_dmbtr CURRENCY 'X',

           t_dados-bukrs   TO v_bukrs.

    v_monat = t_dados-budat+4(2).

    v_gjahr = t_dados-budat+0(4).

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

      PERFORM determina_periodo USING t_dados-budat

                                      t_dados-bukrs

                                CHANGING v_monat.

        PERFORM determina_ano USING t_dados-budat

                                    t_dados-bukrs

                           CHANGING v_gjahr.

* << Fim da inclusão

    v_koart = 'K'.

    PERFORM check_periodo USING    v_koart

                                   v_monat

                                   v_bukrs

                                   v_gjahr

                          CHANGING v_budat

                                   v_ok.

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

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

    MOVE v_budat+6(4) TO v_gjahr.

* << Fim da exclusão

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

            'BKPF-MONAT'  v_budat+3(2),

* << Fim da exclusão

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

            '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,

            'RF05A-AUGTX' t_dados-augtx,

            'BDC_OKCODE'  '=SL'.

    WRITE wa_zycbt089-num_selecao TO v_selecao.

    SELECT SINGLE selps FROM t021r

      INTO  v_xpos_belnr

      WHERE event = 'SL-AG'

...

 

...

          PERFORM bdc_field  USING 'BDC_OKCODE'  'P+'.

        ENDDO.

        PERFORM bdc_screen USING 'SAPDF05X'   '2000'.

        PERFORM bdc_field USING 'BDC_CURSOR'  v_xpos_awkey.

        PERFORM bdc_field  USING v_xpos_awkey 'X'.

        PERFORM bdc_field  USING 'BDC_OKCODE'  '=GO'.

        PERFORM bdc_screen USING 'SAPDF05X'   '0731'.

        PERFORM bdc_field USING 'BDC_CURSOR'  'RF05A-SEL01(01)'.

        CLEAR v_cont.

        CLEAR v_awkey.

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

    PERFORM determina_ano USING t_dados-dtdocto

                                t_dados-bukrs

                          CHANGING v_ano.

* << Fim da inclusão

        SELECT SINGLE awkey

               FROM bkpf

               INTO v_awkey

               WHERE belnr = t_dados-belnr AND

                     bukrs = t_dados-bukrs AND

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

                     gjahr = t_dados-dtdocto(4).

* << Fim da exclusão

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

                     gjahr = v_ano.

* << Fim da inclusão

        ADD 1 TO v_cont.

        CONCATENATE 'RF05A-SEL01(' v_cont ')' INTO v_campo.

        CONCATENATE 'RF05A-SEL02(' v_cont ')' INTO v_campo2.

        PERFORM bdc_field USING v_campo  v_awkey.

        PERFORM bdc_field USING v_campo2 v_awkey.

        LOOP AT t_zycbt036 WHERE tcode  = t_dados-tcode

                             AND tabela = t_dados-tabela

                             AND cpochv = t_dados-cpochv.

          CLEAR v_awkey.

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

    PERFORM determina_ano USING t_zycbt036-dtdocto

                                t_dados-bukrs

                          CHANGING v_ano.

* << Fim da inclusão

          SELECT SINGLE awkey

                 FROM bkpf

                 INTO v_awkey

                 WHERE belnr = t_zycbt036-belnr AND

                       bukrs = t_dados-bukrs  AND

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

                       gjahr = t_zycbt036-dtdocto(4).

* << Fim da exclusão

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

                       gjahr = v_ano.

* << Fim da inclusão

          ADD 1 TO v_cont.

          CONCATENATE 'RF05A-SEL01(' v_cont ')' INTO v_campo.

          CONCATENATE 'RF05A-SEL02(' v_cont ')' INTO v_campo2.

          PERFORM bdc_field USING v_campo  v_awkey.

          PERFORM bdc_field USING v_campo2 v_awkey.

          IF v_cont = 5.

            PERFORM bdc_field  USING 'BDC_OKCODE' '=SU1'.

            PERFORM bdc_screen USING 'SAPDF05X'   '0731'.

            PERFORM bdc_field USING 'BDC_CURSOR'  'RF05A-SEL01(01)'.

            CLEAR v_cont.

          ENDIF.

        ENDLOOP.

        LOOP AT t_doctos WHERE tcode  = t_dados-tcode

                           AND tabela = t_dados-tabela

                           AND cpochv = t_dados-cpochv.

          CLEAR v_awkey.

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

    PERFORM determina_ano USING t_dados-dtdocto

                                t_dados-bukrs

                          CHANGING v_ano.

* << Fim da inclusão

          SELECT SINGLE awkey

                 FROM bkpf

                 INTO v_awkey

                 WHERE belnr = t_doctos-belnr AND

                       bukrs = t_dados-bukrs  AND

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

                       gjahr = t_doctos-dtdocto(4).

* << Fim da exclusão

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

                       gjahr = v_ano.

* << Fim da inclusão

          ADD 1 TO v_cont.

          CONCATENATE 'RF05A-SEL01(' v_cont ')' INTO v_campo.

          CONCATENATE 'RF05A-SEL02(' v_cont ')' INTO v_campo2.

          PERFORM bdc_field USING v_campo  v_awkey.

          PERFORM bdc_field USING v_campo2 v_awkey.

          IF v_cont = 5.

            PERFORM bdc_field  USING 'BDC_OKCODE' '=SU1'.

            PERFORM bdc_screen USING 'SAPDF05X'   '0731'.

            PERFORM bdc_field USING 'BDC_CURSOR'  'RF05A-SEL01(01)'.

            CLEAR v_cont.

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYGL_TRANSACAO_F_51K

 

...

      t_campo-descricao = text-027.

      APPEND t_campo.

      RAISE campo_em_branco.

    ENDIF.

    WRITE: t_dados-bldat   TO v_bldat,

           t_dados-budat   TO v_budat,

           t_dados-kursf   TO v_kursf,

           t_dados-wrbtr   TO v_wrbtr CURRENCY t_dados-waers,

           t_dados-dmbtr   TO v_dmbtr CURRENCY 'X',

           t_dados-bukrs   TO v_bukrs.

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

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

      PERFORM determina_periodo USING t_dados-budat

                                      t_dados-bukrs

                                CHANGING v_monat.

        PERFORM determina_ano USING t_dados-budat

                                    t_dados-bukrs

                           CHANGING v_gjahr.

* << Fim da inclusão

    v_koart = 'K'.

    PERFORM check_periodo USING    v_koart

                                   v_monat

                                   v_bukrs

                                   v_gjahr

                          CHANGING v_budat

                                   v_ok.

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

    IF v_budat+8(1) EQ ' '.

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

      MOVE v_budat+4(4) TO v_gjahr.

    ELSE.

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

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

      ELSE.

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

      ENDIF.

      MOVE v_budat+6(4) TO v_gjahr.

    ENDIF.

* << Fim da exclusão

    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,

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

            'BKPF-WAERS'  t_dados-waers,

            'BKPF-KURSF'  v_kursf,

            'BKPF-XBLNR'  t_dados-xblnr,

            'BKPF-BKTXT'  t_dados-bktxt,

            'RF05A-AUGTX' t_dados-augtx,

            'RF05A-NEWKO' t_dados-agkon,

            'RF05A-NEWBS' '40'.

    PERFORM determina_string USING v_chave_debito

                                   t_dados-bukrs

                                   t_dados-d_newko

...

 

 

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

Modificações efetuadas em REPS /PWS/LZYGLGF2F01

 

...

  ENDIF.

ENDFORM.

FORM check_periodo USING    value(p_koart)

                            value(p_monat)

                            value(p_bukrs)

                            value(p_gjahr)

                   CHANGING value(p_novadata)

                            value(p_ok).

  DATA: v_resposta(1),

        v_novadata LIKE spop-varvalue1.

* >> Início da inclusão: FORM CHECK_PERIODO

  DATA: v_budat TYPE bkpf-budat,

        v_periv(2).

* << Fim da inclusão

  v_novadata = p_novadata.

* >> Início da inclusão: FORM CHECK_PERIODO

    WHILE p_ok <> 'S'.

* << Fim da inclusão

  CALL FUNCTION 'FI_PERIOD_CHECK'

       EXPORTING

            i_bukrs          = p_bukrs

            i_gjahr          = p_gjahr

            i_koart          = p_koart

            i_monat          = p_monat

       EXCEPTIONS

            error_period     = 1

            error_period_acc = 2

            OTHERS           = 3.

  IF sy-subrc <> 0.

    PERFORM entrar_nova_data USING v_resposta v_novadata.

    IF v_resposta = 'A'.

      RAISE periodo_fechado.

* >> Início da inclusão: FORM CHECK_PERIODO

     else.

        SELECT SINGLE datfm FROM usr01 INTO usr01-datfm

                      WHERE bname = sy-uname.

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

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

                      v_novadata(2)

                      INTO v_budat.

        ELSEIF usr01-datfm = 2 OR

               usr01-datfm = 3.

          CONCATENATE v_novadata+6(4) v_novadata(2)

                      v_novadata+3(2)

                      INTO v_budat.

        ELSEIF usr01-datfm > 3.

          CONCATENATE v_novadata(4) v_novadata+5(2)

                      v_novadata+8(2)

                      INTO v_budat.

        ENDIF.

        CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

             EXPORTING

                  v_bukrs                = p_bukrs

                  v_date                 = v_budat

             IMPORTING

                  v_year                 = p_gjahr

             EXCEPTIONS

                  variante_de_exercicio  = 1

                  data_nao_encontrada    = 2

                  empresa_nao_encontrada = 3

                  period_in_not_valid    = 4

                  period_not_assigned    = 5

                  version_undefined      = 6

                  OTHERS                 = 7.

        SELECT SINGLE periv FROM t001

                     INTO v_periv

                     WHERE bukrs EQ p_bukrs.

        CALL FUNCTION 'DETERMINE_PERIOD'

             EXPORTING

                  date                = v_budat

                  version             = v_periv

             IMPORTING

                  period              = p_monat

             EXCEPTIONS

                  period_in_not_valid = 1

                  period_not_assigned = 2

                  version_undefined   = 3

                  OTHERS              = 4.

* << Fim da inclusão

    ENDIF.

  ELSE.

    p_ok = 'S'.

* >> Início da inclusão: FORM CHECK_PERIODO

      SELECT SINGLE datfm FROM usr01 INTO usr01-datfm

                    WHERE bname = sy-uname.

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

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

                    v_novadata(2)

                    INTO v_budat.

      ELSEIF usr01-datfm = 2 OR

             usr01-datfm = 3.

        CONCATENATE v_novadata+6(4) v_novadata(2)

                    v_novadata+3(2)

                    INTO v_budat.

      ELSEIF usr01-datfm > 3.

        CONCATENATE v_novadata(4) v_novadata+5(2)

                    v_novadata+8(2)

                    INTO v_budat.

      ENDIF.

      CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

           EXPORTING

                v_bukrs                = p_bukrs

                v_date                 = v_budat

           IMPORTING

                v_year                 = p_gjahr

           EXCEPTIONS

                variante_de_exercicio  = 1

                data_nao_encontrada    = 2

                empresa_nao_encontrada = 3

                period_in_not_valid    = 4

                period_not_assigned    = 5

                version_undefined      = 6

                OTHERS                 = 7.

      SELECT SINGLE periv FROM t001

                   INTO v_periv

                   WHERE bukrs EQ p_bukrs.

      CALL FUNCTION 'DETERMINE_PERIOD'

           EXPORTING

                date                = v_budat

                version             = v_periv

           IMPORTING

                period              = p_monat

           EXCEPTIONS

                period_in_not_valid = 1

                period_not_assigned = 2

                version_undefined   = 3

                OTHERS              = 4.

* << Fim da inclusão

  ENDIF.

* >> Início da inclusão: FORM CHECK_PERIODO

 ENDWHILE.

* << Fim da inclusão

  p_novadata = v_novadata.

ENDFORM.

FORM entrar_nova_data CHANGING value(p_resposta)

                               value(p_novadata).

  DATA: v_data_ TYPE d.

  WHILE v_data_ IS INITIAL OR

...

 

...

        yaccd-wt_hlpa12  =  yaccd-wt_hlpa12 + i_hamnta.

    ENDCASE.

    yaccd-bukrs     = i_bukrs.

    yaccd-kunnr     = i_acct.

    yaccd-wt_caly   = i_jahr.

    yaccd-witht     = i_witht.

    yaccd-wt_withcd = i_code.

    COLLECT yaccd.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

FORM determina_periodo USING    value(p_data)

                                value(p_bukrs)

                       CHANGING p_periodo.

  DATA v_periv(2).

  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_periodo

       EXCEPTIONS

            period_in_not_valid = 1

            period_not_assigned = 2

            version_undefined   = 3

            OTHERS              = 4.

  IF sy-subrc NE 0.

    CLEAR p_periodo.

  ENDIF.

ENDFORM.

FORM determina_ano USING    p_budat

                            p_bukrs

                   CHANGING p_ano.

  CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

       EXPORTING

            v_bukrs                = p_bukrs

            v_date                 = p_budat

       IMPORTING

            v_year                 = p_ano

       EXCEPTIONS

            variante_de_exercicio  = 1

            data_nao_encontrada    = 2

            empresa_nao_encontrada = 3

            period_in_not_valid    = 4

            period_not_assigned    = 5

            version_undefined      = 6

            OTHERS                 = 7.

endform.

* << Fim da inclusão