CE PLUS - Nota 007797

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Rotina Mensal

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

Data/Hora Última Alteração: 18/02/2011 17:15:06

Descrição da Nota: ROTINA MENSAL EXPORTAÇÃO - ANO FISCAL NAS CONTABILIZAÇÕES

Sintoma

Ao executar a rotina mensal de exportação, esta retornando mensagem de que período esta fechado, mas

o mesmo não esta. Lembrando que o ano fiscal da empresa é diferente do padrão.

 

 

Solução

Utilizar função para retornar ano e período correto de acordo com a data de lançamento do documento.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

CODE INSPECTOR, VERIFICAÇÃO AMPLIADA - CAMBIO

Informações Complementares

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

Nota Número 07797 Data: 17/12/2008 Hora: 10:56:11

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

 

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

Nota Número              : 07797

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00008

Agrupamento              : 00077

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

Referência às notas relacionadas:

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

 

06094  - 00001 - 7.0    - 00004  - CODE INSPECTOR, VERIFICAÇÃO AMPLIADA - CAMBIO

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

ROTINA MENSAL EXPORTAÇÃO - ANO FISCAL NAS CONTABILIZAÇÕES

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

Palavras Chave:

ROTINA MENSAL EXPORTAÇÃO ANO FISCAL NAS CONTABILIZAÇÕES

PERÍODO FECHADO

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

Objetos da nota:

FUNC /PWS/ZYCB_TRANSACAO_FV60

FUNC /PWS/ZYCB_TRANSACAO_F_02

FUNC /PWS/ZYCB_TRANSACAO_F_02A

FUNC /PWS/ZYCB_TRANSACAO_F_02C

FUNC /PWS/ZYCB_TRANSACAO_F_02D

FUNC /PWS/ZYCB_TRANSACAO_F_02E

FUNC /PWS/ZYCB_TRANSACAO_F_02F

FUNC /PWS/ZYCB_TRANSACAO_F_02G

FUNC /PWS/ZYCB_TRANSACAO_F_02H

FUNC /PWS/ZYCB_TRANSACAO_F_02I

FUNC /PWS/ZYCB_TRANSACAO_F_02J

FUNC /PWS/ZYCB_TRANSACAO_F_04B

FUNC /PWS/ZYCB_TRANSACAO_F_05

FUNC /PWS/ZYCB_TRANSACAO_F_06

FUNC /PWS/ZYCB_TRANSACAO_F_07

FUNC /PWS/ZYCB_TRANSACAO_F_07_A

FUNC /PWS/ZYCB_TRANSACAO_F_22

FUNC /PWS/ZYCB_TRANSACAO_F_22B

FUNC /PWS/ZYCB_TRANSACAO_F_22C

FUNC /PWS/ZYCB_TRANSACAO_F_22D

FUNC /PWS/ZYCB_TRANSACAO_F_22E

FUNC /PWS/ZYCB_TRANSACAO_F_22F

FUNC /PWS/ZYCB_TRANSACAO_F_22G

FUNC /PWS/ZYCB_TRANSACAO_F_28

FUNC /PWS/ZYCB_TRANSACAO_F_28_A

FUNC /PWS/ZYCB_TRANSACAO_F_29

FUNC /PWS/ZYCB_TRANSACAO_F_29R

FUNC /PWS/ZYCB_TRANSACAO_F_30

FUNC /PWS/ZYCB_TRANSACAO_F_30_A

FUNC /PWS/ZYCB_TRANSACAO_F_30_B

FUNC /PWS/ZYCB_TRANSACAO_F_30_C

FUNC /PWS/ZYCB_TRANSACAO_F_30_D

FUNC /PWS/ZYCB_TRANSACAO_F_30_E

FUNC /PWS/ZYCB_TRANSACAO_F_30_F

FUNC /PWS/ZYCB_TRANSACAO_F_30_H

FUNC /PWS/ZYCB_TRANSACAO_F_30_I

FUNC /PWS/ZYCB_TRANSACAO_F_30_J

FUNC /PWS/ZYCB_TRANSACAO_F_30_K

FUNC /PWS/ZYCB_TRANSACAO_F_30_L

FUNC /PWS/ZYCB_TRANSACAO_F_30_M

FUNC /PWS/ZYCB_TRANSACAO_F_30_N

FUNC /PWS/ZYCB_TRANSACAO_F_30_O

FUNC /PWS/ZYCB_TRANSACAO_F_30_PR

FUNC /PWS/ZYCB_TRANSACAO_F_30_Q

FUNC /PWS/ZYCB_TRANSACAO_F_30_R

FUNC /PWS/ZYCB_TRANSACAO_F_30_S

FUNC /PWS/ZYCB_TRANSACAO_F_30_T

FUNC /PWS/ZYCB_TRANSACAO_F_30_U

FUNC /PWS/ZYCB_TRANSACAO_F_30_V

FUNC /PWS/ZYCB_TRANSACAO_F_30_W

FUNC /PWS/ZYCB_TRANSACAO_F_31

FUNC /PWS/ZYCB_TRANSACAO_F_43

FUNC /PWS/ZYCB_TRANSACAO_F_43A

FUNC /PWS/ZYCB_TRANSACAO_F_48

FUNC /PWS/ZYCB_TRANSACAO_F_51

FUNC /PWS/ZYCB_TRANSACAO_F_51A

FUNC /PWS/ZYCB_TRANSACAO_F_51B

FUNC /PWS/ZYCB_TRANSACAO_F_51C

FUNC /PWS/ZYCB_TRANSACAO_F_51D

FUNC /PWS/ZYCB_TRANSACAO_F_51E

FUNC /PWS/ZYCB_TRANSACAO_F_51F

FUNC /PWS/ZYCB_TRANSACAO_F_51G

FUNC /PWS/ZYCB_TRANSACAO_F_51H

FUNC /PWS/ZYCB_TRANSACAO_F_51I

FUNC /PWS/ZYCB_TRANSACAO_F_53

FUNC /PWS/ZYCB_TRANSACAO_F_53A

FUNC /PWS/ZYCB_TRANSACAO_F_63

FUNC /PWS/ZYCB_TRANSACAO_F_63A

FUNC /PWS/ZYCB_TRANSACAO_F_63B

FUNC /PWS/ZYCB_TRANSACAO_F_63C

FUNC /PWS/ZYCB_TRANSACAO_F_63D

FUNC /PWS/ZYCB_TRANSACAO_F_63E

FUNC /PWS/ZYCB_TRANSACAO_F_65

REPS /PWS/LZYCBGF2F01

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_FV60

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'K'.

    perform check_periodo using    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          changing v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

    write: t_dados-wrbtr to v_wrbtr currency t_dados-waers.

    perform bdc_screen using 'SAPMF05A' '1100'.

    perform bdc_field  using:

           'RF05A-BUSCS' 'R',

           'INVFO-ACCNT' t_dados-agkon,

           'INVFO-BLDAT' v_data_doc_char,

           'INVFO-BLART' t_dados-blart,

           'INVFO-BUDAT' v_data_lanc_char,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_02

 

...

         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.

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

    if sy-subrc ne 0. else. endif.

* << Fim da inclusão

    CHECK t_dados-tcode = 'F-02'.

    IF ( t_dados-bukrs = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'BKPF-BUKRS'.

      t_campo-descricao = text-021.

      APPEND t_campo.

      RAISE campo_em_branco.

    ENDIF.

    IF ( t_dados-d_newko = space ).

      t_campo-mandt = t_dados-mandt.

...

 

...

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

  if sy-subrc = 0.

  else.

  endif.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

    MOVE v_date TO v_gjahr.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '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,

           'BKPF-MONAT' v_periodo,

           'BKPF-WAERS' t_dados-waers,

           'BKPF-KURSF' v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_02A

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '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,

           'BKPF-MONAT' v_periodo,

           'BKPF-WAERS' t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_02C

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_data_lanc_char+6(4) TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    v_cdebito1 = ''.

    IF v_wrbtr1 NE '           0,00'

       AND v_wrbtr1 NE '              0'.

      v_cdebito1 = t_dados-d_newko.

    ELSE.

      v_cdebito1 = t_dados-d_newko1.

    ENDIF.

    PERFORM bdc_screen USING 'SAPMF05A' '0100'.

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_02D

 

...

      RAISE CAMPO_EM_BRANCO.

    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.

    V_MONAT = T_DADOS-BUDAT+4(2).

    V_GJAHR = T_DADOS-BUDAT+0(4).

    V_KOART = 'S'.

    PERFORM CHECK_PERIODO USING    V_KOART

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

                                   V_MONAT

* << Fim da exclusão

                                   V_BUKRS

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

                                   V_GJAHR

* << Fim da exclusão

                          CHANGING V_DATA_LANC_CHAR

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

                                   V_OK.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    CONCATENATE '0' V_DATA_LANC_CHAR+3(2) INTO V_MONAT.

    MOVE V_DATA_LANC_CHAR+6(4) TO V_GJAHR.

    PERFORM BDC_SCREEN USING 'SAPMF05A' '0100'.

    PERFORM BDC_FIELD  USING:

         'BDC_CURSOR'  'RF05A-NEWBS',

         'BKPF-BLDAT'  V_DATA_DOC_CHAR,

         'BKPF-BLART'  T_DADOS-BLART,

         'BKPF-BUKRS'  T_DADOS-BUKRS,

         'BKPF-BUDAT'  V_DATA_LANC_CHAR,

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

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_02E

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '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,

           'BKPF-MONAT' v_periodo,

           'BKPF-WAERS' t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_02F

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = '+'.

    PERFORM check_periodo USING    v_koart

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

                                   v_bukrs

                          CHANGING v_data_doc_char

                                   v_ok

* << Fim da inclusão

                                   v_monat

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

                                   v_bukrs

                                   v_gjahr

                          CHANGING v_data_lanc_char

                                   v_ok.

* << Fim da exclusão

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

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '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,

           'BKPF-MONAT'     v_periodo,

           'BKPF-WAERS'     t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_02G

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = '+'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '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,

           'BKPF-MONAT'     v_periodo,

           'BKPF-WAERS'     t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_02H

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = '+'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '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,

           'BKPF-MONAT'     v_periodo,

           'BKPF-WAERS'     t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_02I

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '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,

           'BKPF-MONAT' v_periodo,

           'BKPF-WAERS' t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_02J

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = '+'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '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,

           'BKPF-MONAT'     v_periodo,

           'BKPF-WAERS'     t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_04B

 

...

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    perform check_periodo using    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          changing v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

    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-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_05

 

...

                                        itab_oculto

                                 using  v_string_credito.

    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.

    v_monat = t_dados-budat+4(2).

    v_gjahr = t_dados-budat+0(4).

    v_koart = 'S'.

    perform check_periodo using    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          changing v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    concatenate '0' v_data_lanc_char+3(2) into v_monat.

    move v_data_lanc_char+6(4) to v_gjahr.

    perform bdc_screen using 'SAPMF05A' '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,

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

         'BKPF-WAERS'    t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_06

 

...

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    perform check_periodo using    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          changing v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

    perform bdc_screen using 'SAPMF05A' '0103'.

    perform bdc_field using:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  t_dados-bukrs,

            'BKPF-BUDAT'  v_budat,

            'BKPF-WAERS'  t_dados-waers,

            'BKPF-KURSF'  v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_07

 

...

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    perform check_periodo using    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          changing v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

    concatenate v_budat+6(4) v_budat+3(2) v_budat(2) into

             t_dados-budat.

    modify t_dados.

    perform bdc_screen using 'SAPMF05A' '0103'.

    perform bdc_field using:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  t_dados-bukrs,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_07_A

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

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

             t_dados-budat.

    MODIFY t_dados.

    PERFORM bdc_screen USING 'SAPMF05A' '0103'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  t_dados-bukrs,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_22

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '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,

           'BKPF-MONAT' v_periodo,

           'BKPF-WAERS' t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_22B

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = t_dados-budat+0(4).

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_data_lanc_char+6(4) TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0100'.

    IF t_dados-newbs EQ '19'

      OR t_dados-newbs EQ '09'.

      PERFORM bdc_field  USING:

           'RF05A-NEWUM' t_dados-umskz.

    ENDIF.

    PERFORM bdc_field  USING:

           'BKPF-BLDAT' v_data_doc_char,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_22C

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '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,

           'BKPF-MONAT' v_periodo,

           'BKPF-WAERS' t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_22D

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '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,

           'BKPF-MONAT' v_periodo,

           'BKPF-WAERS' t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_22E

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '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,

           'BKPF-MONAT' v_periodo,

           'BKPF-WAERS' t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_22F

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '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,

           'BKPF-MONAT' v_periodo,

           'BKPF-WAERS' t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_22G

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = '+'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '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,

           'BKPF-MONAT'     v_periodo,

           'BKPF-WAERS'     t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_28

 

...

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

  if sy-subrc = 0.

  else.

  endif.

    v_gjahr = v_date.

    v_koart = 'D'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0103'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  t_dados-bukrs,

            'BKPF-BUDAT'  v_budat,

            'BKPF-MONAT'  v_periodo,

            'BKPF-WAERS'  t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_28_A

 

...

      IMPORTING

        period              = v_monat

      EXCEPTIONS

        period_in_not_valid = 1

        period_not_assigned = 2

        version_undefined   = 3

        OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'D'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0103'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  t_dados-bukrs,

            'BKPF-BUDAT'  v_budat,

            'BKPF-MONAT'  v_periodo,

            'BKPF-WAERS'  t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_29

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'D'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0111'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  t_dados-bukrs,

            'BKPF-BUDAT'  v_budat,

            'BKPF-MONAT'  v_periodo,

            'BKPF-WAERS'  t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_29R

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'D'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0111'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  t_dados-bukrs,

            'BKPF-BUDAT'  v_budat,

            'BKPF-MONAT'  v_periodo,

            'BKPF-WAERS'  t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  t_dados-bukrs,

            'BKPF-BUDAT'  v_budat,

            'BKPF-WAERS'  t_dados-waers,

            'BKPF-KURSF'  v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_A

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = '+'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'     v_bldat,

            'BKPF-BLART'     t_dados-blart,

            'BKPF-BUKRS'     t_dados-bukrs,

            'BKPF-BUDAT'     v_budat,

            'BKPF-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_B

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  t_dados-bukrs,

            'BKPF-BUDAT'  v_budat,

            'BKPF-WAERS'  t_dados-waers,

            'BKPF-KURSF'  v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_C

 

...

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    perform check_periodo using    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          changing v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_budat+6(4) to v_gjahr.

    move v_monat+1(2) to v_periodo.

    perform bdc_screen using 'SAPMF05A' '0122'.

    perform bdc_field using:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  t_dados-bukrs,

            'BKPF-BUDAT'  v_budat,

            'BKPF-WAERS'  t_dados-waers,

            'BKPF-KURSF'  v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_D

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'D'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_budat+6(4) TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    IF t_dados-awtyp = '2'.

      v_xpos1 = 'RF05A-XPOS1(2)'.

    ELSE.

      v_xpos1 = 'RF05A-XPOS1(4)'.

    ENDIF.

    IF NOT t_dados-d_valut = '00000000' AND

       NOT t_dados-d_valut = '        '.

      WRITE: t_dados-d_valut TO v_valut.

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_E

 

...

                                  USING  v_string_debito.

    ENDIF.

    WRITE: t_dados-bukrs   TO v_bukrs,

           t_dados-bldat   TO v_bldat,

           t_dados-budat   TO v_budat,

           t_dados-kursf   TO v_kursf.

    v_monat = t_dados-budat+4(2).

    v_gjahr = t_dados-budat+0(4).

    v_koart = 'D'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

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

    MOVE v_budat+6(4) TO v_gjahr.

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'     v_bldat,

            'BKPF-BLART'     t_dados-blart,

            'BKPF-BUKRS'     t_dados-bukrs,

            'BKPF-BUDAT'     v_budat,

            'BKPF-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_F

 

...

              version             = v_periv

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    PERFORM check_periodo USING    '+'

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

                                   v_monat

* << Fim da exclusão

                                   t_dados-bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    SELECT SINGLE akont FROM knb1

      INTO knb1-akont

      WHERE kunnr = t_dados-d_newko

        AND bukrs = t_dados-bukrs.

    SELECT SINGLE plcontas FROM /pws/zycbt007

                           INTO /pws/zycbt007-plcontas

                           WHERE bukrs EQ t_dados-bukrs.

    IF NOT t_dados-umskz IS INITIAL.

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_H

 

...

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'D'.

    perform check_periodo using    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          changing v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

    perform bdc_screen using 'SAPMF05A' '0122'.

    perform bdc_field using:

            'BKPF-BLDAT'     v_bldat,

            'BKPF-BLART'     t_dados-blart,

            'BKPF-BUKRS'     t_dados-bukrs,

            'BKPF-BUDAT'     v_budat,

            'BKPF-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_I

 

...

  SHIFT v_xpos1 LEFT DELETING LEADING '0'.

  CONCATENATE 'RF05A-XPOS1(' v_xpos1 ')' INTO v_xpos_comp.

  LOOP AT t_dados.

    SELECT SINGLE * FROM /pws/zycbt089 INTO wa_zycbt089

           WHERE bukrs EQ t_dados-bukrs.

    CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

         EXPORTING

              v_bukrs = t_dados-bukrs

              v_date  = t_dados-budat

         IMPORTING

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

              v_year  = v_date.

* << Fim da exclusão

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

              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.

    IF sy-subrc NE 0. ELSE. ENDIF.

* << Fim da inclusão

    CHECK t_dados-tcode = 'F-30'.

    IF ( t_dados-bukrs = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'BKPF-BUKRS'.

      t_campo-descricao = text-021.

      APPEND t_campo.

      RAISE campo_em_branco.

    ENDIF.

    IF ( t_dados-agkon = space ).

      t_campo-mandt = t_dados-mandt.

...

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'D'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

    MOVE v_date TO v_gjahr.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'     v_bldat,

            'BKPF-BLART'     t_dados-blart,

            'BKPF-BUKRS'     t_dados-bukrs,

            'BKPF-BUDAT'     v_budat,

            'BKPF-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

            'BKPF-XBLNR'     t_dados-xblnr,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_J

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'D'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'     v_bldat,

            'BKPF-BLART'     t_dados-blart,

            'BKPF-BUKRS'     t_dados-bukrs,

            'BKPF-BUDAT'     v_budat,

            'BKPF-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_K

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'D'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_budat+6(4) TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    IF t_dados-awtyp = '2'.

      v_xpos1 = 'RF05A-XPOS1(2)'.

    ELSE.

      v_xpos1 = 'RF05A-XPOS1(4)'.

    ENDIF.

    WRITE: t_dados-d_valut TO v_valut.

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_L

 

...

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'D'.

    perform check_periodo using    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          changing v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

    perform bdc_screen using 'SAPMF05A' '0122'.

    perform bdc_field using:

            'BKPF-BLDAT'     v_bldat,

            'BKPF-BLART'     t_dados-blart,

            'BKPF-BUKRS'     t_dados-bukrs,

            'BKPF-BUDAT'     v_budat,

            'BKPF-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_M

 

...

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'D'.

    perform check_periodo using    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          changing v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

    perform bdc_screen using 'SAPMF05A' '0122'.

    perform bdc_field using:

            'BKPF-BLDAT'     v_bldat,

            'BKPF-BLART'     t_dados-blart,

            'BKPF-BUKRS'     t_dados-bukrs,

            'BKPF-BUDAT'     v_budat,

            'BKPF-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_N

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    SELECT SINGLE xkkbi

           FROM t001

           INTO v_xkkbi

           WHERE bukrs = t_dados-bukrs.

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_O

 

...

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    perform check_periodo using    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          changing v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_budat+6(4) to v_gjahr.

    move v_monat+1(2) to v_periodo.

    perform bdc_screen using 'SAPMF05A' '0122'.

    perform bdc_field using:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  t_dados-bukrs,

            'BKPF-BUDAT'  v_budat,

            'BKPF-WAERS'  t_dados-waers,

            'BKPF-XBLNR'  t_dados-xblnr,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_PR

 

...

              date                = t_dados-budat

              version             = v_periv

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

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

    PERFORM check_periodo USING    wa_tbsl-koart

                                   v_monat

* << Fim da exclusão

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

    PERFORM check_periodo USING    '+'

* << Fim da inclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'     v_bldat,

            'BKPF-BLART'     t_dados-blart,

            'BKPF-BUKRS'     t_dados-bukrs,

            'BKPF-BUDAT'     v_budat,

            'BKPF-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_Q

 

...

              date                = t_dados-budat

              version             = v_periv

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

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

    PERFORM check_periodo USING    wa_tbsl-koart

                                   v_monat

* << Fim da exclusão

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

    PERFORM check_periodo USING    '+'

* << Fim da inclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'     v_bldat,

            'BKPF-BLART'     t_dados-blart,

            'BKPF-BUKRS'     t_dados-bukrs,

            'BKPF-BUDAT'     v_budat,

            'BKPF-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_R

 

...

              version             = v_periv

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    perform check_periodo using    '+'

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

                                   v_monat

* << Fim da exclusão

                                   t_dados-bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          changing v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

    perform bdc_screen using 'SAPMF05A' '0122'.

    perform bdc_field using:

            'BKPF-BLDAT'     v_bldat,

            'BKPF-BLART'     t_dados-blart,

            'BKPF-BUKRS'     t_dados-bukrs,

            'BKPF-BUDAT'     v_budat,

            'BKPF-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_S

 

...

              version             = v_periv

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    PERFORM check_periodo USING    '+'

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

                                   v_monat

* << Fim da exclusão

                                   t_dados-bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'     v_bldat,

            'BKPF-BLART'     t_dados-blart,

            'BKPF-BUKRS'     t_dados-bukrs,

            'BKPF-BUDAT'     v_budat,

            'BKPF-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_T

 

...

              version             = v_periv

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    PERFORM check_periodo USING    '+'

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

                                   v_bukrs

                          CHANGING v_budat

                                   v_ok

* << Fim da inclusão

                                   v_monat

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

                                   t_dados-bukrs

                                   v_gjahr

                          CHANGING v_budat

                                   v_ok.

* << Fim da exclusão

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

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'     v_bldat,

            'BKPF-BLART'     t_dados-blart,

            'BKPF-BUKRS'     t_dados-bukrs,

            'BKPF-BUDAT'     v_budat,

            'BKPF-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_U

 

...

              date                = t_dados-budat

              version             = v_periv

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

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

    PERFORM check_periodo USING    wa_tbsl-koart

                                   v_monat

* << Fim da exclusão

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

    PERFORM check_periodo USING    '+'

* << Fim da inclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'     v_bldat,

            'BKPF-BLART'     t_dados-blart,

            'BKPF-BUKRS'     t_dados-bukrs,

            'BKPF-BUDAT'     v_budat,

            'BKPF-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_V

 

...

              version             = v_periv

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    PERFORM check_periodo USING    '+'

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

                                   v_monat

* << Fim da exclusão

                                   t_dados-bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'     v_bldat,

            'BKPF-BLART'     t_dados-blart,

            'BKPF-BUKRS'     t_dados-bukrs,

            'BKPF-BUDAT'     v_budat,

            'BKPF-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_W

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    WHILE v_ok EQ 'N'.

      PERFORM check_periodo USING    '+'

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

                                     v_monat

* << Fim da exclusão

                                     t_dados-bukrs

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

                                     v_gjahr

* << Fim da exclusão

                            CHANGING v_budat

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

                                     v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

      MOVE v_budat+6(4) TO v_gjahr.

      MOVE v_budat+3(2) TO v_monat.

    ENDWHILE.

    MOVE v_monat+1(2) TO v_periodo.

    WRITE t_dados-budat TO v_dtdocto.

    IF v_budat NE v_dtdocto.

      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)

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_31

 

...

    v_gjahr = v_date.

    v_koart = 'D'.

    WRITE: t_dados-bldat   TO v_bldat,

           t_dados-budat   TO v_budat,

           t_dados-zfbdt   TO v_zfbdt,

           t_dados-d_valut TO v_valut,

           t_dados-kursf   TO v_kursf,

           t_dados-wrbtr   TO v_wrbtr CURRENCY t_dados-waers,

           t_dados-bukrs   TO v_bukrs.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0103'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  v_bukrs,

            'BKPF-BUDAT'  v_budat,

            'BKPF-MONAT'  v_periodo,

            'BKPF-WAERS'  t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_43

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'K'.

    PERFORM check_periodo USING    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          CHANGING v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

     CLEAR usr01-datfm.

    SELECT SINGLE datfm FROM usr01 INTO usr01-datfm

                  WHERE bname = sy-uname.

    CASE usr01-datfm .

      WHEN '1'  .

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

      MOVE v_date TO v_gjahr.

      MOVE v_monat+1(2) TO v_periodo.

     WHEN '2' or '3' .

      CONCATENATE '0' v_data_lanc_char(2) INTO v_monat.

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_43A

 

...

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'K'.

    perform check_periodo using    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          changing v_data_lanc_char

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

    perform bdc_screen using 'SAPMF05A' '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,

           'BKPF-MONAT' v_periodo,

           'BKPF-WAERS' t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_48

 

...

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'K'.

      perform check_periodo using    v_koart

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

                                     v_monat

* << Fim da exclusão

                                     v_bukrs

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

                                     v_gjahr

* << Fim da exclusão

                            changing v_data_lanc_char

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

                                     v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

    perform bdc_screen using 'SAPMF05A' '0110'.

    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,

           'BKPF-MONAT'  v_periodo,

           'BKPF-WAERS'  t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_51

 

...

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'K'.

    perform check_periodo using    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          changing v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_monat+1(2) to v_periodo.

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

            'BKPF-WAERS'  t_dados-waers,

            'BKPF-KURSF'  v_kursf,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_51A

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

      perform check_periodo using    v_koart

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

                                     v_monat

* << Fim da exclusão

                                     v_bukrs

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

                                     v_gjahr

* << Fim da exclusão

                            changing v_data_lanc_char

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

                                     v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

    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,

           'BKPF-MONAT'  v_periodo,

           'BKPF-WAERS'  t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_51B

 

...

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'K'.

      perform check_periodo using    v_koart

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

                                     v_monat

* << Fim da exclusão

                                     v_bukrs

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

                                     v_gjahr

* << Fim da exclusão

                            changing v_budat

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

                                     v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

    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_budat+3(2),

            'BKPF-WAERS'  t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_51C

 

...

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    if t_dados-koart is initial.

      v_koart = 'K'.

    else.

      v_koart = t_dados-koart.

    endif.

    perform check_periodo using    v_koart

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

                                   v_monat

* << Fim da exclusão

                                   v_bukrs

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

                                   v_gjahr

* << Fim da exclusão

                          changing v_budat

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

                                   v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

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

            'BKPF-WAERS'  t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_51D

 

...

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'K'.

      perform check_periodo using    v_koart

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

                                     v_monat

* << Fim da exclusão

                                     v_bukrs

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

                                     v_gjahr

* << Fim da exclusão

                            changing v_budat

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

                                     v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

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

            'BKPF-WAERS'  t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_51E

 

...

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

      perform check_periodo using    v_koart

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

                                     v_monat

* << Fim da exclusão

                                     v_bukrs

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

                                     v_gjahr

* << Fim da exclusão

                            changing v_budat

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

                                     v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

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

            'BKPF-WAERS'  t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_51F

 

...

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'K'.

      perform check_periodo using    v_koart

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

                                     v_monat

* << Fim da exclusão

                                     v_bukrs

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

                                     v_gjahr

* << Fim da exclusão

                            changing v_budat

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

                                     v_ok.

* << Fim da exclusão

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

                                   v_ok

                                   v_monat

                                   v_gjahr.

* << Fim da inclusão

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

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

            'BKPF-WAERS'  t_dados-waers,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_51G

 

* >> Início da inclusão:

function /pws/zycb_transacao_f_51g.

  data:

    v_string_debito        like tbsl-faus1,

    v_string_credito       like tbsl-faus1,

    v_chave_debito         like tbsl-bschl value '40',

    v_chave_credito        like tbsl-bschl value '50',

    v_chave                type c,

    v_data_doc_char(10)    type c,

    v_data_lanc_char(10)   type c,

    v_data_val_char(10)    type c,

    v_pep                  like prps-posid,

    v_linha                type i,

    v_cont(2) type n,

    v_campo(15),

    v_bldat(10),

    v_budat(10),

    v_wrbtr(16),

    v_kursf(9),

    v_xpos(14),

    v_taxam              like bkpf-kursf,

    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_msgno              like t100-msgnr,

    v_koart              like t001b-mkoar,

    v_ok(1)              value 'N',

    v_monat              like t001b-frpe1,

    v_bukrs              like t001-bukrs,

    v_gjahr              like t001b-frye1,

    v_valut(10),

    v_lines              type i,

    v_buzei              like bseg-buzei,

    v_index              type i,

    v_index2             type i,

    v_periv(2),

    v_periodo(2),

    v_date               like T009B-BDATJ,

    v_itens              type i,

    v_xpos1(2) type n,

    v_xpos_comp(14),

    v_xpos_belnr(2) type n,

    v_selecao(2)    TYPE N.

  data: itab_t041t like t041t occurs 0 with header line.

  data: wa_zycbt089 like /pws/zycbt089.

 data: begin of t_contas_aux occurs 0.

        include structure t_contas.

 data: end of t_contas_aux.

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

  concatenate 'RF05A-XPOS1(' v_xpos1 ')' into v_xpos.

  select single selps from t021r

    into  v_xpos_belnr

    where event = 'SL-AG'

      and feldn = 'BELNR'.

  clear v_xpos1.

  select * from t041t into table itab_t041t

       where spras = sy-langu.

  read table itab_t041t with key auglv = 'UMBUCHNG'.

  v_xpos1 = sy-tabix.

  shift v_xpos1 left deleting leading '0'.

  concatenate 'RF05A-XPOS1(' v_xpos1 ')' into v_xpos_comp.

  loop at t_dados.

    select single * from /pws/zycbt089 into  wa_zycbt089

           where bukrs eq t_dados-bukrs.

  CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

    EXPORTING

      v_bukrs                      = t_dados-bukrs

      v_date                       = t_dados-budat

   IMPORTING

      V_YEAR                       = v_date.

    check t_dados-tcode = 'F-51'.

    if ( t_dados-bukrs = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'BKPF-BUKRS'.

      t_campo-descricao = text-021.

      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-bukrs   to v_bukrs.

    select single periv from t001

                 into v_periv

                 where bukrs eq v_bukrs.

    call function 'DETERMINE_PERIOD'

         exporting

              date                = t_dados-budat

              version             = v_periv

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'K'.

    PERFORM check_periodo USING    v_koart

                                   v_bukrs

                          CHANGING v_budat

                                   v_ok

                                   v_monat

                                   v_gjahr.

      move v_date to v_gjahr.

      move v_monat+1(2) to v_periodo.

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

            'BKPF-WAERS'  t_dados-waers,

            'BKPF-KURSF'  v_kursf,

            'BKPF-XBLNR'  t_dados-xblnr,

            'BKPF-BKTXT'  t_dados-bktxt,

            'RF05A-AUGTX' t_dados-augtx,

            v_xpos_comp   'X',

            'BDC_OKCODE'  '=SL'.

    write WA_zycbt089-num_selecao to v_selecao.

    if v_selecao gt v_xpos_belnr  .

      shift v_xpos_belnr left deleting leading  '0'.

      add 1 to v_xpos_belnr.

      perform bdc_screen using 'SAPMF05A' '0710'.

      concatenate 'RF05A-XPOS1(' v_xpos_belnr ')' into v_xpos.

      perform bdc_field using:

            'RF05A-AGKON' t_dados-d_newko,

            'RF05A-AGKOA' t_dados-agkoa,

              v_xpos        'X',

              'BDC_OKCODE'  '=PA'.

    else.

      shift v_xpos_belnr left deleting leading  '0'.

      concatenate 'RF05A-XPOS1(' v_selecao ')' into v_xpos.

      perform bdc_screen using 'SAPMF05A' '0710'.

      perform bdc_field  using: 'BDC_OKCODE'    '/00'.

      perform bdc_field using:

            'RF05A-AGKON' t_dados-d_newko,

            'RF05A-AGKOA' t_dados-agkoa,

              v_xpos         'X',

              'BDC_OKCODE'  '/00'.

        while v_xpos_belnr > 10.

          v_xpos_belnr = v_xpos_belnr - 10.

          perform bdc_screen using 'SAPMF05A'   '0608'.

          perform bdc_field using 'BDC_OKCODE'  'P+'.

          shift v_xpos_belnr left deleting leading  '0'.

        endwhile.

      concatenate 'RF05A-XPOS1(' v_xpos_belnr ')' into v_xpos.

      perform bdc_screen using 'SAPMF05A' '0608'.

      perform bdc_field using:

              v_xpos        'X',

              'BDC_OKCODE'  '/00'.

    endif.

    perform bdc_screen using 'SAPMF05A' '0731'.

      if not t_doc[] is initial and v_belnr is initial.

        clear v_cont.

        loop at t_doc where tcode  = t_dados-tcode

                        and tabela = t_dados-tabela

                        and cpochv = t_dados-cpochv.

          add 1 to v_cont.

          concatenate 'RF05A-SEL01(' v_cont ')' into v_campo.

          perform bdc_field using v_campo t_doc-belnr.

          if v_cont = 5.

            clear v_cont.

            perform bdc_field using: 'BDC_OKCODE' '/00'.

            perform bdc_screen using 'SAPMF05A'    '0731'.

          endif.

        endloop.

        perform bdc_field using:

        'BDC_OKCODE'       '=PA'.

      else.

        perform bdc_field using:

        'RF05A-SEL01(01)'  v_belnr,

        'BDC_OKCODE'       '=PA'.

      endif.

    move t_contas[] to t_contas_aux[].

    clear: v_index,

           v_index2.

    perform bdc_screen using 'SAPDF05X' '3100'.

    perform bdc_field  using 'BDC_OKCODE'    '=OMX'.

    perform bdc_screen using 'SAPDF05X' '3100'.

    perform bdc_field  using 'BDC_OKCODE'    '=Z+'.

    perform bdc_screen using 'SAPDF05X' '3100'.

    perform bdc_field  using 'BDC_OKCODE'    '=AB'.

    perform bdc_screen using 'SAPMF05A' '700'.

    read table t_contas index 1.

    perform bdc_field  using:

      'RF05A-NEWBS'   t_contas-bschl,

      'RF05A-NEWKO'   t_contas-d_newko,

      'BDC_OKCODE'    '/00'.

    loop at t_contas.

      v_index  = sy-tabix.

      v_index2 = sy-tabix + 1.

      perform determina_string using v_chave_credito

                                       t_dados-bukrs

                                       t_contas-d_newko

                              changing v_string_credito.

      free itab_oculto.

      perform trata_string_credito tables  t_dados

                                           t_campo

                                           itab_oculto

                                    using v_string_credito.

      describe table t_contas lines v_linha.

       write: t_dados-d_valut to v_data_val_char,

              t_contas-wrbtr  to v_wrbtr currency t_dados-waers.

       perform bdc_screen using 'SAPMF05A' '0300'.

       perform bdc_field  using:

         'BSEG-WRBTR'   v_wrbtr.

       clear t_contas_aux.

       read table t_contas_aux index v_index2.

       perform bdc_field  using:

         'RF05A-NEWBS'  t_contas_aux-bschl,

         'RF05A-NEWKO'  t_contas_aux-d_newko.

       read table itab_oculto with key campo = 'BSEG-ZUONR' chave = 'C'.

       if sy-subrc <> 0.

         perform bdc_field using 'BSEG-ZUONR' t_dados-d_zuonr.

       endif.

       read table itab_oculto with key campo = 'BSEG-SGTXT' chave = 'C'.

       if sy-subrc <> 0.

        perform bdc_field using 'BSEG-SGTXT' t_dados-d_sgtxt.

       endif.

       if v_linha ne v_index .

         perform bdc_field using 'BDC_OKCODE' '/00'.

       else.

         perform bdc_field using 'BDC_OKCODE' '=BU'.

       endif.

         perform bdc_screen using 'SAPLKACB' '0002'.

       read table itab_oculto with key campo = 'COBL-GSBER' chave = 'C'.

        if sy-subrc <> 0.

          perform bdc_field using 'COBL-GSBER' t_contas-d_gsber.

        endif.

       read table itab_oculto with key campo = 'COBL-KOSTL' chave = 'C'.

         if sy-subrc <> 0.

           perform bdc_field using 'COBL-KOSTL' t_contas-d_kostl.

         endif.

      read table itab_oculto with key campo = 'COBL-PRCTR' chave = 'C'.

        if sy-subrc <> 0.

          perform bdc_field using 'COBL-PRCTR' t_contas-d_prctr.

        endif.

          read table itab_oculto with key

                                 campo = 'COBL-PS_PSP_PNR' chave = 'C'.

            if sy-subrc <> 0.

              if not  t_contas-ps_psp_pnr is initial.

               call function 'CONVERSION_EXIT_KONPR_OUTPUT'

                 exporting

                   input  = t_dados-ps_psp_pnr

                   importing

                   output = v_pep.

                perform bdc_field  using:

                   'COBL-PS_PSP_PNR' v_pep.

              endif.

            endif.

            perform bdc_field using 'BDC_OKCODE' '=ENTE'.

    endloop.

    loop at t_contas.

        perform bdc_screen using 'SAPMF05A' '0610'.

        perform bdc_field  using:

             'BDC_CURSOR'   '*BSEG-BUZEI',

             '*BSEG-BUZEI'  v_buzei.

        if t_dados-d_valut eq '00000000'.

          write: t_contas-d_valut to v_data_val_char.

        else.

          write: t_dados-d_valut to v_data_val_char.

        endif.

        perform bdc_screen using 'SAPMF05A' '0300'.

       read table itab_oculto with key campo = 'BSEG-VALUT'

                                       chave = v_chave.

       if sy-subrc <> 0.

         perform bdc_field using 'BSEG-VALUT' v_data_val_char.

       endif.

       read table itab_oculto with key campo = 'BSEG-ZUONR'

                                       chave = v_chave.

        if sy-subrc <> 0.

          perform bdc_field using 'BSEG-ZUONR' t_dados-d_zuonr.

        endif.

       read table itab_oculto with key campo = 'BSEG-SGTXT'

                                       chave = v_chave.

        if sy-subrc <> 0.

          perform bdc_field using 'BSEG-SGTXT' t_dados-d_sgtxt.

        endif.

        perform bdc_field  using:

             'BDC_SUBSCR'  'SAPLKACB',

             'BDC_OKCODE'  '/00'.

        perform bdc_screen using 'SAPLKACB' '0002'.

       read table itab_oculto with key campo = 'COBL-GSBER'

                                       chave = v_chave.

         if sy-subrc <> 0.

           perform bdc_field using 'COBL-GSBER' t_contas-d_gsber.

         endif.

       read table itab_oculto with key campo = 'COBL-KOSTL'

                                       chave = v_chave.

        if sy-subrc <> 0.

          perform bdc_field using 'COBL-KOSTL' t_contas-d_kostl.

        endif.

       read table itab_oculto with key campo = 'COBL-PRCTR'

                                       chave = v_chave.

        if sy-subrc <> 0.

          perform bdc_field using 'COBL-PRCTR' t_contas-d_prctr.

        endif.

        read table itab_oculto with key campo = 'COBL-FIPOS'

                                        chave = v_chave.

        if sy-subrc <> 0.

          perform bdc_field using 'COBL-FIPOS' t_contas-d_fipos.

        endif.

        perform bdc_field  using:

          'BDC_SUBSCR'  'SAPLKACB' ,

          'BDC_OKCODE'   '=ENTE'.

       describe table t_contas lines v_linha.

        perform bdc_screen using 'SAPMF05A' '0300'.

        perform bdc_field  using:

           'BDC_CURSOR'   'BSEG-WRBTR',

           'BDC_SUBSCR'   'SAPLKACB'.

        if v_index ne v_linha.

          perform bdc_field  using 'BDC_OKCODE'   '=PI'.

        else.

          perform bdc_field  using 'BDC_OKCODE'   '=BU'.

        endif.

        perform bdc_screen using 'SAPLKACB' '0002'.

        perform bdc_field  using:

           'BDC_CURSOR'   'COBL-GSBER',

           'BDC_SUBSCR'   'SAPLKACB',

           'BDC_OKCODE'   '=ENTE'.

    endloop.

    refresh itab_msg.

    clear itab_msg.

    v_transacao = 'F-51'.

    v_update = 'S'.

    v_msgid = 'F5'.

    v_msgno = '312'.

    if v_modo is initial.

      v_mode = 'N'.

    else.

      v_mode = v_modo.

    endif.

    perform  call_transaction tables itab_msg

                                     itab_bdc

                                     t_zycbt032

                                     t_dados

                              using  v_transacao

                                     v_mode

                                     v_update

                                     v_msgid

                                     v_msgno

                              changing v_nrmsg.

  endloop.

  free:

    itab_bdc,

    itab_msg.

endfunction.

* << Fim da inclusão

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_51H

 

* >> Início da inclusão:

FUNCTION /PWS/ZYCB_TRANSACAO_F_51H.

  data:

    v_cont(2) type n,

    v_campo(15),

    v_string_debito      like tbsl-faus1,

    v_string_credito     like tbsl-faus1,

    v_data_doc_char(10)  type c,

    v_data_lanc_char(10) type c,

    v_data_val_char(10)  type c,

    v_data_conv_char(10) type c,

    v_data_base_char(10) type c,

    v_kursf(9)           type c,

    v_wrbtr(16)          type c,

    v_wrbtr1(16)         type c,

    v_sel03              like rf05a-sel01,

    v_chave_debito       like tbsl-bschl value '31',

    v_chave_credito      like tbsl-bschl value '40',

    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_msgno              like t100-msgnr,

    v_koart              like t001b-mkoar,

    v_ok(1)              value 'N',

    v_monat              like t001b-frpe1,

    v_bukrs              like t001-bukrs,

    v_gjahr              like t001b-frye1,

    v_pep                like prps-posid,

    v_skfbt(16)          type c,

    v_dconta             like /pws/zycbe033-d_newko,

    v_date               like t009b-bdatj,

    v_periv(2),

    v_periodo(2),

    v_xpos(2)            type n,

    v_xpos_belnr(2) type n,

    v_selecao(2)    TYPE N.

  data: itab_t041t like t041t occurs 0 with header line.

  data: wa_zycbt089 like /pws/zycbt089.

  select single selps from t021r

    into  v_xpos_belnr

    where event = 'SL-AG'

      and feldn = 'BELNR'.

  loop at t_dados.

    select single * from /pws/zycbt089 into  wa_zycbt089

           where bukrs eq t_dados-bukrs.

    call function '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

         exporting

              v_bukrs = t_dados-bukrs

              v_date  = t_dados-budat

         importing

              v_year  = v_date.

    check t_dados-tcode = 'F-51'.

    if ( t_dados-bukrs = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'BKPF-BUKRS'.

      t_campo-descricao = text-021.

      append t_campo.

      raise campo_em_branco.

    endif.

    if ( t_dados-d_newko = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'RF05A-NEWKO'.

      t_campo-descricao = text-022.

      append t_campo.

      raise campo_em_branco.

    endif.

   if t_dados-newbs eq '34'.

     v_chave_debito = t_dados-newbs.

     select single akont from lfb1

       into lfb1-akont

       where lifnr = t_dados-d_newko

         and bukrs = t_dados-bukrs.

     perform determina_string using v_chave_debito

                                    t_dados-bukrs

                                    lfb1-akont

                           changing v_string_debito.

   else.

      perform determina_string using v_chave_debito

                                     t_dados-bukrs

                                     t_dados-d_newko

                               changing v_string_debito.

    endif.

    clear itab_oculto.

    refresh itab_oculto.

    perform trata_string_debito tables t_dados

                                       t_campo

                                       itab_oculto

                                using  v_string_debito.

    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.

    select single periv from t001

                 into v_periv

                 where bukrs eq v_bukrs.

    call function 'DETERMINE_PERIOD'

         exporting

              date                = t_dados-budat

              version             = v_periv

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

                                   v_bukrs

                          CHANGING v_data_lanc_char

                                   v_ok

                                   v_monat

                                   v_gjahr.

      move v_date to v_gjahr.

      move v_monat+1(2) to v_periodo.

    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,

           'BKPF-MONAT'  v_periodo,

           'BKPF-WAERS'  t_dados-waers,

           'BKPF-KURSF'  v_kursf,

           'BKPF-WWERT'  v_data_conv_char,

           'BKPF-XBLNR'  t_dados-xblnr,

           'BKPF-BVORG'  t_dados-bvorg,

           'BKPF-BKTXT'  t_dados-bktxt,

           'BKPF-BRNCH'  t_dados-brnch,

           'BKPF-NUMPG'  t_dados-numpg,

           'RF05A-AUGTX' t_dados-augtx,

           'FS006-DOCID' t_dados-docid,

           'FS006-BARCD' t_dados-barcd,

           'BKPF-AWTYP'  t_dados-awtyp,

           'BKPF-AWKEY'  t_dados-awkey,

           'BKPF-AWSYS'  t_dados-awsys,

           'RF05A-NEWUM' t_dados-newum,

           'RF05A-NEWBW' t_dados-newbw,

           'BDC_OKCODE' '/00'.

    if t_dados-wrbtr ne 0.

      perform bdc_field using:

        'RF05A-NEWKO'   t_dados-d_newko.

      if t_dados-newbs is initial.

        perform bdc_field using:

          'RF05A-NEWBS'  '40'.

      elseif t_dados-newbs eq '50'.

        perform bdc_field using: 'RF05A-NEWBS' '50' .

      else.

        perform bdc_field using: 'RF05A-NEWBS' t_dados-newbs.

      endif.

     write: t_dados-d_valut to v_data_val_char,

            t_dados-wrbtr to v_wrbtr  currency     t_dados-waers.

     if t_dados-newbs is initial or t_dados-newbs eq '50'.

        perform bdc_screen using: 'SAPMF05A'     '0300'.

        read table itab_oculto with key campo = 'BSEG-VALUT'

                                                            chave = 'D'.

        if sy-subrc <> 0.

           perform bdc_field  using: 'BSEG-VALUT'   v_data_val_char.

        endif.

     else.

        perform bdc_screen using 'SAPMF05A' '0302'.

        IF NOT t_dados-zfbdt IS INITIAL.

           PERFORM bdc_field USING 'BSEG-ZFBDT' t_dados-zfbdt.

        ENDIF.

       read table itab_oculto with key campo = 'BSEG-GSBER' CHAVE = 'D'.

         IF SY-SUBRC <> 0.

           if not t_dados-d_gsber is initial.

             perform bdc_field using 'BSEG-GSBER' T_DADOS-D_GSBER.

           endif.

          endif.

     endif.

        perform bdc_field  using:

          'BSEG-WRBTR'  v_wrbtr .

       read table itab_oculto with key campo = 'BSEG-ZUONR' chave = 'D'.

       if sy-subrc <> 0.

         perform bdc_field using 'BSEG-ZUONR' t_dados-d_zuonr.

       endif.

         perform bdc_field  using:

          'BSEG-SGTXT'  t_dados-d_sgtxt,

          'BDC_OKCODE'  '/00'.

    if t_dados-newbs is initial or t_dados-newbs eq '50' .

      perform bdc_screen using 'SAPLKACB' '0002'.

      read table itab_oculto with key campo = 'COBL-GSBER' chave = 'D'.

      if sy-subrc <> 0.

        if not t_dados-d_gsber is initial.

          perform bdc_field  using 'COBL-GSBER' t_dados-d_gsber.

        endif.

      endif.

      perform bdc_field using:

           'BDC_OKCODE'   '=ENTE'.

    endif.

    if t_dados-newbs is initial or t_dados-newbs eq '50' .

      perform bdc_screen using 'SAPMF05A' '0300'.

      perform bdc_field using  'DKACB-FMORE'  ' '.

    else.

      perform bdc_screen using 'SAPMF05A' '0302'.

    endif.

      perform bdc_field using:

            'BDC_OKCODE'   '=PA'.

    else.

      perform bdc_field using:'BDC_OKCODE'   '=SL'.

    endif.

   select single selps from t021r

     into  v_xpos

     where event = 'SL-AG'

       and feldn = 'BELNR'.

     add 1 to v_xpos.

    write WA_zycbt089-num_selecao to v_selecao.

    if v_selecao gt v_xpos_belnr  .

      shift v_xpos_belnr left deleting leading  '0'.

      add 1 to v_xpos_belnr.

      perform bdc_screen using 'SAPMF05A' '0710'.

      concatenate 'RF05A-XPOS1(' v_xpos_belnr ')' into v_xpos.

      perform bdc_field using:

           'RF05A-AGBUK'   t_dados-bukrs,

           'RF05A-AGKON'   t_dados-agkon,

           'RF05A-AGKOA'   t_dados-agkoa,

           'RF05A-AGUMS'   t_dados-agums,

           'RF05A-AVSID'   t_dados-avsid,

              v_xpos        'X',

              'BDC_OKCODE'  '=PA'.

    else.

      shift v_xpos_belnr left deleting leading  '0'.

      concatenate 'RF05A-XPOS1(' v_selecao ')' into v_xpos.

      perform bdc_screen using 'SAPMF05A' '0710'.

      perform bdc_field  using: 'BDC_OKCODE'    '/00'.

      perform bdc_field using:

           'RF05A-AGBUK'   t_dados-bukrs,

           'RF05A-AGKON'   t_dados-agkon,

           'RF05A-AGKOA'   t_dados-agkoa,

           'RF05A-AGUMS'   t_dados-agums,

           'RF05A-AVSID'   t_dados-avsid,

              v_xpos         'X',

              'BDC_OKCODE'  '/00'.

        while v_xpos_belnr > 10.

          v_xpos_belnr = v_xpos_belnr - 10.

          perform bdc_screen using 'SAPMF05A'   '0608'.

          perform bdc_field using 'BDC_OKCODE'  'P+'.

          shift v_xpos_belnr left deleting leading  '0'.

        endwhile.

      concatenate 'RF05A-XPOS1(' v_xpos_belnr ')' into v_xpos.

      perform bdc_screen using 'SAPMF05A' '0608'.

      perform bdc_field using:

              v_xpos        'X',

              'BDC_OKCODE'  '/00'.

    endif.

  perform bdc_screen using 'SAPMF05A' '0731'.

    clear v_cont.

    loop at t_zycbt036 where tcode  = t_dados-tcode

                         and tabela = t_dados-tabela

                         and cpochv = t_dados-cpochv.

      add 1 to v_cont.

      concatenate 'RF05A-SEL01(' v_cont ')' into v_campo.

      perform bdc_field using v_campo t_zycbt036-belnr.

    endloop.

    if v_zuonr is initial.

      perform bdc_field using:

        'BDC_OKCODE'     '=PA'.

    else.

      perform bdc_field using:

        'BDC_OKCODE'     '/00'.

    perform bdc_screen using 'SAPMF05A' '0731'.

    perform bdc_field using:

      'BDC_CURSOR' 'RF05A-SEL01(01)',

      'BDC_OKCODE' '=SLK'.

    select single selps from t021r

      into  v_xpos

      where event = 'SL-AG'

        and feldn = 'ZUONR'.

    add 1 to v_xpos.

    perform bdc_screen using 'SAPMF05A' '0710'.

    perform bdc_field using:

      'RF05A-XPOS1(01)'         ' ',

      'BDC_OKCODE'             '=PA'.

    concatenate 'RF05A-XPOS1(' v_xpos ')' into v_campo.

    perform bdc_field using:

            v_campo        'X',

           'BDC_CURSOR'     v_campo.

      perform bdc_screen using 'SAPMF05A' '0731'.

      perform bdc_field using:

        'RF05A-SEL01(01)'         v_zuonr,

        'BDC_OKCODE'                '=PA'.

    endif.

   perform bdc_screen using 'SAPDF05X'   '3100'.

   perform bdc_field using  'BDC_OKCODE' '=DBR'.

   perform bdc_screen using 'SAPDF05X' '3100'.

   perform bdc_field using: 'BDC_OKCODE' '=OMX'.

   perform bdc_screen using 'SAPDF05X' '3100'.

   perform bdc_field using: 'BDC_OKCODE' '=Z+'.

   perform bdc_screen using 'SAPDF05X' '3100'.

   perform bdc_field using: 'BDC_CURSOR' 'DF05B-PSDIF(01)',

                            'BDC_OKCODE' '=PI'.

    perform bdc_screen using 'SAPDF05X'   '3100'.

    perform bdc_field using: 'BDC_OKCODE' '=BU'.

    refresh itab_msg.

    clear itab_msg.

    v_transacao = 'F-51'.

    v_update = 'S'.

    v_msgid = 'F5'.

    v_msgno = '312'.

    if v_modo is initial.

       v_mode = 'N'.

    else.

       v_mode = v_modo.

    endif.

    perform  call_transaction tables   itab_msg

                                       itab_bdc

                                       t_zycbt032

                                       t_dados

                              using    v_transacao

                                       v_mode

                                       v_update

                                       v_msgid

                                       v_msgno

                              changing v_nrmsg.

  endloop.

  free:

    itab_bdc,

    itab_msg.

endfunction.

* << Fim da inclusão

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_51I

 

* >> Início da inclusão:

function /pws/zycb_transacao_f_51i .

  data:

    v_cont(2) type n,

    v_tabix   like sy-tabix,

    v_campo(15),

    v_bldat(10),

    v_budat(10),

    v_wrbtr(16),

    v_residuo(15),

    v_kursf(9),

    v_xpos(2)            type n,

    v_taxam              like bkpf-kursf,

    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_msgno              like t100-msgnr,

    v_koart              like t001b-mkoar,

    v_ok(1)              value 'N',

    v_monat              like t001b-frpe1,

    v_bukrs              like t001-bukrs,

    v_gjahr              like t001b-frye1,

    v_valut(10),

    v_date               like t009b-bdatj,

    v_periv(2),

    v_periodo(2),

    v_data_val_char(10)  type c,

    v_xpos1(2) type n,

    v_xpos_comp(14),

    v_xpos_belnr(2) type n,

    v_selecao(2)    TYPE N.

  data: itab_t041t like t041t occurs 0 with header line.

  data: wa_zycbt089 like /pws/zycbt089.

  clear v_xpos1.

  select * from t041t into table itab_t041t

       where spras = sy-langu.

  read table itab_t041t with key auglv = 'UMBUCHNG'.

  v_xpos1 = sy-tabix.

  shift v_xpos1 left deleting leading '0'.

  concatenate 'RF05A-XPOS1(' v_xpos1 ')' into v_xpos_comp.

  select single selps from t021r

    into  v_xpos_belnr

    where event = 'SL-AG'

      and feldn = 'BELNR'.

  add 1 to v_xpos_belnr.

  loop at t_dados.

    select single * from /pws/zycbt089 into  wa_zycbt089

           where bukrs eq t_dados-bukrs.

  CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

    EXPORTING

      v_bukrs                      = t_dados-bukrs

      v_date                       = t_dados-budat

   IMPORTING

      V_YEAR                       = v_date.

    check t_dados-tcode = 'F-51'.

    if ( t_dados-bukrs = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'BKPF-BUKRS'.

      t_campo-descricao = text-021.

      append t_campo.

      raise campo_em_branco.

    endif.

    if ( t_dados-d_newko = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'RF05A-NEWKO'.

      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-bukrs   to v_bukrs.

    select single periv from t001

                 into v_periv

                 where bukrs eq v_bukrs.

    call function 'DETERMINE_PERIOD'

         exporting

              date                = t_dados-budat

              version             = v_periv

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'K'.

    PERFORM check_periodo USING    v_koart

                                   v_bukrs

                          CHANGING v_budat

                                   v_ok

                                   v_monat

                                   v_gjahr.

    move v_budat+6(4) to v_gjahr.

    move v_monat+1(2) to v_periodo.

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

            'BKPF-WAERS'  t_dados-waers,

            'BKPF-KURSF'  v_kursf,

            'BKPF-XBLNR'  t_dados-xblnr,

            'BKPF-BKTXT'  t_dados-bktxt,

            'RF05A-AUGTX' t_dados-augtx,

            v_xpos_comp   'X',

            'BDC_OKCODE'  '=SL'.

    if t_dados-wrbtr ne 0.

      perform bdc_field using:

        'RF05A-NEWKO'   t_dados-d_newko.

      if t_dados-newbs is initial.

        perform bdc_field using:

          'RF05A-NEWBS'  '40'.

      else.

        perform bdc_field using: 'RF05A-NEWBS' t_dados-newbs.

        if t_dados-newbs eq '50'.

          clear t_dados-newbs.

        endif.

      endif.

      write: t_dados-d_valut to v_data_val_char,

             t_dados-wrbtr to v_wrbtr  currency     t_dados-waers.

      if t_dados-newbs is initial.

        perform bdc_screen using: 'SAPMF05A'     '0300'.

      else.

        perform bdc_screen using 'SAPMF05A' '0302'.

        if not t_dados-zfbdt is initial.

          perform bdc_field using 'BSEG-ZFBDT' t_dados-zfbdt.

        endif.

      endif.

      perform bdc_field  using:

        'BSEG-WRBTR'  v_wrbtr .

      perform bdc_field using

        'BSEG-BUPLA' t_dados-brnch.

      read table itab_oculto with key campo = 'BSEG-ZUONR' chave = 'D'.

      if sy-subrc <> 0.

        perform bdc_field using 'BSEG-ZUONR' t_dados-d_zuonr.

      endif.

      read table itab_oculto with key campo = 'BSEG-GSBER' chave = 'D'.

      if sy-subrc <> 0.

        if not t_dados-d_gsber is initial.

          perform bdc_field using 'BSEG-GSBER' t_dados-d_gsber.

        endif.

      endif.

      perform bdc_field  using:

       'BSEG-SGTXT'  t_dados-c_sgtxt,

       'BDC_OKCODE'  '/00'.

      if t_dados-newbs is initial.

        perform bdc_screen using 'SAPLKACB' '0002'.

       read table itab_oculto with key campo = 'COBL-GSBER' chave = 'D'.

        if sy-subrc <> 0.

          if not t_dados-d_gsber is initial.

            perform bdc_field  using 'COBL-GSBER' t_dados-d_gsber.

          endif.

        endif.

        perform bdc_field using:

             'BDC_OKCODE'   '=ENTE'.

        if t_dados-newbs is initial.

          perform bdc_screen using: 'SAPMF05A'     '0300'.

        else.

          perform bdc_screen using: 'SAPMF05A'     '0302'.

        endif.

        perform bdc_field using:'BDC_OKCODE'   '=SL'.

        perform bdc_screen using 'SAPLKACB' '0002'.

        perform bdc_field using:'BDC_OKCODE'   '=ENTE'.

      endif.

    endif.

    write WA_zycbt089-num_selecao to v_selecao.

    if v_selecao gt v_xpos_belnr  .

      shift v_xpos_belnr left deleting leading  '0'.

      perform bdc_screen using 'SAPMF05A' '0710'.

      concatenate 'RF05A-XPOS1(' v_xpos_belnr ')' into v_xpos.

      perform bdc_field using:

            'RF05A-AGKON' t_dados-agkon,

            'RF05A-AGUMS' t_dados-agums,

            'RF05A-AGKOA' t_dados-agkoa,

              v_xpos        'X',

              'BDC_OKCODE'  '=PA'.

    else.

      subtract 1 from v_xpos_belnr.

      shift v_xpos_belnr left deleting leading  '0'.

      concatenate 'RF05A-XPOS1(' v_selecao ')' into v_xpos.

      perform bdc_screen using 'SAPMF05A' '0710'.

      perform bdc_field  using: 'BDC_OKCODE'    '/00'.

      perform bdc_field using:

            'RF05A-AGKON' t_dados-agkon,

            'RF05A-AGUMS' t_dados-agums,

            'RF05A-AGKOA' t_dados-agkoa,

              v_xpos         'X',

              'BDC_OKCODE'  '/00'.

        while v_xpos_belnr > 10.

          v_xpos_belnr = v_xpos_belnr - 10.

          perform bdc_screen using 'SAPMF05A'   '0608'.

          perform bdc_field using 'BDC_OKCODE'  'P+'.

          shift v_xpos_belnr left deleting leading  '0'.

        endwhile.

      concatenate 'RF05A-XPOS1(' v_xpos_belnr ')' into v_xpos.

      perform bdc_screen using 'SAPMF05A' '0608'.

      perform bdc_field using:

              v_xpos        'X',

              'BDC_OKCODE'  '/00'.

    endif.

    perform bdc_screen using 'SAPMF05A' '0731'.

    clear v_cont.

    loop at t_zycbt036 where tcode  = t_dados-tcode

                         and tabela = t_dados-tabela

                         and cpochv = t_dados-cpochv.

      add 1 to v_cont.

      concatenate 'RF05A-SEL01(' v_cont ')' into v_campo.

      perform bdc_field using v_campo t_zycbt036-belnr.

      if v_cont = 5.

        clear v_cont.

        perform bdc_screen using 'SAPDF05X' '0731'.

        perform bdc_field using: 'BDC_OKCODE' '/00'.

      endif.

    endloop.

    perform bdc_field using:

      'BDC_OKCODE'     '=PA'.

    perform bdc_screen using 'SAPDF05X' '3100'.

    perform bdc_field using: 'BDC_OKCODE' 'DBR'.

    perform bdc_screen using 'SAPDF05X' '3100'.

    perform bdc_field using 'BDC_CURSOR'  'DF05B-PSDIF(01)'.

    perform bdc_field using 'BDC_OKCODE'  '=OMX'.

    perform bdc_screen using 'SAPDF05X' '3100'.

    perform bdc_field using 'BDC_CURSOR'  'DF05B-PSDIF(01)'.

    perform bdc_field using 'BDC_OKCODE'  '=Z+'.

    perform bdc_field using 'BDC_OKCODE'  '=BS'.

    perform bdc_screen using 'SAPMF05A' '0700'.

    concatenate 'RF05A-AZEI1(' v_cont ')' into v_campo.

    perform bdc_field using:

      'BDC_CURSOR'  'RF05A-AZEI1(01)',

      'BDC_OKCODE'  '=BU'.

    refresh itab_msg.

    clear itab_msg.

    v_transacao = 'F-51'.

    v_update = 'S'.

    v_msgid = 'F5'.

    v_msgno = '312'.

    if v_modo is initial.

      v_mode = 'N'.

    else.

      v_mode = v_modo.

    endif.

    perform  call_transaction tables itab_msg

                                     itab_bdc

                                     t_zycbt032

                                     t_dados

                              using  v_transacao

                                     v_mode

                                     v_update

                                     v_msgid

                                     v_msgno

                              changing v_nrmsg.

  endloop.

  free:

    itab_bdc,

    itab_msg.

endfunction.

* << Fim da inclusão

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_53

 

* >> Início da inclusão:

FUNCTION /pws/zycb_transacao_f_53.

  DATA:

    v_bldat(10),

    v_budat(10),

    v_valut(10),

    v_wrbtr(16),

    v_dmbtr(16),

    v_kursf(9),

    v_xpos(14),

    v_taxam              LIKE bkpf-kursf,

    v_string_debito      LIKE tbsl-faus1,

    v_chave_debito       LIKE tbsl-bschl VALUE '40',

    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_msgno              LIKE t100-msgnr,

    v_koart              LIKE t001b-mkoar,

    v_ok(1)              VALUE 'N',

    v_monat              LIKE t001b-frpe1,

    v_bukrs              LIKE t001-bukrs,

    v_date               LIKE t009b-bdatj,

    v_periv(2),

    v_periodo(2),

    v_gjahr              LIKE t001b-frye1,

    v_xpos1(2) TYPE n,

    v_xpos_budat(14),

    v_dtdocto(10),

    v_selecao(2)    TYPE N,

    V_XPOS_BELNR(2) type n.

  data: wa_zycbt089 like /pws/zycbt089.

  clear v_xpos_belnr.

  select single selps from t021r

    into  v_xpos_belnr

    where event = 'SL-AG'

      and feldn = 'BELNR'.

  CLEAR v_xpos1.

  SELECT SINGLE selps FROM t021r

    INTO  v_xpos1

    WHERE event = 'SU-AG'

      AND feldn = 'BUDAT'.

  SHIFT v_xpos1 LEFT DELETING LEADING  '0'.

  CONCATENATE 'RF05A-XPOS1(' v_xpos1 ')' INTO v_xpos_budat.

  LOOP AT t_dados.

    SELECT SINGLE * FROM /pws/zycbt089 INTO  wa_zycbt089

           WHERE bukrs EQ t_dados-bukrs.

    call function '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

         exporting

              v_bukrs = t_dados-bukrs

              v_date  = t_dados-budat

         importing

              v_year  = v_date.

    CHECK t_dados-tcode = 'F-53'.

    IF ( t_dados-bukrs = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'BKPF-BUKRS'.

      t_campo-descricao = text-021.

      APPEND t_campo.

      RAISE campo_em_branco.

    ENDIF.

    IF ( t_dados-c_newko = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'RF05A-KONTO'.

      t_campo-descricao = text-020.

      APPEND t_campo.

      RAISE campo_em_branco.

    ENDIF.

    PERFORM determina_string USING v_chave_debito

                                   t_dados-bukrs

                                   t_dados-c_newko

                             CHANGING v_string_debito.

    CLEAR itab_oculto.

    REFRESH itab_oculto.

    PERFORM trata_string_debito TABLES t_dados

                                       t_campo

                                       itab_oculto

                                USING  v_string_debito.

    WRITE: t_dados-bukrs   TO v_bukrs,

           t_dados-bldat   TO v_bldat,

           t_dados-budat   TO v_budat,

           t_dados-c_valut TO v_valut,

           t_dados-kursf   TO v_kursf,

           t_dados-wrbtr   TO v_wrbtr CURRENCY t_dados-waers,

           t_dados-dmbtr   TO v_dmbtr CURRENCY t_dados-waersb.

    SELECT SINGLE periv FROM t001

                 INTO v_periv

                 WHERE bukrs EQ v_bukrs.

    CALL FUNCTION 'DETERMINE_PERIOD'

         EXPORTING

              date                = t_dados-budat

              version             = v_periv

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

                                   v_bukrs

                          CHANGING v_budat

                                   v_ok

                                   v_monat

                                   v_gjahr.

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    PERFORM bdc_screen USING 'SAPMF05A' '0103'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  t_dados-bukrs,

            'BKPF-BUDAT'  v_budat,

            'BKPF-MONAT'  v_periodo,

            '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-KONTO' t_dados-c_newko.

    IF NOT t_dados-agkoa IS INITIAL.

      PERFORM bdc_field USING 'RF05A-AGKOA' t_dados-agkoa.

    ENDIF.

    READ TABLE itab_oculto WITH KEY campo = 'COBL-GSBER' chave = 'C'.

    IF sy-subrc <> 0.

      IF NOT t_dados-c_gsber IS INITIAL.

        PERFORM bdc_field USING 'BSEG-GSBER' t_dados-c_gsber.

      ENDIF.

    ENDIF.

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

    IF sy-subrc <> 0.

      IF NOT t_dados-c_valut IS INITIAL.

        PERFORM bdc_field USING 'BSEG-VALUT' t_dados-c_valut.

      ENDIF.

    ENDIF.

    PERFORM bdc_field USING:

            'BSEG-WRBTR'  v_wrbtr,

            'BSEG-DMBTR'  v_dmbtr,

            'BSEG-VALUT'  v_valut,

            'BSEG-ZUONR'  t_dados-c_zuonr,

            'RF05A-AGKON' t_dados-agkon.

    IF v_xpos_belnr le 5  .

      ADD 1 TO v_xpos_belnr.

      SHIFT v_xpos_belnr LEFT DELETING LEADING  '0'.

      CONCATENATE 'RF05A-XPOS1(' v_xpos_belnr ')' INTO v_xpos.

      PERFORM bdc_field USING:

            v_xpos        'X',

              'BDC_OKCODE'  '=PA'.

    ELSE.

      SHIFT v_xpos_belnr LEFT DELETING LEADING  '0'.

      perform bdc_field using:

              'RF05A-XPOS1(6)'  'X',

              'BDC_OKCODE'     '/00'.

        while v_xpos_belnr > 10.

          v_xpos_belnr = v_xpos_belnr - 10.

          perform bdc_screen using 'SAPMF05A'   '0608'.

          perform bdc_field using 'BDC_OKCODE'  'P+'.

          shift v_xpos1 left deleting leading  '0'.

        endwhile.

      concatenate 'RF05A-XPOS1(' v_xpos_belnr ')' into v_xpos.

      perform bdc_screen using 'SAPMF05A' '0608'.

      perform bdc_field using:

              v_xpos        'X',

              'BDC_OKCODE'  '/00'.

    ENDIF.

    PERFORM bdc_screen USING 'SAPMF05A' '0731'.

    PERFORM bdc_field USING:

            'RF05A-SEL01(01)' t_dados-belnr,

            'BDC_OKCODE'      '=PA'.

    IF NOT t_dados-dtdocto IS INITIAL.

      PERFORM bdc_screen USING 'SAPDF05X'   '3100'.

      PERFORM bdc_field  USING 'BDC_CURSOR' 'RF05A-ABPOS'.

      PERFORM bdc_field  USING 'BDC_OKCODE' '=OMX'.

      PERFORM bdc_screen USING 'SAPDF05X'   '3100'.

      PERFORM bdc_field  USING 'BDC_CURSOR' 'RF05A-ABPOS'.

      PERFORM bdc_field  USING 'BDC_OKCODE' '=Z-'.

      PERFORM bdc_screen USING 'SAPDF05X'    '3100'.

      PERFORM bdc_field  USING 'BDC_SUBSCR'  'SAPDF05X'.

      PERFORM bdc_field  USING 'BDC_CURSOR'  'DF05B-PSSKT(01)'.

      PERFORM bdc_field  USING 'RF05A-ABPOS' '1'.

      PERFORM bdc_field  USING 'BDC_OKCODE'  '=OSU'.

      PERFORM bdc_screen USING 'SAPDF05X'   '2000'.

      PERFORM bdc_field USING 'BDC_CURSOR'  v_xpos_budat.

      PERFORM bdc_field  USING v_xpos_budat 'X'.

      PERFORM bdc_field  USING 'BDC_OKCODE'  '=GO'.

      PERFORM bdc_screen USING 'SAPDF05X'        '0732'.

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

      WRITE t_dados-dtdocto TO v_dtdocto.

      PERFORM bdc_field USING  'RF05A-VONDT(01)' v_dtdocto.

      PERFORM bdc_field USING  'RF05A-BISDT(01)' v_dtdocto.

      PERFORM bdc_field  USING 'BDC_OKCODE' '=GO'.

    ENDIF.

    PERFORM bdc_screen USING 'SAPDF05X' '3100'.

    PERFORM bdc_field USING:

            'BDC_OKCODE'      '=OMX'.

    PERFORM bdc_screen USING 'SAPDF05X' '3100'.

    PERFORM bdc_field USING:

            'BDC_OKCODE'      '=Z+'.

    PERFORM bdc_screen USING 'SAPDF05X' '3100'.

    PERFORM bdc_field USING:

            'BDC_OKCODE'      '=BU'.

    REFRESH itab_msg.

    CLEAR itab_msg.

    v_transacao = 'F-53'.

    v_update = 'S'.

    v_msgid = 'F5'.

    v_msgno = '312'.

    IF v_modo IS INITIAL.

      v_mode = 'N'.

    ELSE.

      v_mode = v_modo.

    ENDIF.

    PERFORM  call_transaction TABLES itab_msg

                                     itab_bdc

                                     t_zycbt032

                                     t_dados

                              USING  v_transacao

                                     v_mode

                                     v_update

                                     v_msgid

                                     v_msgno

                              CHANGING v_nrmsg.

  ENDLOOP.

  FREE:

    itab_bdc,

    itab_msg.

ENDFUNCTION.

* << Fim da inclusão

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_53A

 

* >> Início da inclusão:

function /pws/zycb_transacao_f_53a.

  data:

    v_bldat(10),

    v_budat(10),

    v_valut(10),

    v_wrbtr(16),

    v_dmbtr(16),

    v_kursf(9),

    v_xpos(14),

    v_taxam              like bkpf-kursf,

    v_string_debito      like tbsl-faus1,

    v_chave_debito       like tbsl-bschl value '40',

    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_msgno              like t100-msgnr,

    v_koart              like t001b-mkoar,

    v_ok(1)              value 'N',

    v_monat              like t001b-frpe1,

    v_bukrs              like t001-bukrs,

    v_cont(2)            type n,

    v_campo(15),

    v_date               like t009b-bdatj,

    v_periv(2),

    v_periodo(2),

    v_gjahr              like t001b-frye1,

    v_xpos1(2) type n,

    v_selecao(2)    TYPE N,

    v_xpos_BELNR(2) type n.

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

  concatenate 'RF05A-XPOS1(' v_xpos1 ')' into v_xpos.

  clear v_XPOS_BELNR.

  select single selps from t021r

    into  v_xpos_belnr

    where event = 'SL-AG'

      and feldn = 'BELNR'.

 loop at t_dados.

  call function '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

    exporting

      v_bukrs                      = t_dados-bukrs

      v_date                       = t_dados-budat

   importing

      v_year                       = v_date.

    check t_dados-tcode = 'F-53'.

    if ( t_dados-bukrs = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'BKPF-BUKRS'.

      t_campo-descricao = text-021.

      append t_campo.

      raise campo_em_branco.

    endif.

    if ( t_dados-c_newko = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'RF05A-KONTO'.

      t_campo-descricao = text-020.

      append t_campo.

      raise campo_em_branco.

    endif.

    perform determina_string using v_chave_debito

                                   t_dados-bukrs

                                   t_dados-c_newko

                             changing v_string_debito.

    clear itab_oculto.

    refresh itab_oculto.

    perform trata_string_debito tables t_dados

                                       t_campo

                                       itab_oculto

                                using  v_string_debito.

    write: t_dados-bukrs   to v_bukrs,

           t_dados-bldat   to v_bldat,

           t_dados-budat   to v_budat,

           t_dados-c_valut to v_valut,

           t_dados-kursf   to v_kursf,

           t_dados-wrbtr   to v_wrbtr currency t_dados-waers,

           t_dados-dmbtr   to v_dmbtr currency t_dados-waersb.

    select single periv from t001

                 into v_periv

                 where bukrs eq v_bukrs.

    call function 'DETERMINE_PERIOD'

         exporting

              date                = t_dados-budat

              version             = v_periv

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

    v_gjahr = v_date.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

                                   v_bukrs

                          CHANGING v_budat

                                   v_ok

                                   v_monat

                                   v_gjahr.

      move v_date to v_gjahr.

      move v_monat+1(2) to v_periodo.

    perform bdc_screen using 'SAPMF05A' '0103'.

    perform bdc_field using:

            'BKPF-BLDAT'  v_bldat,

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  t_dados-bukrs,

            'BKPF-BUDAT'  v_budat,

            'BKPF-MONAT'  v_periodo,

            '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-KONTO' t_dados-c_newko.

    if not t_dados-agkoa is initial.

      perform bdc_field using 'RF05A-AGKOA' t_dados-agkoa.

    endif.

    read table itab_oculto with key campo = 'COBL-GSBER' chave = 'C'.

    if sy-subrc <> 0.

      if not t_dados-c_gsber is initial.

        perform bdc_field using 'BSEG-GSBER' t_dados-c_gsber.

      endif.

    endif.

    read table itab_oculto with key campo = 'BSEG-VALUT' chave = 'C'.

    if sy-subrc <> 0.

      if not t_dados-c_valut is initial.

        perform bdc_field using 'BSEG-VALUT' t_dados-c_valut.

      endif.

    endif.

    read table itab_oculto with key campo = 'BSEG-ZUONR' chave = 'C'.

    if sy-subrc <> 0.

      if not t_dados-c_zuonr is initial.

        perform bdc_field using 'BSEG-ZUONR' t_dados-c_zuonr.

      endif.

    endif.

    perform bdc_field using:

            'BSEG-WRBTR'  v_wrbtr,

            'BSEG-DMBTR'  v_dmbtr,

            'BSEG-VALUT'  v_valut,

            'RF05A-AGKON' t_dados-agkon.

    IF v_xpos_belnr le 5  .

      ADD 1 TO v_xpos_belnr.

      SHIFT v_xpos_belnr LEFT DELETING LEADING  '0'.

      CONCATENATE 'RF05A-XPOS1(' v_xpos_belnr ')' INTO v_xpos.

      PERFORM bdc_field USING:

            v_xpos        'X',

              'BDC_OKCODE'  '=PA'.

    ELSE.

      SHIFT v_xpos_belnr LEFT DELETING LEADING  '0'.

      perform bdc_field using:

              'RF05A-XPOS1(6)'  'X',

              'BDC_OKCODE'     '/00'.

        while v_xpos_belnr > 10.

          v_xpos_belnr = v_xpos_belnr - 10.

          perform bdc_screen using 'SAPMF05A'   '0608'.

          perform bdc_field using 'BDC_OKCODE'  'P+'.

          shift v_xpos1 left deleting leading  '0'.

        endwhile.

      concatenate 'RF05A-XPOS1(' v_xpos_belnr ')' into v_xpos.

      perform bdc_screen using 'SAPMF05A' '0608'.

      perform bdc_field using:

              v_xpos        'X',

              'BDC_OKCODE'  '/00'.

    ENDIF.

    clear : v_cont.

    perform bdc_screen using 'SAPMF05A' '0731'.

     loop at t_zycbt036 where tcode  = t_dados-tcode

                          and tabela = t_dados-tabela

                          and cpochv = t_dados-cpochv.

      add 1 to v_cont.

      concatenate 'RF05A-SEL01(' v_cont ')' into v_campo.

      perform bdc_field using v_campo t_zycbt036-belnr.

    endloop.

    perform bdc_screen using 'SAPMF05A'   '0731'.

    perform bdc_field  using 'BDC_CURSOR' 'RF05A-SEL01(01)'.

    perform bdc_field  using 'BDC_OKCODE' '=PA'.

    perform bdc_screen using 'SAPDF05X' '3100'.

    perform bdc_field using:

            'BDC_OKCODE'      '=OMX'.

    perform bdc_screen using 'SAPDF05X' '3100'.

    perform bdc_field using:

            'BDC_OKCODE'      '=Z+'.

    perform bdc_screen using 'SAPDF05X' '3100'.

    perform bdc_field using:

            'BDC_OKCODE'      '=BU'.

    refresh itab_msg.

    clear itab_msg.

    v_transacao = 'F-53'.

    v_update = 'S'.

    v_msgid = 'F5'.

    v_msgno = '312'.

    if v_modo is initial.

      v_mode = 'N'.

    else.

      v_mode = v_modo.

    endif.

    perform  call_transaction tables itab_msg

                                     itab_bdc

                                     t_zycbt032

                                     t_dados

                              using  v_transacao

                                     v_mode

                                     v_update

                                     v_msgid

                                     v_msgno

                              changing v_nrmsg.

  endloop.

  free:

    itab_bdc,

    itab_msg.

endfunction.

* << Fim da inclusão

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_63

 

* >> Início da inclusão:

FUNCTION /pws/zycb_transacao_f_63.

  DATA:

    v_string_debito      LIKE tbsl-faus1,

    v_data_doc_char(10)  TYPE c,

    v_data_val_char(10)  TYPE c,

    v_data_lanc_char(10) TYPE c,

    v_data_venc_char(10) TYPE c,

    v_base_char(16)      TYPE c,

    v_kursf(9)           TYPE c,

    v_wrbtr(16)          TYPE c,

    v_dmbtr(16)          TYPE c,

    v_chave_debito       LIKE tbsl-bschl VALUE '40',

    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_msgno              LIKE t100-msgnr,

    v_koart              LIKE t001b-mkoar,

    v_ok(1)              VALUE 'N',

    v_monat              LIKE t001b-frpe1,

    v_bukrs              LIKE t001-bukrs,

    v_gjahr              LIKE t001b-frye1,

    v_chave_credito      TYPE tbsl-bschl VALUE '31',

    v_string_credito     TYPE tbsl-faus1,

    v_conta              TYPE lfb1-akont,

    v_pep                LIKE prps-posid,

    v_date               LIKE t009b-bdatj,

    v_periv(2),

    v_periodo(2),

    v_dconta             LIKE /pws/zycbe033-d_newko.

  LOOP AT t_dados.

    CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

         EXPORTING

              v_bukrs                = t_dados-bukrs

              v_date                 = t_dados-budat

         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.

    CHECK t_dados-tcode = 'F-63'.

    IF ( t_dados-bukrs = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'BKPF-BUKRS'.

      t_campo-descricao = text-021.

      APPEND t_campo.

      RAISE campo_em_branco.

    ENDIF.

    IF ( t_dados-d_newko = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'RF05V-NEWKO'.

      t_campo-descricao = text-020.

      APPEND t_campo.

      RAISE campo_em_branco.

    ENDIF.

   IF t_dados-newbs EQ '29'.

      v_chave_debito = '29'.

      SELECT SINGLE akont FROM lfb1

        INTO lfb1-akont

        WHERE lifnr = t_dados-d_newko

          AND bukrs = t_dados-bukrs.

      SELECT SINGLE plcontas FROM /pws/zycbt007

                             INTO /pws/zycbt007-plcontas

                             WHERE bukrs EQ t_dados-bukrs.

      SELECT skont FROM t074 UP TO 1 ROWS

        INTO v_dconta

        WHERE ktopl = /pws/zycbt007-plcontas

          AND koart = 'K'

          AND umskz = t_dados-umskz

          AND hkont = lfb1-akont.

      ENDSELECT.

      PERFORM determina_string USING v_chave_debito

                                   t_dados-bukrs

                                   v_dconta

                             CHANGING v_string_debito.

    ELSE.

      PERFORM determina_string USING v_chave_debito

                                   t_dados-bukrs

                                   t_dados-d_newko

                             CHANGING v_string_debito.

    ENDIF.

    PERFORM trata_string_debito TABLES t_dados

                                       t_campo

                                       itab_oculto

                                USING  v_string_debito.

    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.

    SELECT SINGLE periv FROM t001

                 INTO v_periv

                 WHERE bukrs EQ v_bukrs.

    CALL FUNCTION 'DETERMINE_PERIOD'

         EXPORTING

              date                = t_dados-budat

              version             = v_periv

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'K'.

    PERFORM check_periodo USING    v_koart

                                   v_bukrs

                          CHANGING v_data_lanc_char

                                   v_ok

                                   v_monat

                                   v_gjahr.

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    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,

           'BKPF-MONAT'  v_periodo,

           'BKPF-WAERS'  t_dados-waers,

           'BKPF-KURSF'  v_kursf,

           'BKPF-XBLNR'  t_dados-xblnr,

           'BKPF-BKTXT'  t_dados-bktxt,

           'RF05V-NEWBS' '31',

           'RF05V-NEWKO' t_dados-agkon,

           'BDC_OKCODE' '/00'.

    IF NOT t_dados-brnch IS INITIAL.

      PERFORM bdc_field  USING 'BKPF-BRNCH'  t_dados-brnch.

    ENDIF.

    WRITE: t_dados-wrbtr TO v_wrbtr CURRENCY t_dados-waers,

           t_dados-dmbtr TO v_dmbtr CURRENCY t_dados-waersb.

    SELECT SINGLE akont FROM lfb1

      INTO v_conta

      WHERE lifnr = t_dados-agkon

      AND   bukrs = t_dados-bukrs.

    perform determina_string using v_chave_credito

                                   t_dados-bukrs

                                   v_conta

                          changing v_string_credito.

    PERFORM trata_string_credito TABLES t_dados

                                        t_campo

                                        itab_oculto

                                 USING  v_string_credito.

    PERFORM bdc_screen USING 'SAPLF040' '0302'.

    PERFORM bdc_field  USING:

         'BSEG-WRBTR' v_wrbtr.

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

    IF sy-subrc NE 0.

      IF NOT t_dados-zterm IS INITIAL.

        PERFORM bdc_field  USING 'BSEG-ZTERM' t_dados-zterm.

      ENDIF.

    ENDIF.

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

    IF sy-subrc NE 0.

      IF NOT v_dmbtr IS INITIAL.

        PERFORM bdc_field  USING 'BSEG-DMBTR' v_dmbtr.

      ENDIF.

    ENDIF.

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

    IF sy-subrc NE 0.

      IF NOT t_dados-brnch IS INITIAL.

        PERFORM bdc_field  USING 'BSEG-BUPLA' t_dados-brnch.

      ENDIF.

    ENDIF.

    READ TABLE itab_oculto WITH KEY campo = 'COBL-GSBER' chave = 'C'.

    IF sy-subrc <> 0.

      IF NOT t_dados-d_gsber IS INITIAL.

        PERFORM bdc_field  USING 'BSEG-GSBER' t_dados-d_gsber.

      ENDIF.

    ENDIF.

    PERFORM bdc_field  USING:

           'BSEG-ZUONR'  t_dados-c_zuonr,

           'BSEG-SGTXT'  t_dados-c_sgtxt,

           'RF05V-NEWBS' '40'.

    IF NOT ( t_dados-newbs IS INITIAL ).

      PERFORM bdc_field  USING 'RF05V-NEWBS' t_dados-newbs.

    ENDIF.

    PERFORM bdc_field USING 'RF05V-NEWKO' t_dados-d_newko.

    IF NOT ( t_dados-umskz IS INITIAL ) .

      PERFORM bdc_field  USING 'RF05V-NEWUM' t_dados-umskz.

    ENDIF.

    PERFORM bdc_field  USING  'BDC_OKCODE'  '/00'.

    clear lfbw.

    SELECT SINGLE * FROM lfbw WHERE lifnr = t_dados-agkon

                                AND bukrs = t_dados-bukrs.

    IF lfbw-wt_subjct = 'X'.

      PERFORM bdc_screen USING 'SAPLFWTD' '0100'.

      PERFORM bdc_field  USING  'BDC_OKCODE'  '/00'.

    ENDIF.

    IF v_predic EQ 'X'.

      PERFORM bdc_screen USING 'SAPLF040' '0302'.

      PERFORM bdc_field  USING:

             'BSEG-WRBTR' v_wrbtr,

             'BSEG-GSBER' t_dados-d_gsber,

             'BDC_OKCODE' '=BP'.

      READ TABLE itab_oculto WITH KEY campo = 'BSEG-DMBTR' chave = 'D'.

      IF sy-subrc NE 0.

        IF NOT v_dmbtr IS INITIAL.

          PERFORM bdc_field  USING 'BSEG-DMBTR' v_dmbtr.

        ENDIF.

      ENDIF.

      READ TABLE itab_oculto WITH KEY campo = 'BSEG-BUPLA' chave = 'D'.

      IF sy-subrc NE 0.

        IF NOT t_dados-brnch IS INITIAL.

          PERFORM bdc_field  USING 'BSEG-BUPLA' t_dados-brnch.

        ENDIF.

      ENDIF.

    ELSE.

    IF t_dados-newbs NE '29'.

        WRITE: t_dados-d_valut TO v_data_val_char.

        PERFORM bdc_screen USING 'SAPLF040' '0300'.

        PERFORM bdc_field  USING:

               'BSEG-WRBTR' v_wrbtr,

               'BSEG-ZUONR' t_dados-d_zuonr,

               'BSEG-SGTXT' t_dados-d_sgtxt,

               'BDC_OKCODE' '=BP'.

       READ TABLE itab_oculto WITH KEY campo = 'BSEG-DMBTR' chave = 'D'.

        IF sy-subrc NE 0.

          IF NOT v_dmbtr IS INITIAL.

            PERFORM bdc_field  USING 'BSEG-DMBTR' v_dmbtr.

          ENDIF.

        ENDIF.

       READ TABLE itab_oculto WITH KEY campo = 'BSEG-BUPLA' chave = 'D'.

        IF sy-subrc NE 0.

          IF NOT t_dados-brnch IS INITIAL.

            PERFORM bdc_field  USING 'BSEG-BUPLA' t_dados-brnch.

          ENDIF.

        ENDIF.

        PERFORM bdc_screen USING 'SAPLKACB' '0002'.

       READ TABLE itab_oculto WITH KEY campo = 'COBL-GSBER' chave = 'D'.

        IF sy-subrc <> 0.

          IF NOT t_dados-d_gsber IS INITIAL.

            PERFORM bdc_field  USING 'COBL-GSBER' t_dados-d_gsber.

          ENDIF.

        ENDIF.

        IF NOT t_dados-aufnr IS INITIAL.

          PERFORM bdc_field USING 'COBL-AUFNR' t_dados-aufnr.

        ENDIF.

       READ TABLE itab_oculto WITH KEY campo = 'COBL-KOSTL' chave = 'D'.

        IF sy-subrc <> 0.

          PERFORM bdc_field  USING:

               'COBL-KOSTL' t_dados-d_kostl.

        ENDIF.

  READ TABLE itab_oculto WITH KEY campo = 'COBL-PS_PSP_PNR' chave = 'D'.

        IF sy-subrc <> 0.

          IF NOT  t_dados-ps_psp_pnr IS INITIAL.

            CALL FUNCTION 'CONVERSION_EXIT_KONPR_OUTPUT'

                 EXPORTING

                      input  = t_dados-ps_psp_pnr

                 IMPORTING

                      output = v_pep.

            PERFORM bdc_field  USING:

               'COBL-PS_PSP_PNR' v_pep.

          ENDIF.

        ENDIF.

       READ TABLE itab_oculto WITH KEY campo = 'COBL-PRCTR' chave = 'D'.

        IF sy-subrc <> 0.

          IF NOT  t_dados-d_prctr IS INITIAL.

            PERFORM bdc_field  USING:

               'COBL-PRCTR' t_dados-d_prctr.

          ENDIF.

        ENDIF.

       READ TABLE itab_oculto WITH KEY campo = 'COBL-WERKS' chave = 'D'.

        IF sy-subrc <> 0.

          IF NOT  t_dados-werks IS INITIAL.

            PERFORM bdc_field USING 'COBL-WERKS' t_dados-werks.

          ENDIF.

        ENDIF.

        PERFORM bdc_field  USING:

               'BDC_OKCODE' '=ENTE'.

      ELSEIF t_dados-newbs EQ '29'.

        WRITE: t_dados-zfbdt TO v_data_venc_char.

        PERFORM bdc_screen USING 'SAPLF040' '0303'.

        PERFORM bdc_field  USING:

              'BSEG-WRBTR' v_wrbtr.

       READ TABLE itab_oculto WITH KEY campo = 'BSEG-DMBTR' chave = 'D'.

        IF sy-subrc NE 0.

          IF NOT v_dmbtr IS INITIAL.

            PERFORM bdc_field  USING 'BSEG-DMBTR' v_dmbtr.

          ENDIF.

        ENDIF.

       READ TABLE itab_oculto WITH KEY campo = 'COBL-GSBER' chave = 'D'.

        IF sy-subrc <> 0.

          IF NOT t_dados-d_gsber IS INITIAL.

            PERFORM bdc_field  USING 'BSEG-GSBER' t_dados-d_gsber.

          ENDIF.

        ENDIF.

        PERFORM bdc_field  USING:

               'BSEG-ZFBDT' v_data_venc_char.

       READ TABLE itab_oculto WITH KEY campo = 'COBL-FIPOS' chave = 'D'.

        IF sy-subrc <> 0.

          IF NOT t_dados-d_fipos IS INITIAL.

            PERFORM bdc_field USING 'BSEG-FIPOS' t_dados-d_fipos.

          ENDIF.

        ENDIF.

       READ TABLE itab_oculto WITH KEY campo = 'COBL-FISTL' chave = 'D'.

        IF sy-subrc <> 0.

          IF NOT t_dados-d_fictr IS INITIAL.

            PERFORM bdc_field USING 'BSEG-FISTL' t_dados-d_fictr.

          ENDIF.

        ENDIF.

        PERFORM bdc_field  USING:

               'BSEG-BUPLA' t_dados-brnch,

               'BSEG-ZUONR' t_dados-d_zuonr,

               'BSEG-SGTXT' t_dados-d_sgtxt,

               'BDC_OKCODE' '=BP'.

       READ TABLE itab_oculto WITH KEY campo = 'BSEG-BUPLA' chave = 'D'.

        IF sy-subrc NE 0.

          IF NOT t_dados-brnch IS INITIAL.

            PERFORM bdc_field  USING 'BSEG-BUPLA' t_dados-brnch.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDIF.

    CLEAR itab_msg.

    v_transacao = 'F-63'.

    v_update = 'S'.

    v_msgid = 'FP'.

    v_msgno = '001'.

    IF v_modo IS INITIAL.

      v_mode = 'N'.

    ELSE.

      v_mode = v_modo.

    ENDIF.

    PERFORM  call_transaction TABLES   itab_msg

                                       itab_bdc

                                       t_zycbt032

                                       t_dados

                              USING    v_transacao

                                       v_mode

                                       v_update

                                       v_msgid

                                       v_msgno

                              CHANGING v_nrmsg.

  ENDLOOP.

  FREE:

    itab_bdc,

    itab_msg.

ENDFUNCTION.

* << Fim da inclusão

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_63A

 

* >> Início da inclusão:

function /pws/zycb_transacao_f_63a.

  data:

    v_string_debito        like tbsl-faus1,

    v_data_doc_char(10)    type c,

    v_data_conv_char(10)   type c,

    v_data_conver_char(10) type c,

    v_data_val_char(10)    type c,

    v_data_lanc_char(10)   type c,

    v_data_venc_char(10)   type c,

    v_base_char(16)        type c,

    v_kursf(9)             type c,

    v_wrbtr(16)            type c,

    v_wrbtr1(16)           type c,

    v_wrbtr_irrf(20)       type c,

    v_chave_debito         like tbsl-bschl value '40',

    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_msgno                like t100-msgnr,

    v_koart                like t001b-mkoar,

    v_ok(1)                value 'N',

    v_monat                like t001b-frpe1,

    v_bukrs                like t001-bukrs,

    v_gjahr                like t001b-frye1,

    v_skfbt                like bseg-skfbt value 0,

    v_pep                  like prps-posid,

    v_dconta               like /pws/zycbe033-d_newko,

    v_conta                like lfb1-akont,

    v_index_aux            like sy-tabix,

    v_date                 like t009b-bdatj,

    v_periv(2),

    v_periodo(2),

    v_index_aux2           like sy-tabix.

  data: t_debito_aux       like /pws/zycbe035 occurs 0 with header line.

  loop at t_dados.

  call function '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

    exporting

      v_bukrs                      = t_dados-bukrs

      v_date                       = t_dados-budat

   importing

      v_year                       = v_date.

    check t_dados-tcode = 'F-63'.

    if ( t_dados-bukrs = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'BKPF-BUKRS'.

      t_campo-descricao = text-021.

      append t_campo.

      raise campo_em_branco.

    endif.

    if ( t_dados-c_newko = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'RF05V-NEWKO'.

      t_campo-descricao = text-020.

      append t_campo.

      raise campo_em_branco.

    endif.

   if t_dados-newbs eq '29'.

      v_chave_debito = '29'.

      select single akont

        from lfb1

        into lfb1-akont

        where lifnr = t_dados-d_newko

          and bukrs = t_dados-bukrs.

      select single plcontas from /pws/zycbt007

                             into /pws/zycbt007-plcontas

                             where bukrs eq t_dados-bukrs.

      select skont from t074 up to 1 rows

        into v_dconta

        where ktopl = /pws/zycbt007-plcontas

          and koart = 'K'

          and umskz = t_dados-umskz

          and hkont = lfb1-akont.

      endselect.

      perform determina_string using v_chave_debito

                                   t_dados-bukrs

                                   v_dconta

                             changing v_string_debito.

    else.

    select akont

      into v_conta

      from lfb1

      where lifnr = t_dados-c_newko.

    endselect.

      perform determina_string using v_chave_debito

                                   t_dados-bukrs

                                   v_conta

                             changing v_string_debito.

    endif.

    perform trata_string_debito tables t_dados

                                       t_campo

                                       itab_oculto

                              using  v_string_debito.

    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.

    SELECT SINGLE periv FROM t001

                 INTO v_periv

                 WHERE bukrs EQ v_bukrs.

    CALL FUNCTION 'DETERMINE_PERIOD'

         EXPORTING

              date                = t_dados-budat

              version             = v_periv

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'K'.

    PERFORM check_periodo USING    v_koart

                                   v_bukrs

                          CHANGING v_data_lanc_char

                                   v_ok

                                   v_monat

                                   v_gjahr.

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

    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,

           'BKPF-MONAT'  v_periodo,

           'BKPF-WAERS'  t_dados-waers,

           'BKPF-BELNR'  t_dados-belnr,

           'BKPF-WWERT'  v_data_conv_char,

           'BKPF-XBLNR'  t_dados-xblnr,

           'BKPF-BKTXT'  t_dados-bktxt,

           'FS006-DOCID' t_dados-docid,

           'FS006-BARCD' t_dados-barcd,

           'RF05V-NEWBS' '31',

           'RF05V-NEWKO' t_dados-c_newko,

           'BDC_OKCODE'  '/00'.

    write: t_dados-wrbtr to v_wrbtr currency     t_dados-waers,

           v_skfbt       to v_base_char currency t_dados-waers.

    perform bdc_screen using 'SAPLF040' '0302'.

    perform bdc_field  using:

           'BSEG-WRBTR'  v_wrbtr.

    read table itab_oculto with key campo = 'COBL-GSBER' chave = 'C'.

    if sy-subrc <> 0.

      if not t_dados-c_gsber is initial.

        perform bdc_field  using 'BSEG-GSBER' t_dados-c_gsber.

      endif.

    endif.

    read table itab_oculto with key campo = 'BSEG-SGTXT' chave = 'C'.

    if sy-subrc <> 0.

      if not t_dados-c_sgtxt is initial.

        perform bdc_field  using 'BSEG-SGTXT' t_dados-c_sgtxt.

      endif.

    endif.

    read table itab_oculto with key campo = 'BSEG-ZUONR' chave = 'C'.

    if sy-subrc <> 0.

      if not t_dados-c_zuonr is initial.

        perform bdc_field  using 'BSEG-BUPLA' t_dados-c_zuonr.

        perform bdc_field  using 'BSEG-ZUONR' t_dados-c_zuonr.

      endif.

    endif.

   if not t_dados-zfbdt is initial.

      perform bdc_field using 'BSEG-ZFBDT' t_dados-zfbdt.

   endif.

     clear: t_debito_aux. refresh: t_debito_aux.

     t_debito_aux[] = t_debito[].

     loop at t_debito.

       v_index_aux = sy-tabix.

       check t_debito-tcode = 'F-63'.

       check not t_debito-wrbtr is initial.

       if ( t_debito-d_newko = space ).

         t_campo-mandt = t_dados-mandt.

         t_campo-campo = 'RF05A-NEWKO'.

         t_campo-descricao = text-020.

         append t_campo.

         raise campo_em_branco.

      endif.

      if v_wrbtr1 is initial.

        perform bdc_field  using:

          'RF05V-NEWBS'  t_debito-chave,

          'RF05V-NEWKO'  t_debito-d_newko.

      read table itab_oculto with key campo = 'BSEG-BUPLA' chave = 'D'.

        if sy-subrc ne 0.

          if not t_dados-brnch is initial.

            perform bdc_field  using 'BSEG-BUPLA' t_dados-brnch.

          endif.

        endif.

        if v_irrf eq 'S'.

          perform bdc_field  using 'BDC_OKCODE'   'QS'.

          write: t_dados-wrbtrirrf to v_wrbtr_irrf

                   currency t_dados-waers.

          perform bdc_screen using 'SAPLFWTD' '0100'.

          perform bdc_field  using:

            'WITH_DIALG-WT_BASE(01)' v_wrbtr_irrf,

            'BDC_OKCODE'              '=GO'.

        else.

          perform bdc_field  using 'BDC_OKCODE'   '/00'.

        endif.

      endif.

      write:   t_debito-wrbtr to v_wrbtr1 currency  t_dados-waers,

               t_debito-d_valut to v_data_conver_char.

          perform bdc_screen using 'SAPLF040' '0300'.

          perform bdc_field  using:

              'BSEG-WRBTR' v_wrbtr1,

              'BSEG-ZUONR' t_debito-d_zuonr,

              'BSEG-SGTXT' t_debito-d_sgtxt,

              'DKACB-FMORE'  'X'.

        if not v_wrbtr1 is initial.

          v_index_aux2 = v_index_aux + 1.

          clear: t_debito_aux.

          read table t_debito_aux index v_index_aux2.

          perform bdc_field  using:

              'RF05V-NEWBS'  t_debito_aux-chave,

              'RF05V-NEWKO'  t_debito_aux-d_newko.

        endif.

          perform bdc_field  using:

              'BDC_OKCODE' '/00'.

       perform bdc_screen using 'SAPLKACB' '0002'.

       read table itab_oculto with key campo = 'COBL-GSBER' chave = 'D'.

          if sy-subrc <> 0.

            if not t_debito-d_gsber is initial.

              perform bdc_field  using 'COBL-GSBER' t_debito-d_gsber.

            endif.

          endif.

       read table itab_oculto with key campo = 'COBL-KOSTL' chave = 'D'.

          if sy-subrc ne 0.

            if not t_debito-d_kostl is initial.

              perform bdc_field  using 'COBL-KOSTL' t_debito-d_kostl.

            endif.

          endif.

      read table itab_oculto with key campo = 'COBL-PRCTR' chave = 'D'.

         if sy-subrc ne 0.

            if not t_debito-d_prctr is initial.

              perform bdc_field  using 'COBL-PRCTR' t_debito-d_prctr.

            endif.

          endif.

        perform bdc_field  using:

            'BDC_OKCODE' '/00'.

     endloop.

        perform bdc_screen using 'SAPLF040' '0300'.

        perform bdc_field  using:

             'DKACB-FMORE'  ' ',

             'BDC_OKCODE'   '=BP'.

        clear itab_msg.

        v_transacao = 'F-63'.

        v_update = 'S'.

        v_msgid = 'FP'.

        v_msgno = '001'.

    if v_modo is initial.

      v_mode = 'N'.

    else.

      v_mode = v_modo.

    endif.

        perform  call_transaction tables   itab_msg

                                           itab_bdc

                                           t_zycbt032

                                           t_dados

                                  using    v_transacao

                                           v_mode

                                           v_update

                                           v_msgid

                                           v_msgno

                                  changing v_nrmsg.

      endloop.

      free:

        itab_bdc,

        itab_msg.

    endfunction.

* << Fim da inclusão

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_63B

 

* >> Início da inclusão:

FUNCTION /pws/zycb_transacao_f_63b.

  DATA:

    v_string_debito      LIKE tbsl-faus1,

    v_data_doc_char(10)  TYPE c,

    v_data_val_char(10)  TYPE c,

    v_data_lanc_char(10) TYPE c,

    v_data_venc_char(10) TYPE c,

    v_dtbase_char(10)    TYPE c,

    v_base_char(16)      TYPE c,

    v_kursf(9)           TYPE c,

    v_wrbtr(16)          TYPE c,

    v_dmbtr(16)          TYPE c,

    v_chave_debito       LIKE tbsl-bschl VALUE '40',

    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_msgno              LIKE t100-msgnr,

    v_koart              LIKE t001b-mkoar,

    v_ok(1)              VALUE 'N',

    v_monat              LIKE t001b-frpe1,

    v_bukrs              LIKE t001-bukrs,

    v_gjahr              LIKE t001b-frye1,

    v_skfbt              LIKE bseg-skfbt VALUE 0,

    v_pep                LIKE prps-posid,

    v_date               LIKE t009b-bdatj,

    v_periv(2),

    v_periodo(2),

    v_dconta             LIKE /pws/zycbe033-d_newko.

  LOOP AT t_dados.

    CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

         EXPORTING

              v_bukrs = t_dados-bukrs

              v_date  = t_dados-budat

         IMPORTING

              v_year  = v_date.

    CHECK t_dados-tcode = 'F-63'.

    IF ( t_dados-bukrs = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'BKPF-BUKRS'.

      t_campo-descricao = text-021.

      APPEND t_campo.

      RAISE campo_em_branco.

    ENDIF.

    IF ( t_dados-d_newko = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'RF05V-NEWKO'.

      t_campo-descricao = text-020.

      APPEND t_campo.

      RAISE campo_em_branco.

    ENDIF.

   IF t_dados-newbs EQ '29'.

      v_chave_debito = '29'.

      SELECT SINGLE akont FROM lfb1

        INTO lfb1-akont

        WHERE lifnr = t_dados-d_newko

          AND bukrs = t_dados-bukrs.

      SELECT SINGLE plcontas FROM /pws/zycbt007

                             INTO /pws/zycbt007-plcontas

                             WHERE bukrs EQ t_dados-bukrs.

      SELECT skont FROM t074 UP TO 1 ROWS

        INTO v_dconta

        WHERE ktopl = /pws/zycbt007-plcontas

          AND koart = 'K'

          AND umskz = t_dados-umskz

          AND hkont = lfb1-akont.

      ENDSELECT.

      PERFORM determina_string USING v_chave_debito

                                   t_dados-bukrs

                                   v_dconta

                             CHANGING v_string_debito.

    ELSE.

      PERFORM determina_string USING v_chave_debito

                                   t_dados-bukrs

                                   t_dados-d_newko

                             CHANGING v_string_debito.

    ENDIF.

    PERFORM trata_string_debito TABLES t_dados

                                     t_campo

                                     itab_oculto

                              USING  v_string_debito.

    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.

    SELECT SINGLE periv FROM t001

                 INTO v_periv

                 WHERE bukrs EQ v_bukrs.

    CALL FUNCTION 'DETERMINE_PERIOD'

         EXPORTING

              date                = t_dados-budat

              version             = v_periv

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'K'.

    PERFORM check_periodo USING    v_koart

                                   v_bukrs

                          CHANGING v_data_lanc_char

                                   v_ok

                                   v_monat

                                   v_gjahr.

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    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,

           'BKPF-MONAT' v_periodo,

           'BKPF-WAERS' t_dados-waers,

           'BKPF-KURSF' v_kursf,

           'BKPF-BKTXT' t_dados-bktxt,

           'RF05V-NEWBS' '31',

           'RF05V-NEWKO' t_dados-agkon,

           'BDC_OKCODE' '/00'.

    IF NOT t_dados-xblnr IS INITIAL.

      PERFORM bdc_field  USING: 'BKPF-XBLNR' t_dados-xblnr.

    ENDIF.

    WRITE: t_dados-wrbtr TO v_wrbtr CURRENCY t_dados-waers,

           t_dados-dmbtr TO v_dmbtr CURRENCY t_dados-waersb,

           v_skfbt TO v_base_char CURRENCY t_dados-waers.

    PERFORM bdc_screen USING 'SAPLF040' '0302'.

    PERFORM bdc_field  USING:

          'BSEG-WRBTR' v_wrbtr.

    IF t_dados-zfbdt NE '00000000' AND

       t_dados-zfbdt NE space.

      WRITE: t_dados-zfbdt TO v_dtbase_char.

      PERFORM bdc_field  USING:

            'BSEG-ZFBDT' v_dtbase_char.

    ENDIF.

    READ TABLE itab_oculto WITH KEY campo = 'COBL-GSBER' chave = 'D'.

    IF sy-subrc <> 0.

      IF NOT t_dados-d_gsber IS INITIAL.

        PERFORM bdc_field  USING 'BSEG-GSBER' t_dados-d_gsber.

      ENDIF.

    ENDIF.

    PERFORM bdc_field  USING:

           'BSEG-SKFBT'  v_base_char,

           'RF05V-NEWBS' '40'.

    IF NOT t_dados-c_sgtxt IS INITIAL.

      PERFORM bdc_field  USING 'BSEG-ZUONR'  t_dados-c_zuonr.

    endif.

    IF NOT t_dados-c_sgtxt IS INITIAL.

      PERFORM bdc_field using 'BSEG-SGTXT' t_dados-c_sgtxt.

    ENDIF.

    IF NOT ( t_dados-newbs IS INITIAL ).

      PERFORM bdc_field  USING 'RF05V-NEWBS' t_dados-newbs.

    ENDIF.

    PERFORM bdc_field USING 'RF05V-NEWKO' t_dados-d_newko.

    IF NOT ( t_dados-umskz IS INITIAL ) .

      PERFORM bdc_field  USING 'RF05V-NEWUM' t_dados-umskz.

    ENDIF.

    PERFORM bdc_field  USING  'BDC_OKCODE'  '/00'.

    SELECT SINGLE * FROM lfbw WHERE lifnr = t_dados-agkon

                                AND bukrs = t_dados-bukrs.

    IF lfbw-wt_subjct = 'X'.

      PERFORM bdc_screen USING 'SAPLFWTD' '0100'.

      PERFORM bdc_field  USING  'BDC_OKCODE'  '/00'.

    ENDIF.

    IF t_dados-newbs NE '29'.

      WRITE: t_dados-d_valut TO v_data_val_char.

      PERFORM bdc_screen USING 'SAPLF040' '0300'.

      PERFORM bdc_field  USING:

             'BSEG-WRBTR' v_wrbtr.

      if not t_dados-d_zuonr is initial.

        PERFORM bdc_field USING 'BSEG-ZUONR' t_dados-d_zuonr.

      endif.

      if not t_dados-d_sgtxt is initial.

        PERFORM bdc_field USING 'BSEG-SGTXT' t_dados-d_sgtxt.

      endif.

      PERFORM bdc_field USING 'BDC_OKCODE' '=BP'.

      PERFORM bdc_screen USING 'SAPLKACB' '0002'.

      READ TABLE itab_oculto WITH KEY campo = 'COBL-GSBER' chave = 'D'.

      IF sy-subrc <> 0.

        IF NOT t_dados-d_gsber IS INITIAL.

          PERFORM bdc_field  USING 'COBL-GSBER' t_dados-d_gsber.

        ENDIF.

      ENDIF.

      IF NOT t_dados-aufnr IS INITIAL.

        PERFORM bdc_field USING 'COBL-AUFNR' t_dados-aufnr.

      ENDIF.

      READ TABLE itab_oculto WITH KEY campo = 'COBL-KOSTL' chave = 'D'.

      IF sy-subrc <> 0.

        PERFORM bdc_field  USING:

             'COBL-KOSTL' t_dados-d_kostl.

      ENDIF.

  READ TABLE itab_oculto WITH KEY campo = 'COBL-PS_PSP_PNR' chave = 'D'.

      IF sy-subrc <> 0.

        IF NOT  t_dados-ps_psp_pnr IS INITIAL.

          CALL FUNCTION 'CONVERSION_EXIT_KONPR_OUTPUT'

               EXPORTING

                    input  = t_dados-ps_psp_pnr

               IMPORTING

                    output = v_pep.

          PERFORM bdc_field  USING:

             'COBL-PS_PSP_PNR' v_pep.

        ENDIF.

      ENDIF.

      READ TABLE itab_oculto WITH KEY campo = 'COBL-PRCTR' chave = 'D'.

      IF sy-subrc <> 0.

        IF NOT  t_dados-d_prctr IS INITIAL.

          PERFORM bdc_field  USING:

             'COBL-PRCTR' t_dados-d_prctr.

        ENDIF.

      ENDIF.

      PERFORM bdc_field  USING:

             'BDC_OKCODE' '=ENTE'.

    ELSEIF t_dados-newbs EQ '29'.

      WRITE: t_dados-zfbdt TO v_data_venc_char.

      PERFORM bdc_screen USING 'SAPLF040' '0303'.

      PERFORM bdc_field  USING:

            'BSEG-WRBTR' v_wrbtr.

      READ TABLE itab_oculto WITH KEY campo = 'COBL-GSBER' chave = 'D'.

      IF sy-subrc <> 0.

        IF NOT t_dados-d_gsber IS INITIAL.

          PERFORM bdc_field  USING 'BSEG-GSBER' t_dados-d_gsber.

        ENDIF.

      ENDIF.

      PERFORM bdc_field  USING:

             'BSEG-ZFBDT' v_data_venc_char.

      READ TABLE itab_oculto WITH KEY campo = 'COBL-FIPOS' chave = 'D'.

      IF sy-subrc <> 0.

        IF NOT t_dados-d_fipos IS INITIAL.

          PERFORM bdc_field USING 'BSEG-FIPOS' t_dados-d_fipos.

        ENDIF.

      ENDIF.

      READ TABLE itab_oculto WITH KEY campo = 'COBL-FISTL' chave = 'D'.

      IF sy-subrc <> 0.

        IF NOT t_dados-d_fictr IS INITIAL.

          PERFORM bdc_field USING 'BSEG-FISTL' t_dados-d_fictr.

        ENDIF.

      ENDIF.

      if not t_dados-d_zuonr is initial.

        PERFORM bdc_field USING 'BSEG-ZUONR' t_dados-d_zuonr.

      endif.

      if not t_dados-d_sgtxt is initial.

        PERFORM bdc_field  USING 'BSEG-SGTXT' t_dados-d_sgtxt.

      endif.

      PERFORM bdc_field  USING 'BDC_OKCODE' '=BP'.

    ENDIF.

    CLEAR itab_msg.

    v_transacao = 'F-63'.

    v_update = 'S'.

    v_msgid = 'FP'.

    v_msgno = '001'.

    IF v_modo IS INITIAL.

      v_mode = 'N'.

    ELSE.

      v_mode = v_modo.

    ENDIF.

    PERFORM  call_transaction TABLES   itab_msg

                                       itab_bdc

                                       t_zycbt032

                                       t_dados

                              USING    v_transacao

                                       v_mode

                                       v_update

                                       v_msgid

                                       v_msgno

                              CHANGING v_nrmsg.

  ENDLOOP.

  FREE:

    itab_bdc,

    itab_msg.

ENDFUNCTION.

* << Fim da inclusão

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_63C

 

* >> Início da inclusão:

function /pws/zycb_transacao_f_63c.

  data:

    v_string_debito        like tbsl-faus1,

    v_string_credito       like tbsl-faus1,

    v_data_doc_char(10)    type c,

    v_data_conv_char(10)   type c,

    v_data_conver_char(10) type c,

    v_data_val_char(10)    type c,

    v_data_lanc_char(10)   type c,

    v_data_venc_char(10)   type c,

    v_base_char(16)        type c,

    v_kursf(9)             type c,

    v_wrbtr(16)            type c,

    v_wrbtr1(16)           type c,

    v_wrbtr_irrf(20)       type c,

    v_chave_debito         like tbsl-bschl value '40',

    v_chave_credito        like tbsl-bschl value '50',

    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_msgno                like t100-msgnr,

    v_koart                like t001b-mkoar,

    v_ok(1)                value 'N',

    v_monat                like t001b-frpe1,

    v_bukrs                like t001-bukrs,

    v_gjahr                like t001b-frye1,

    v_skfbt                like bseg-skfbt value 0,

    v_pep                  like prps-posid,

    v_dconta               like /pws/zycbe033-d_newko,

    v_date               like t009b-bdatj,

    v_periv(2),

    v_periodo(2),

    v_conta                like lfb1-akont.

  loop at t_dados.

  call function '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

    exporting

      v_bukrs                      = t_dados-bukrs

      v_date                       = t_dados-budat

   importing

      v_year                       = v_date.

    check t_dados-tcode = 'F-63'.

    if ( t_dados-bukrs = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'BKPF-BUKRS'.

      t_campo-descricao = text-021.

      append t_campo.

      raise campo_em_branco.

    endif.

    if ( t_dados-c_newko = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'RF05V-NEWKO'.

      t_campo-descricao = text-020.

      append t_campo.

      raise campo_em_branco.

    endif.

    if t_dados-newbs eq '29'.

      v_chave_debito = '29'.

      select single akont

        from lfb1

        into lfb1-akont

        where lifnr = t_dados-d_newko

          and bukrs = t_dados-bukrs.

      select single plcontas from /pws/zycbt007

                             into /pws/zycbt007-plcontas

                             where bukrs eq t_dados-bukrs.

      select skont from t074 up to 1 rows

        into v_dconta

        where ktopl = /pws/zycbt007-plcontas

          and koart = 'K'

          and umskz = t_dados-umskz

          and hkont = lfb1-akont.

      endselect.

      perform determina_string using v_chave_credito

                                     t_dados-bukrs

                                     v_dconta

                            changing v_string_credito.

    else.

      select akont

        into v_conta

        from lfb1

        where lifnr = t_dados-c_newko.

      endselect.

      perform determina_string using v_chave_credito

                                     t_dados-bukrs

                                     v_conta

                            changing v_string_credito.

    endif.

    perform trata_string_credito tables t_dados

                                        t_campo

                                        itab_oculto

                               using  v_string_credito.

    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.

    v_gjahr = v_date.

    v_koart = 'K'.

    PERFORM check_periodo USING    v_koart

                                   v_bukrs

                          CHANGING v_data_lanc_char

                                   v_ok

                                   v_monat

                                   v_gjahr.

    SELECT SINGLE periv FROM t001

                 INTO v_periv

                 WHERE bukrs EQ v_bukrs.

    CALL FUNCTION 'DETERMINE_PERIOD'

         EXPORTING

              date                = t_dados-budat

              version             = v_periv

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    move v_monat+1(2) to v_periodo.

    move v_date to v_gjahr.

    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,

           'BKPF-MONAT'  v_periodo,

           'BKPF-WAERS'  t_dados-waers,

           'BKPF-KURSF'  v_kursf,

           'BKPF-BELNR'  t_dados-belnr,

           'BKPF-WWERT'  v_data_conv_char,

           'BKPF-XBLNR'  t_dados-xblnr,

           'BKPF-BKTXT'  t_dados-bktxt,

           'FS006-DOCID' t_dados-docid,

           'FS006-BARCD' t_dados-barcd,

           'RF05V-NEWBS' '31',

           'RF05V-NEWKO' t_dados-c_newko,

           'BDC_OKCODE'  '/00'.

    write: t_dados-wrbtr to v_wrbtr currency     t_dados-waers,

           v_skfbt       to v_base_char currency t_dados-waers.

    perform bdc_screen using 'SAPLF040' '0302'.

    perform bdc_field  using:

           'BSEG-WRBTR'  v_wrbtr,

           'BSEG-ZLSPR' t_dados-zlspr.

    read table itab_oculto with key campo = 'COBL-GSBER' chave = 'C'.

    if sy-subrc <> 0.

      if not t_dados-c_gsber is initial.

        perform bdc_field  using 'BSEG-GSBER' t_dados-c_gsber.

      endif.

    endif.

    read table itab_oculto with key campo = 'BSEG-SGTXT' chave = 'C'.

    if sy-subrc <> 0.

      if not t_dados-c_sgtxt is initial.

        perform bdc_field  using 'BSEG-SGTXT' t_dados-c_sgtxt.

      endif.

    endif.

    read table itab_oculto with key campo = 'BSEG-ZUONR' chave = 'C'.

    if sy-subrc <> 0.

      if not t_dados-c_zuonr is initial.

        perform bdc_field  using 'BSEG-ZUONR' t_dados-c_zuonr.

      endif.

    endif.

    read table itab_oculto with key campo = 'BSEG-BUPLA' chave = 'C'.

    if sy-subrc <> 0.

      perform bdc_field  using 'BSEG-BUPLA' t_dados-brnch.

    endif.

    data v_tabix like sy-tabix.

    data: begin of wa_debito.

            include structure t_debito.

    data: end of wa_debito.

    loop at t_debito.

      v_tabix = sy-tabix.

      check t_debito-tcode = 'F-63'.

      check not t_debito-wrbtr is initial.

      if ( t_debito-d_newko = space ).

        t_campo-mandt = t_dados-mandt.

        t_campo-campo = 'RF05A-NEWKO'.

        t_campo-descricao = text-020.

        append t_campo.

        raise campo_em_branco.

      endif.

      perform determina_string using v_chave_debito

                                     t_dados-bukrs

                                     t_debito-d_newko

                            changing v_string_debito.

      perform trata_string_debito2 tables t_dados

                                           t_campo

                                           itab_oculto2

                                     using v_string_debito

                                           t_debito-d_newko.

      if v_wrbtr1 is initial.

        perform bdc_field  using:

          'RF05V-NEWBS'  t_debito-chave,

          'RF05V-NEWKO'  t_debito-d_newko.

        if v_irrf eq 'S'.

          perform bdc_field  using 'BDC_OKCODE'   'QS'.

          write: t_dados-wrbtrirrf to v_wrbtr_irrf

                   currency t_dados-waers.

          perform bdc_screen using 'SAPLFWTD' '0100'.

          perform bdc_field  using:

            'WITH_DIALG-WT_BASE(01)' v_wrbtr_irrf,

            'BDC_OKCODE'              '=GO'.

        else.

          perform bdc_field  using 'BDC_OKCODE'   '/00'.

        endif.

      endif.

      write:   t_debito-wrbtr to v_wrbtr1 currency  t_dados-waers,

               t_debito-d_valut to v_data_conver_char.

      perform bdc_screen using 'SAPLF040' '0300'.

      perform bdc_field  using:

          'BSEG-WRBTR' v_wrbtr1,

          'BSEG-ZUONR' t_debito-d_zuonr,

          'BSEG-SGTXT' t_debito-d_sgtxt,

          'DKACB-FMORE'  'X'.

      if not v_wrbtr1 is initial.

        v_tabix = v_tabix + 1.

        read table t_debito index v_tabix into wa_debito.

        perform bdc_field  using:

            'RF05V-NEWBS'  wa_debito-chave,

            'RF05V-NEWKO'  wa_debito-d_newko.

      endif.

      perform bdc_field  using:

          'BDC_OKCODE' '/00'.

      perform bdc_screen using 'SAPLKACB' '0002'.

      read table itab_oculto2

                             with key campo = 'COBL-GSBER' chave = 'D'.

      if sy-subrc <> 0.

        if not t_debito-d_gsber is initial.

          perform bdc_field  using 'COBL-GSBER' t_debito-d_gsber.

        endif.

      endif.

      read table itab_oculto2

                             with key campo = 'COBL-KOSTL' chave = 'D'.

      if sy-subrc ne 0.

        if not t_debito-d_kostl is initial.

          perform bdc_field  using 'COBL-KOSTL' t_debito-d_kostl.

        endif.

      endif.

      read table itab_oculto2

                             with key campo = 'COBL-PRCTR' chave = 'D'.

      if sy-subrc ne 0.

        if not t_debito-d_prctr is initial.

          perform bdc_field  using 'COBL-PRCTR' t_debito-d_prctr.

        endif.

      endif.

      if t_debito-ps_psp_pnr is initial.

       perform bdc_field  using:

         'COBL-PS_PSP_PNR'  space,

         'COBL-KDAUF'       t_debito-ordem,

         'COBL-KDPOS'       t_debito-item,

         'BDC_OKCODE' '/00'.

     else.

       perform bdc_field  using:

         'COBL-PS_PSP_PNR'  t_debito-ps_psp_pnr,

         'COBL-KDAUF'       t_debito-ordem,

         'COBL-KDPOS'       t_debito-item,

         'BDC_OKCODE' '/00'.

     endif.

    endloop.

    perform bdc_screen using 'SAPLF040' '0300'.

    perform bdc_field  using:

         'DKACB-FMORE'  'X',

         'BDC_OKCODE'   '=SB'.

    perform bdc_screen using 'SAPLKACB' '0002'.

    perform bdc_field  using:

        'BDC_OKCODE' '=ENTE'.

    perform bdc_screen using 'SAPLF040' '0310'.

    perform bdc_field  using:

           'BDC_OKCODE' '=BP'.

     clear itab_msg.

    v_transacao = 'F-63'.

    v_update = 'S'.

    v_msgid = 'FP'.

    v_msgno = '001'.

    if v_modo is initial.

      v_mode = 'N'.

    else.

      v_mode = v_modo.

    endif.

    perform  call_transaction tables   itab_msg

                                       itab_bdc

                                       t_zycbt032

                                       t_dados

                              using    v_transacao

                                       v_mode

                                       v_update

                                       v_msgid

                                       v_msgno

                              changing v_nrmsg.

  endloop.

  free:

    itab_bdc,

    itab_msg.

endfunction.

* << Fim da inclusão

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_63D

 

* >> Início da inclusão:

function /pws/zycb_transacao_f_63d.

  data t_debito_aux like t_debito.

  data:

    v_string_debito        like tbsl-faus1,

    v_data_doc_char(10)    type c,

    v_data_conv_char(10)   type c,

    v_database(10)         type c,

    v_data_conver_char(10) type c,

    v_data_val_char(10)    type c,

    v_data_lanc_char(10)   type c,

    v_data_venc_char(10)   type c,

    v_base_char(16)        type c,

    v_kursf(9)             type c,

    v_wrbtr(16)            type c,

    v_wrbtr1(16)           type c,

    v_chave_debito         like tbsl-bschl value '40',

    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_msgno                like t100-msgnr,

    v_koart                like t001b-mkoar,

    v_ok(1)                value 'N',

    v_monat                like t001b-frpe1,

    v_bukrs                like t001-bukrs,

    v_gjahr                like t001b-frye1,

    v_dconta               like /pws/zycbe033-d_newko,

    v_conta                like lfb1-akont,

    v_tabix                like sy-tabix,

    v_date                 like t009b-bdatj,

    v_periv(2),

    v_periodo(2),

    v_tabix_aux            like sy-tabix.

  read table t_dados index 1.

  call function '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

    exporting

      v_bukrs                      = t_dados-bukrs

      v_date                       = t_dados-budat

   importing

      v_year                       = v_date.

  check t_dados-tcode = 'F-63'.

  if ( t_dados-bukrs = space ).

    t_campo-mandt = t_dados-mandt.

    t_campo-campo = 'BKPF-BUKRS'.

    t_campo-descricao = text-021.

    append t_campo.

    raise campo_em_branco.

  endif.

  if ( t_dados-c_newko = space ).

    t_campo-mandt = t_dados-mandt.

    t_campo-campo = 'RF05V-NEWKO'.

    t_campo-descricao = text-020.

    append t_campo.

    raise campo_em_branco.

  endif.

  perform trata_string_debito tables t_dados

                                     t_campo

                                     itab_oculto

                            using  v_string_debito.

  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.

    select single periv from t001

                 into v_periv

                 where bukrs eq v_bukrs.

    call function 'DETERMINE_PERIOD'

         exporting

              date                = t_dados-budat

              version             = v_periv

         importing

              period              = v_monat

         exceptions

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              others              = 4.

  v_gjahr = v_date.

  v_koart = 'CA'.

    PERFORM check_periodo USING    v_koart

                                   v_bukrs

                          CHANGING v_data_lanc_char

                                   v_ok

                                   v_monat

                                   v_gjahr.

  move v_date to v_gjahr.

  move v_monat+1(2) to v_periodo.

  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,

         'BKPF-MONAT'  v_periodo,

         'BKPF-WAERS'  t_dados-waers,

         'BKPF-KURSF'  v_kursf,

         'BKPF-XBLNR'  t_dados-xblnr,

         'RF05V-NEWBS' t_dados-newbs,

         'RF05V-NEWKO' t_dados-c_newko,

         'BDC_CURSOR'  'RF05V-NEWKO',

         'BDC_OKCODE'  '/00'.

  loop at t_debito.

    v_tabix = v_tabix + 1.

    check t_debito-tcode = 'F-63'.

    check not t_debito-wrbtr is initial.

    if ( t_debito-d_newko = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'RF05A-NEWKO'.

      t_campo-descricao = text-020.

      append t_campo.

      raise campo_em_branco.

    endif.

   if t_debito-bschl eq '29'.

      v_chave_debito = '29'.

      select single akont

        from lfb1

        into lfb1-akont

        where lifnr = t_dados-d_newko

          and bukrs = t_dados-bukrs.

      select single plcontas from /pws/zycbt007

                             into /pws/zycbt007-plcontas

                             where bukrs eq t_dados-bukrs.

      select skont from t074 up to 1 rows

        into v_dconta

        where ktopl = /pws/zycbt007-plcontas

          and koart = 'K'

          and umskz = t_dados-umskz

          and hkont = lfb1-akont.

      endselect.

      perform determina_string using v_chave_debito

                                   t_dados-bukrs

                                   v_dconta

                             changing v_string_debito.

      clear v_database.

      write: t_dados-wrbtr  to v_wrbtr currency     t_dados-waers.

      write: t_debito-zfbdt to v_database.

      perform bdc_screen using 'SAPLF040' '0302'.

      perform bdc_field  using:

             'BDC_CURSOR'  'RF05V-NEWKO',

           'BDC_OKCODE'  '/00',

           'BSEG-WRBTR'  v_wrbtr,

           'BSEG-MWSKZ'  '**',

           'BSEG-ZTERM'  t_dados-zterm,

           'BSEG-ZFBDT'  v_database,

           'RF05V-NEWBS' t_debito-bschl,

           'RF05V-NEWKO' t_debito-d_newko,

           'RF05V-NEWUM' t_debito-newum.

      write: t_debito-wrbtr to v_wrbtr currency     t_dados-waers.

      perform bdc_screen using 'SAPLF040' '0303'.

      perform bdc_field  using:

               'BDC_CURSOR'  'RF05V-NEWKO',

               'BSEG-WRBTR'  v_wrbtr,

               'BSEG-ZFBDT'  v_database,

               'BSEG-ZUONR'  t_debito-d_zuonr.

      read table itab_oculto with key campo = 'BSEG-BUPLA' chave = 'D'.

        if sy-subrc ne 0.

          if not t_dados-brnch is initial.

            perform bdc_field  using 'BSEG-BUPLA' t_dados-brnch.

          endif.

        endif.

      v_tabix_aux = v_tabix + 1.

      read table t_debito into t_debito_aux index v_tabix_aux.

      if sy-subrc = 0.

        perform bdc_field  using:

             'RF05V-NEWBS' t_debito_aux-bschl,

             'RF05V-NEWKO' t_debito_aux-d_newko,

             'BDC_OKCODE'  '/00'.

      else.

        perform bdc_field  using:

             'BDC_OKCODE'  '=BP'.

      endif.

    else.

      clear v_database.

      write: t_debito-wrbtr to v_wrbtr currency     t_dados-waers.

      perform bdc_screen using 'SAPLF040' '0300'.

      perform bdc_field  using:

             'BDC_CURSOR'  'RF05V-NEWKO',

             'BSEG-WRBTR'  v_wrbtr,

             'DKACB-FMORE' 'X'.

      v_tabix_aux = v_tabix + 1.

      read table t_debito into t_debito_aux index v_tabix_aux.

      if sy-subrc = 0.

        perform bdc_field  using:

             'RF05V-NEWBS' t_debito_aux-bschl,

             'RF05V-NEWKO' t_debito_aux-d_newko,

             'BDC_OKCODE'  '/00'.

      else.

        perform bdc_field  using:

             'BDC_OKCODE'  '=BP'.

      endif.

      perform bdc_screen using 'SAPLF040' '0002'.

      perform bdc_field  using:

             'BDC_OKCODE'  '=ENTE'.

    endif.

  endloop.

  clear itab_msg.

  v_transacao = 'F-63'.

  v_update = 'S'.

  v_msgid = 'FP'.

  v_msgno = '001'.

  if v_modo is initial.

    v_mode = 'N'.

  else.

    v_mode = v_modo.

  endif.

  perform  call_transaction tables   itab_msg

                                   itab_bdc

                                   t_zycbt032

                                   t_dados

                          using    v_transacao

                                   v_mode

                                   v_update

                                   v_msgid

                                   v_msgno

                          changing v_nrmsg.

  free:

  itab_bdc,

  itab_msg.

endfunction.

* << Fim da inclusão

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_63E

 

* >> Início da inclusão:

FUNCTION /pws/zycb_transacao_f_63e.

  DATA:

    v_string_debito      LIKE tbsl-faus1,

    v_data_doc_char(10)  TYPE c,

    v_data_val_char(10)  TYPE c,

    v_data_lanc_char(10) TYPE c,

    v_data_venc_char(10) TYPE c,

    v_base_char(16)      TYPE c,

    v_kursf(9)           TYPE c,

    v_wrbtr(16)          TYPE c,

    v_dmbtr(16)          TYPE c,

    v_chave_debito       LIKE tbsl-bschl VALUE '40',

    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_msgno              LIKE t100-msgnr,

    v_koart              LIKE t001b-mkoar,

    v_ok(1)              VALUE 'N',

    v_monat              LIKE t001b-frpe1,

    v_bukrs              LIKE t001-bukrs,

    v_gjahr              LIKE t001b-frye1,

    v_skfbt              LIKE bseg-skfbt VALUE 0,

    v_pep                LIKE prps-posid,

    v_date               LIKE t009b-bdatj,

    v_periv(2),

    v_periodo(2),

    v_dconta             LIKE /pws/zycbe033-d_newko,

    wa_tbSl              LIKE tbsl,

    v_string_credito     LIKE tbsl-faus1.

  LOOP AT t_dados.

    CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

         EXPORTING

              v_bukrs                = t_dados-bukrs

              v_date                 = t_dados-budat

         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.

    CHECK t_dados-tcode = 'F-63'.

    IF ( t_dados-bukrs = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'BKPF-BUKRS'.

      t_campo-descricao = text-021.

      APPEND t_campo.

      RAISE campo_em_branco.

    ENDIF.

    IF ( t_dados-d_newko = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'RF05V-NEWKO'.

      t_campo-descricao = text-020.

      APPEND t_campo.

      RAISE campo_em_branco.

    ENDIF.

   IF t_dados-newbs EQ '29'.

      v_chave_debito = '29'.

      SELECT SINGLE akont FROM lfb1

        INTO lfb1-akont

        WHERE lifnr = t_dados-d_newko

          AND bukrs = t_dados-bukrs.

      SELECT SINGLE plcontas FROM /pws/zycbt007

                             INTO /pws/zycbt007-plcontas

                             WHERE bukrs EQ t_dados-bukrs.

      SELECT skont FROM t074 UP TO 1 ROWS

        INTO v_dconta

        WHERE ktopl = /pws/zycbt007-plcontas

          AND koart = 'K'

          AND umskz = t_dados-umskz

          AND hkont = lfb1-akont.

      ENDSELECT.

      PERFORM determina_string USING v_chave_debito

                                   t_dados-bukrs

                                   v_dconta

                             CHANGING v_string_debito.

    ELSE.

      SELECT SINGLE * FROM tbsl

             INTO wa_tbsl

             WHERE bschl = t_dados-newbs.

      IF wa_tbsl-koart EQ 'D'.

        SELECT SINGLE akont FROM knb1

          INTO knb1-akont

          WHERE kunnr = t_dados-d_newko

            AND bukrs = t_dados-bukrs.

        PERFORM determina_string USING t_dados-newbs

                                       t_dados-bukrs

                                       knb1-akont

                              CHANGING v_string_debito.

      endif.

    ENDIF.

    PERFORM trata_string_debito TABLES t_dados

                                     t_campo

                                     itab_oculto

                              USING  v_string_debito.

    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.

    SELECT SINGLE periv FROM t001

                 INTO v_periv

                 WHERE bukrs EQ v_bukrs.

    CALL FUNCTION 'DETERMINE_PERIOD'

         EXPORTING

              date                = t_dados-budat

              version             = v_periv

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_date.

    v_koart = 'K'.

    PERFORM check_periodo USING    v_koart

                                   v_bukrs

                          CHANGING v_data_lanc_char

                                   v_ok

                                   v_monat

                                   v_gjahr.

    MOVE v_date TO v_gjahr.

    MOVE v_monat+1(2) TO v_periodo.

    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,

           'BKPF-MONAT'  v_periodo,

           'BKPF-WAERS'  t_dados-waers,

           'BKPF-KURSF'  v_kursf,

           'BKPF-XBLNR'  t_dados-xblnr,

           'BKPF-BKTXT'  t_dados-bktxt,

           'RF05V-NEWBS' t_dados-newbs,

           'RF05V-NEWKO' t_dados-d_newko,

           'RF05V-NEWUM' t_dados-umskz,

           'BDC_OKCODE' '/00'.

    WRITE: t_dados-wrbtr TO v_wrbtr CURRENCY t_dados-waers,

           t_dados-dmbtr TO v_dmbtr CURRENCY t_dados-waersb,

           v_skfbt TO v_base_char CURRENCY t_dados-waers.

    IF t_dados-newbs EQ '40'.

      PERFORM bdc_screen USING 'SAPLF040' '0300'.

    ELSEIF t_dados-newbs EQ '01'.

      PERFORM bdc_screen USING 'SAPLF040' '0301'.

    ELSE.

      PERFORM bdc_screen USING 'SAPLF040' '0302'.

    ENDIF.

    PERFORM bdc_field  USING:

         'BSEG-WRBTR' v_wrbtr.

    READ TABLE itab_oculto WITH KEY campo = 'BSEG-DMBTR' chave = 'D'.

    IF sy-subrc NE 0.

      IF NOT t_dados-dmbtr IS INITIAL.

        PERFORM bdc_field  USING 'BSEG-DMBTR' v_dmbtr.

      ENDIF.

    ENDIF.

    READ TABLE itab_oculto WITH KEY campo = 'BSEG-BUPLA' chave = 'D'.

    IF sy-subrc NE 0.

      IF NOT t_dados-brnch IS INITIAL.

        PERFORM bdc_field  USING 'BSEG-BUPLA' t_dados-brnch.

      ENDIF.

    ENDIF.

      READ TABLE itab_oculto WITH KEY campo = 'COBL-GSBER' chave = 'D'.

      IF sy-subrc <> 0.

        IF NOT t_dados-d_gsber IS INITIAL.

          PERFORM bdc_field  USING 'BSEG-GSBER' t_dados-d_gsber.

        ENDIF.

      ENDIF.

    WRITE: t_dados-c_valut TO v_data_val_char.

    PERFORM bdc_field  USING:

           'BSEG-ZUONR'  t_dados-c_zuonr,

           'BSEG-ZFBDT'  v_data_val_char,

           'BSEG-SGTXT'  t_dados-c_sgtxt,

           'RF05V-NEWBS' t_dados-newbs1,

           'RF05V-NEWKO' t_dados-c_newko.

    PERFORM bdc_field  USING  'BDC_OKCODE'  '/00'.

    PERFORM determina_string USING t_dados-newbs1

                                   t_dados-bukrs

                                   t_dados-c_newko

                           CHANGING v_string_credito.

    refresh itab_oculto.

    PERFORM trata_string_credito TABLES t_dados

                                       t_campo

                                       itab_oculto

                                USING  v_string_credito.

    IF t_dados-newbs1 EQ '40'.

      PERFORM bdc_screen USING 'SAPLKACB' '0002'.

      READ TABLE itab_oculto WITH KEY campo = 'COBL-GSBER' chave = 'D'.

      IF sy-subrc <> 0.

        IF NOT t_dados-d_gsber IS INITIAL.

          PERFORM bdc_field  USING 'COBL-GSBER' t_dados-d_gsber.

        ENDIF.

      ENDIF.

      PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.

    ENDIF.

    IF t_dados-agkoa = 'S'.

      PERFORM bdc_screen USING 'SAPLF040' '0300'.

      PERFORM bdc_field  USING:

             'BSEG-WRBTR' v_wrbtr,

             'BSEG-ZUONR' t_dados-c_zuonr,

             'BSEG-SGTXT' t_dados-c_sgtxt,

             'BDC_OKCODE' '=BP'.

      READ TABLE itab_oculto WITH KEY campo = 'BSEG-DMBTR' chave = 'D'.

      IF sy-subrc NE 0.

        IF NOT t_dados-dmbtr IS INITIAL.

          PERFORM bdc_field  USING 'BSEG-DMBTR' v_dmbtr.

        ENDIF.

      ENDIF.

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

      IF sy-subrc <> 0.

        IF NOT t_dados-c_valut IS INITIAL.

          PERFORM bdc_field  USING 'BSEG-VALUT' v_data_val_char.

        ENDIF.

      ENDIF.

      PERFORM bdc_screen USING 'SAPLKACB' '0002'.

      READ TABLE itab_oculto WITH KEY campo = 'COBL-GSBER' chave = 'C'.

      IF sy-subrc <> 0.

        IF NOT t_dados-c_gsber IS INITIAL.

          PERFORM bdc_field  USING 'COBL-GSBER' t_dados-c_gsber.

        ENDIF.

      ENDIF.

      IF NOT t_dados-aufnr IS INITIAL.

        PERFORM bdc_field USING 'COBL-AUFNR' t_dados-aufnr.

      ENDIF.

      PERFORM bdc_field  USING 'COBL-KOSTL' t_dados-d_kostl.

      READ TABLE itab_oculto WITH KEY campo = 'COBL-PS_PSP_PNR'

                                      chave = 'C'.

      IF sy-subrc <> 0.

        IF NOT  t_dados-ps_psp_pnr IS INITIAL.

          CALL FUNCTION 'CONVERSION_EXIT_KONPR_OUTPUT'

               EXPORTING

                    input  = t_dados-ps_psp_pnr

               IMPORTING

                    output = v_pep.

          PERFORM bdc_field  USING:

             'COBL-PS_PSP_PNR' v_pep.

        ENDIF.

      ENDIF.

      READ TABLE itab_oculto WITH KEY campo = 'COBL-PRCTR' chave = 'C'.

      IF sy-subrc <> 0.

        IF NOT  t_dados-c_prctr IS INITIAL.

          PERFORM bdc_field  USING:

             'COBL-PRCTR' t_dados-c_prctr.

        ENDIF.

      ENDIF.

      PERFORM bdc_field  USING:

             'BDC_OKCODE' '=ENTE'.

    ELSEIF t_dados-agkoa EQ 'D'.

      PERFORM bdc_screen USING 'SAPLF040' '0301'.

      PERFORM bdc_field  USING:

         'BSEG-WRBTR' v_wrbtr.

      READ TABLE itab_oculto WITH KEY campo = 'BSEG-DMBTR' chave = 'D'.

      IF sy-subrc NE 0.

        IF NOT t_dados-dmbtr IS INITIAL.

          PERFORM bdc_field  USING 'BSEG-DMBTR' v_dmbtr.

        ENDIF.

      ENDIF.

      READ TABLE itab_oculto WITH KEY campo = 'BSEG-BUPLA' chave = 'D'.

      IF sy-subrc NE 0.

        IF NOT t_dados-brnch IS INITIAL.

          PERFORM bdc_field  USING 'BSEG-BUPLA' t_dados-brnch.

        ENDIF.

      ENDIF.

      READ TABLE itab_oculto WITH KEY campo = 'COBL-GSBER' chave = 'D'.

      IF sy-subrc <> 0.

        IF NOT t_dados-d_gsber IS INITIAL.

          PERFORM bdc_field  USING 'BSEG-GSBER' t_dados-d_gsber.

        ENDIF.

      ENDIF.

      WRITE: t_dados-c_valut TO v_data_val_char.

      PERFORM bdc_field  USING:

             'BSEG-ZUONR'  t_dados-c_zuonr,

             'BSEG-VALUT'  v_data_val_char,

             'BSEG-SGTXT'  t_dados-c_sgtxt,

             'BDC_OKCODE' '=BP'.

    ELSE.

      PERFORM bdc_screen USING 'SAPLF040' '0302'.

      PERFORM bdc_field  USING:

         'BSEG-WRBTR' v_wrbtr.

      READ TABLE itab_oculto WITH KEY campo = 'BSEG-DMBTR' chave = 'D'.

      IF sy-subrc NE 0.

        IF NOT v_dmbtr IS INITIAL.

          PERFORM bdc_field  USING 'BSEG-DMBTR' v_dmbtr.

        ENDIF.

      ENDIF.

      READ TABLE itab_oculto WITH KEY campo = 'BSEG-BUPLA' chave = 'D'.

      IF sy-subrc NE 0.

        IF NOT t_dados-brnch IS INITIAL.

          PERFORM bdc_field  USING 'BSEG-BUPLA' t_dados-brnch.

        ENDIF.

      ENDIF.

      READ TABLE itab_oculto WITH KEY campo = 'COBL-GSBER' chave = 'D'.

      IF sy-subrc <> 0.

        IF NOT t_dados-d_gsber IS INITIAL.

          PERFORM bdc_field  USING 'BSEG-GSBER' t_dados-d_gsber.

        ENDIF.

      ENDIF.

      WRITE: t_dados-c_valut TO v_data_val_char.

      PERFORM bdc_field  USING:

             'BSEG-ZUONR'  t_dados-c_zuonr,

             'BSEG-ZFBDT'  v_data_val_char,

             'BSEG-SGTXT'  t_dados-c_sgtxt,

             'BDC_OKCODE' '=BP'.

    ENDIF.

    CLEAR itab_msg.

    v_transacao = 'F-63'.

    v_update = 'S'.

    v_msgid = 'FP'.

    v_msgno = '001'.

    IF v_modo IS INITIAL.

      v_mode = 'N'.

    ELSE.

      v_mode = v_modo.

    ENDIF.

    PERFORM  call_transaction TABLES   itab_msg

                                       itab_bdc

                                       t_zycbt032

                                       t_dados

                              USING    v_transacao

                                       v_mode

                                       v_update

                                       v_msgid

                                       v_msgno

                              CHANGING v_nrmsg.

  ENDLOOP.

  FREE:

    itab_bdc,

    itab_msg.

ENDFUNCTION.

* << Fim da inclusão

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_65

 

* >> Início da inclusão:

function /pws/zycb_transacao_f_65.

  data:

    v_string_debito      like tbsl-faus1,

    v_string_credito     like tbsl-faus1,

    v_data_doc_char(10)  type c,

    v_data_lanc_char(10) type c,

    v_data_val_char(10)  type c,

    v_kursf(9)           type c,

    v_wrbtr(16)          type c,

    v_chave_debito       like tbsl-bschl value '40',

    v_chave_credito      like tbsl-bschl value '50',

    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_msgno              like t100-msgnr,

    v_koart              like t001b-mkoar,

    v_ok(1)              value 'N',

    v_monat              like t001b-frpe1,

    v_bukrs              like t001-bukrs,

    v_date               like t009b-bdatj,

    v_periv(2),

    v_periodo(2),

    v_gjahr              like t001b-frye1.

  loop at t_dados.

  call function '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

    exporting

      v_bukrs                      = t_dados-bukrs

      v_date                       = t_dados-budat

   importing

      v_year                       = v_date.

    check t_dados-tcode = 'F-65'.

    if ( t_dados-bukrs = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'BKPF-BUKRS'.

      t_campo-descricao = text-021.

      append t_campo.

      raise campo_em_branco.

    endif.

    if ( t_dados-d_newko = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'RF05V-NEWKO'.

      t_campo-descricao = text-020.

      append t_campo.

      raise campo_em_branco.

    endif.

    if ( t_dados-c_newko = space ).

      t_campo-mandt = t_dados-mandt.

      t_campo-campo = 'RF05V-NEWKO'.

      t_campo-descricao = text-022.

      append t_campo.

      raise campo_em_branco.

    endif.

    perform determina_string using v_chave_debito

                                   t_dados-bukrs

                                   t_dados-d_newko

                             changing v_string_debito.

    perform determina_string using v_chave_credito

                                   t_dados-bukrs

                                   t_dados-c_newko

                             changing v_string_credito.

    perform trata_string_debito tables t_dados

                                       t_campo

                                       itab_oculto

                                using  v_string_debito.

    perform trata_string_credito tables t_dados

                                        t_campo

                                        itab_oculto

                                 using  v_string_credito.

    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.

    SELECT SINGLE periv FROM t001

                 INTO v_periv

                 WHERE bukrs EQ v_bukrs.

    CALL FUNCTION 'DETERMINE_PERIOD'

         EXPORTING

              date                = t_dados-budat

              version             = v_periv

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

    v_gjahr = v_DATE.

    v_koart = 'S'.

    PERFORM check_periodo USING    v_koart

                                   v_bukrs

                          CHANGING v_data_lanc_char

                                   v_ok

                                   v_monat

                                   v_gjahr.

    move v_date to v_gjahr.

    move v_monat+1(2) to v_periodo.

    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,

           'BKPF-MONAT' v_periodo,

           'BKPF-WAERS' t_dados-waers,

           'BKPF-KURSF' v_kursf,

           'BKPF-XBLNR' t_dados-xblnr,

           'BKPF-BKTXT' t_dados-bktxt,

           'RF05V-NEWBS' '40',

           'RF05V-NEWKO' t_dados-d_newko,

           'BDC_OKCODE' '/00'.

    write: t_dados-d_valut to v_data_val_char,

           t_dados-wrbtr to v_wrbtr currency t_dados-waers.

    perform bdc_screen using 'SAPLF040' '0300'.

    perform bdc_field  using:

           'BSEG-WRBTR' v_wrbtr,

           'BSEG-ZUONR' t_dados-d_zuonr,

           'BSEG-VALUT' v_data_val_char,

           'BSEG-SGTXT' t_dados-d_sgtxt,

           'RF05V-NEWBS' '50',

           'RF05V-NEWKO' t_dados-c_newko,

           'BDC_OKCODE' '/00'.

    perform bdc_screen using 'SAPLKACB' '0002'.

    perform bdc_field  using:

           'COBL-GSBER' t_dados-d_gsber,

           'COBL-KOSTL' t_dados-d_kostl,

           'COBL-PRCTR' t_dados-d_prctr,

           'BDC_OKCODE' '=ENTE'.

    write: t_dados-c_valut to v_data_val_char.

    perform bdc_screen using 'SAPLF040' '0300'.

    perform bdc_field  using:

           'BSEG-WRBTR' '*',

           'BSEG-VALUT' v_data_val_char,

           'BSEG-ZUONR' t_dados-c_zuonr,

           'BSEG-SGTXT' t_dados-c_sgtxt,

           'BDC_OKCODE' '/00'.

    perform bdc_screen using 'SAPLKACB' '0002'.

    perform bdc_field  using:

           'COBL-GSBER' t_dados-c_gsber,

           'COBL-KOSTL' t_dados-c_kostl,

           'COBL-PRCTR' t_dados-c_prctr,

           'BDC_OKCODE' '=ENTE'.

    perform bdc_screen using 'SAPLF040' '0300'.

    perform bdc_field  using:

           'DKACB-FMORE' ' ',

           'BDC_OKCODE' '=BP'.

    refresh itab_msg.

    clear itab_msg.

    v_transacao = 'F-65'.

    v_mode = 'N'.

    v_update = 'S'.

    v_msgid = 'FP'.

    v_msgno = '001'.

    perform  call_transaction tables   itab_msg

                                       itab_bdc

                                       t_zycbt032

                                       t_dados

                              using    v_transacao

                                       v_mode

                                       v_update

                                       v_msgid

                                       v_msgno

                              changing v_nrmsg.

  endloop.

  free:

    itab_bdc,

    itab_msg.

endfunction.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/LZYCBGF2F01

 

...

       EXCEPTIONS

            exit           = 1

            not_found      = 2

            archive_cancel = 3

            OTHERS         = 4.

  IF sy-subrc EQ 0.

    p_taxa = wa_bkpf-kursf.

  ENDIF.

ENDFORM.

FORM check_periodo USING    value(p_koart)

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

                            value(p_monat)

* << Fim da exclusão

                            value(p_bukrs)

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

                            value(p_gjahr)

* << Fim da exclusão

                   CHANGING value(p_novadata)

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

                            value(p_ok).                    "#EC *

* << Fim da exclusão

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

                            value(p_ok)                     "#EC *

                            value(p_monat)

                            value(p_gjahr).

* << Fim da inclusão

  DATA: v_resposta(1),

        v_novadata LIKE spop-varvalue1.

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

  DATA: v_periv(2).

  clear v_budat.

* << 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

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

            i_koart          = p_koart

* << Fim da exclusão

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

              i_koart          = '+'

* << Fim da inclusão

            i_monat          = p_monat

       EXCEPTIONS

            error_period     = 1

            error_period_acc = 2

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

            OTHERS           = 3.

* << Fim da exclusão

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

              OTHERS           = 3.                         "#EC *

* << Fim da inclusão

  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.

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

  export v_budat to memory id 'N_BUDAT'.

* << Fim da inclusão

ENDFORM.

FORM entrar_nova_data CHANGING

...