CE PLUS - Nota 004840

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Agrupamento de Embarque

Data/Hora da Publicação: 27/09/2007 00:00:00

Data/Hora Última Alteração: 21/02/2011 17:22:06

Descrição da Nota: PREENCHER VALOR EM MOEDA LOCAL NO BATCH INPUT DA F-30 NO AGRUP. EMBARQUE

Sintoma

Ao executar o batch input na transação F-30 no Agrupamento de Faturas do Embarque, preencher o campo

"Montante MI" com o valor em Moeda Interna do faturamento.

 

 

Solução

Inclusão de rotinas para para seleção dos valores e preenchimento do campo no batch input.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

ELIMINAÇÃO DA TRATA_ORDEM NO AGRUPAMENTO DE EMBARQUE

CRIAÇÃO DE FUNÇÃO PARA SELEÇÃO DE ITENS DO DOCUMENTO CONTÁBIL DA FATURA

Informações Complementares

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

Nota Número 04840 Data: 27/09/2007 Hora: 09:20:27

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

 

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

Nota Número              : 04840

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00014

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

Referência às notas relacionadas:

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

 

04292  - 00001 - 7.0    - 00002  - ELIMINAÇÃO DA TRATA_ORDEM NO AGRUPAMENTO DE EMBARQUE

04755  - 00002 - 7.0    - 00002  - CRIAÇÃO DE FUNÇÃO PARA SELEÇÃO DE ITENS DO DOCUMENTO CONTÁBIL DA

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

PREENCHER VALOR EM MOEDA LOCAL NO BATCH INPUT DA F-30 NO AGRUP. EMBARQUE

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

Palavras Chave:

MOEDA, INTERNA, LOGAL, BATCH-INPUT, F-30, EMBARQUE, AGRUPAMENTO,

VARIAÇÃO, VALOR, MONTANTE

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

Objetos da nota:

FUNC /PWS/ZYCE_TRANSACAO_F_30C

REPS /PWS/ZYCER306

 

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

Modificações efetuadas em FUNC /PWS/ZYCE_TRANSACAO_F_30C

 

...

    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_xpos_budat(20),

    v_wrbtr(16)          TYPE c,

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

    v_dmbtr(16)          TYPE c,

* << Fim da inclusão

    v_num1(5)            TYPE n,

    v_ver_agrup(1),

    v_date2              LIKE t009b-bdatj,

    v_page               TYPE n.

  MOVE t_zycbt036[] TO itab_zycbt036[].

  SELECT SINGLE posicao FROM /pws/zycbt033

                        INTO (/pws/zycbt033-posicao)

                        WHERE tcode = 'F-30'.

  CONCATENATE 'RF05A-XPOS1(' /pws/zycbt033-posicao ')' INTO v_xpos.

  CLEAR v_xpos1.

...

 

...

      PERFORM trata_string_debito_func TABLES t_dados

                                         t_campo

                                         itab_oculto

                                  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,

           t_dados-wrbtr   TO v_wrbtr CURRENCY t_dados-waers,

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

           t_dados-dmbtr   TO v_dmbtr CURRENCY t_dados-waers,

* << Fim da inclusão

           t_dados-wwert   TO v_wwert.

    v_koart = t_dados-agkoa.

    PERFORM checa_periodo  USING     v_bukrs

                                     t_dados-budat

                                     v_koart

                           CHANGING  v_budat

                                     v_ok

                                     v_gjahr

                                     v_monat.

    SHIFT v_monat LEFT DELETING LEADING '0'.

...

 

...

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

            'BKPF-BKTXT'  t_dados-bktxt,

            'RF05A-AUGTX' t_dados-augtx,

            'BKPF-MONAT'  v_monat,

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

            'BKPF-WWERT'  v_wwert,

* << Fim da exclusão

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

            'BKPF-WWERT'  v_wwert.

    PERFORM bdc_field  USING:

            'RF05A-NEWBS'  t_dados-newbs,

            'RF05A-NEWKO'  t_dados-d_newko,

* << Fim da inclusão

            'BDC_OKCODE'  '=SL'.

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

    CLEAR  v_dtdocto.

    WRITE: t_dados-dtdocto TO v_dtdocto.

    PERFORM bdc_screen USING 'SAPMF05A' '0301'.

    PERFORM bdc_field  USING:

            'BDC_CURSOR' 'BSEG-DMBTR',

            'BDC_OKCODE' '=SL',

            'BSEG-WRBTR'  v_wrbtr,

            'BSEG-DMBTR'  v_dmbtr,

            'BSEG-ZFBDT'  v_dtdocto.

* << Fim da inclusão

    PERFORM bdc_screen USING 'SAPMF05A' '0710'.

    PERFORM bdc_field USING:

            'RF05A-AGKON' t_dados-agkon,

            'RF05A-AGKOA' t_dados-agkoa,

            'BDC_OKCODE'  '=SLB'.

    PERFORM bdc_screen USING 'SAPMF05A'   '0733'.

    PERFORM bdc_field  USING 'BDC_OKCODE' '/00'.

    CLEAR: v_cont, v_belnr.

    LOOP AT itab_zycbt036 WHERE tcode  = t_dados-tcode

                            AND tabela = t_dados-tabela

...

 

...

      PERFORM bdc_screen USING 'SAPDF05X'    v_tela.

      PERFORM bdc_field  USING 'BDC_SUBSCR'  'SAPDF05X'.

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

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

      PERFORM bdc_field  USING 'BDC_OKCODE'  '=OMX'.

      PERFORM bdc_screen USING 'SAPDF05X' v_tela.

      PERFORM bdc_field  USING 'BDC_SUBSCR'  'SAPDF05X'.

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

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

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

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

      PERFORM bdc_screen USING 'SAPDF05X' v_tela.

      PERFORM bdc_field  USING 'BDC_SUBSCR'  'SAPDF05X'.

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

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

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

      PERFORM bdc_screen USING 'SAPDF05X' '3100'.

      PERFORM bdc_field  USING 'BDC_SUBSCR'  'SAPDF05X'.

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

      PERFORM bdc_field USING: 'BDC_CURSOR' 'DF05B-PSDIF(01)',

                             'BDC_OKCODE' '=PI'.

* << Fim da exclusão

      PERFORM bdc_screen USING 'SAPDF05X'    '3100'.

      PERFORM bdc_field USING: 'BDC_OKCODE'  '=BS',

                               'RF05A-ABPOS' '1'.

      PERFORM verifica_empresas_2 USING t_dados-bukrs

                                      'UMBUCHNG'

                                      t_dados-agkon

                                      t_dados-agkoa.

      PERFORM bdc_screen USING 'SAPMF05A'    '0700'.

      PERFORM bdc_field USING:

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

...

 

...

              'BSEG-ZTERM'   t_dados-zterm,

              'BSEG-SGTXT'   t_dados-d_sgtxt,

              'BDC_OKCODE'   '=AB'.

      IF NOT t_dados-d_gsber IS INITIAL.

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

      ENDIF.

      PERFORM bdc_screen USING 'SAPMF05A'    '0700'.

      PERFORM bdc_field USING:

              'BDC_OKCODE'   '=BU'.

    ELSE.

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

      PERFORM bdc_screen USING 'SAPDF05X'    v_tela.

      PERFORM bdc_field  USING 'BDC_SUBSCR'  'SAPDF05X'.

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

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

      PERFORM bdc_field  USING 'BDC_OKCODE'  '=OMX'.

      PERFORM bdc_screen USING 'SAPDF05X' v_tela.

      PERFORM bdc_field  USING 'BDC_SUBSCR'  'SAPDF05X'.

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

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

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

      PERFORM bdc_screen USING 'SAPDF05X' v_tela.

      PERFORM bdc_field  USING 'BDC_SUBSCR'  'SAPDF05X'.

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

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

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

      PERFORM bdc_screen USING 'SAPDF05X' '3100'.

      PERFORM bdc_field  USING 'BDC_SUBSCR'  'SAPDF05X'.

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

      PERFORM bdc_field USING: 'BDC_CURSOR' 'DF05B-PSDIF(01)',

                             'BDC_OKCODE' '=PI'.

* << Fim da exclusão

      PERFORM bdc_screen USING 'SAPDF05X'   '3100'.

      PERFORM bdc_field  USING 'BDC_SUBSCR'  'SAPDF05X'.

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

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

* << Fim da exclusão

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

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

      PERFORM verifica_empresas_2 USING t_dados-bukrs

                                      'UMBUCHNG'

                                      t_dados-agkon

                                      t_dados-agkoa.

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

      IF NOT t_dados-d_newko IS INITIAL.

        PERFORM bdc_screen USING 'SAPMF05A' '0700'.

        PERFORM bdc_field USING:

              'RF05A-NEWBS'  t_dados-newbs,

              'RF05A-NEWKO'  t_dados-d_newko,

              'BDC_OKCODE'   '/00'.

        PERFORM bdc_screen USING 'SAPMF05A' '0300'.

        PERFORM bdc_field  USING:

                'BDC_CURSOR' 'BSEG-WRBTR',

                'BSEG-WRBTR' v_wrbtr,

                'BDC_OKCODE' '=AB'.

        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_dados-d_gsber.

        ENDIF.

        PERFORM bdc_field  USING 'BDC_OKCODE' '=COBL_XERGO'.

        PERFORM bdc_screen USING 'SAPLKEAK' '0300'.

       PERFORM bdc_field  USING 'RKEAK-FIELD(04)' t_dados-aufnr.

      PERFORM bdc_field  USING 'BDC_OKCODE'    '=WEIT'.

        PERFORM bdc_screen USING 'SAPLKACB'   '0002'.

        PERFORM bdc_field  USING 'BDC_CURSOR' 'COBL-GSBER'.

        PERFORM bdc_field  USING 'BDC_OKCODE' '=ENTE'.

        PERFORM bdc_screen USING 'SAPMF05A'   '0700'.

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

        PERFORM bdc_field USING 'BDC_OKCODE' '=PA'.

        PERFORM bdc_screen USING 'SAPDF05X' '3100'.

        PERFORM bdc_field  USING 'BDC_SUBSCR'  'SAPDF05X'.

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

        PERFORM bdc_field USING: 'BDC_CURSOR' 'DF05B-PSDIF(01)',

                                 'BDC_OKCODE' '=PI'.

        PERFORM bdc_screen USING 'SAPDF05X' '3100'.

        PERFORM bdc_field  USING 'BDC_SUBSCR'  'SAPDF05X'.

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

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

        PERFORM bdc_screen USING 'SAPMF05A' '0700'.

        PERFORM bdc_field USING:

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

                'BDC_OKCODE' '=PI'.

        WRITE: t_dados-d_valut TO v_valut.

        PERFORM bdc_screen USING 'SAPMF05A' v_tela2.

        PERFORM bdc_field USING:

                'BDC_OKCODE' '=BU'.

      ENDIF.

* << Fim da exclusão

      IF v_clearing IS INITIAL.

        PERFORM bdc_screen USING 'SAPMF05A' '0700'.

        PERFORM bdc_field USING:

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

                'BDC_OKCODE' '=PI'.

        CLEAR v_dtdocto.

        WRITE: t_dados-d_valut TO v_valut,

               t_dados-dtdocto TO v_dtdocto.

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

      ELSE.

* << Fim da inclusão

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

      ELSE.

* << Fim da exclusão

        PERFORM bdc_screen USING 'SAPMF05A' '0700'.

        PERFORM bdc_field USING:

                'BDC_OKCODE' '=BU'.

      ENDIF.

      IF v_clearing IS INITIAL.

        PERFORM bdc_screen USING 'SAPMF05A' v_tela2.

        PERFORM bdc_field USING:

                'BSEG-ZTERM'   t_dados-zterm.

        READ TABLE itab_oculto WITH KEY campo = 'BSEG-ZFBDT'

                                        chave = 'D'.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCER306

 

...

              i_paramoeda_nao_encontrado   = 0

              i_ctmoeda_nao_encontrado     = 0

              i_dtbase_nao_encontrada      = 0

              taxa_nao_encontrada          = 0

              fator_nao_encontrado         = 0

              i_montante_nao_encontrado    = 0

              tabela_categ_nao_configurada = 0

              OTHERS                       = 0.

  ENDIF.

  IF /pws/zycet037-alt_cond = '1'.

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

    PERFORM preenche_valor_mi

            USING space

                  space

            CHANGING

                  itab_zycbt033-wrbtr

                  itab_zycbt033-dmbtr.

    itab_zycbt033-newbs   = '04'.

    itab_zycbt033-d_newko = wa_zycet001-codportd.

* << Fim da inclusão

    APPEND itab_zycbt033.

  ELSE.

    SELECT * FROM t052s

      INTO TABLE itab_t052s

      WHERE zterm = itab_zycet002-zterm.

    IF sy-subrc EQ 0.

      LOOP AT itab_t052s.

        itab_zycbt033-zterm = itab_t052s-ratzt.

        itab_zycbt033-mwskz = 'X'.

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

        PERFORM preenche_valor_mi

          USING 'X'

                itab_zycbt033-zterm

          CHANGING

                itab_zycbt033-wrbtr

                itab_zycbt033-dmbtr.

        itab_zycbt033-newbs   = '04'.

        itab_zycbt033-d_newko = wa_zycet001-codportd.

* << Fim da inclusão

        APPEND itab_zycbt033.

      ENDLOOP.

    ELSE.

      itab_zycbt033-zterm = itab_zycet002-zterm.

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

      PERFORM preenche_valor_mi

        USING space

              space

        CHANGING

              itab_zycbt033-wrbtr

              itab_zycbt033-dmbtr.

      itab_zycbt033-newbs = '04'.

      itab_zycbt033-d_newko = wa_zycet001-codportd.

* << Fim da inclusão

      APPEND itab_zycbt033.

    ENDIF.

  ENDIF.

  LOOP AT itab_zycet002 .

    READ TABLE itab_bkpf

      WITH KEY awkey = itab_zycet002-vbeln_vf.

    IF sy-subrc EQ 0.

      itab_zycbt036-mandt   = sy-mandt.

      itab_zycbt036-tcode   = 'F-30'.

      itab_zycbt036-tabela  = '/PWS/ZYCET002'.

...

 

...

   FROM t001

   INTO p_moeda_destino

   WHERE bukrs EQ wa_zycet001-bukrs.

  SELECT SINGLE ctmoed

   FROM /pws/zycbt011

   INTO p_categoria

   WHERE codmod  EQ 'X'

     AND codeven EQ '001'

     AND bukrs EQ wa_zycet001-bukrs.

ENDFORM.

* >> Início da inclusão:

FORM  preenche_valor_mi

      USING

        p_tipo

        p_zterm TYPE /pws/zycet002-zterm

      CHANGING

        p_wrbtr TYPE bseg-wrbtr

        p_dmbtr TYPE bseg-dmbtr.

  DATA: it_zycet002 TYPE STANDARD TABLE OF /pws/zycet002,

        wa_zycet002 LIKE LINE OF it_zycet002[].

  DATA: it_bseg TYPE STANDARD TABLE OF bseg,

        wa_bseg LIKE LINE OF it_bseg[].

  DATA: v_awkey TYPE bkpf-awkey,

        v_wrbtr TYPE bseg-wrbtr,

        v_dmbtr TYPE bseg-dmbtr.

  it_zycet002[] = itab_zycet002[].

  IF p_tipo EQ space.

    SORT it_zycet002 BY vbeln_vf.

    DELETE ADJACENT DUPLICATES FROM it_zycet002 COMPARING vbeln_vf.

  ELSE.

    SORT it_zycet002 BY vbeln_vf zterm.

    DELETE ADJACENT DUPLICATES FROM it_zycet002 COMPARING vbeln_vf

                                                          zterm.

  ENDIF.

  LOOP AT it_zycet002 INTO wa_zycet002.

    REFRESH it_bseg.

    CLEAR v_awkey.

    MOVE wa_zycet002-vbeln_vf TO v_awkey.

    CALL FUNCTION '/PWS/ZYCE_SELECT_DOC_CONTABIL'

         EXPORTING

              p_awkey                  = v_awkey

              p_bukrs                  = wa_zycet002-bukrs

              p_date                   = wa_zycet002-fkdat

         TABLES

              itab_bseg                = it_bseg

         EXCEPTIONS

              documento_nao_encontrado = 1

              itens_nao_encontrados    = 2

              OTHERS                   = 4.

    IF sy-subrc EQ 0.

      DELETE it_bseg[] WHERE koart <> 'D' OR

                             kunnr <> wa_zycet001-codportd.

      IF p_tipo NE space.

        DELETE it_bseg[] WHERE zterm <> p_zterm.

      ENDIF.

      LOOP AT it_bseg INTO wa_bseg.

        IF wa_bseg-shkzg EQ 'H'.

          v_wrbtr = v_wrbtr - wa_bseg-wrbtr.

          v_dmbtr = v_dmbtr - wa_bseg-dmbtr.

        ELSE.

          v_wrbtr = v_wrbtr + wa_bseg-wrbtr.

          v_dmbtr = v_dmbtr + wa_bseg-dmbtr.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

  p_wrbtr = v_wrbtr.

  p_dmbtr = v_dmbtr.

ENDFORM.

* << Fim da inclusão