CE PLUS - Nota 000105

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Despesas

Data/Hora da Publicação: 07/10/2005 00:00:00

Data/Hora Última Alteração: 18/02/2011 14:35:50

Descrição da Nota: DESPESAS EXPORTAÇÃO

Sintoma

O Batch Imput estava sendo abandonado sem aprovar o documento contábil

 

 

Solução

Foi feito o tratamento no call transaction para que o SAP

ignore o commit work.

 

 

Versões Tratadas

6.0

Informações Complementares

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

Nota Número 00105 Data: 07/10/2005 Hora: 11:13:18

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

 

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

Nota Número              : 00105

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00021

Agrupamento              : 00082

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

DESPESAS EXPORTAÇÃO

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

Palavras Chave:

FBV0 APROVAÇÃO

 

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

Objetos da nota:

REPS /PWS/LZYGLGF2F01

REPS /PWS/LZYGLGF2TOP

 

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

Modificações efetuadas em REPS /PWS/LZYGLGF2F01

 

FORM  call_transaction TABLES   p_itab_msg   LIKE itab_msg[]

                                p_itab_bdc   STRUCTURE bdcdata

                                p_t_zycbt032 STRUCTURE /pws/zycbt032

                                p_t_dados    STRUCTURE /pws/zycbe033

                       USING    value(p_tcode)

                                value(p_mode)

                                value(p_update)

                                value(p_msgid)

                                value(p_msgno)

                       CHANGING p_nrmsg.

 

  DATA: v_belnr LIKE bseg-belnr.     " Guarda nº documento anterior

 

  AUTHORITY-CHECK OBJECT 'S_TCODE' ID 'TCD' FIELD p_tcode.

 

  IF sy-subrc EQ 0.

 

<<Inclusão>>

* 262390 - 06/10/2005 - Início

    PERFORM preenche_tab_exec_call_transac tables itab_ctu_params

                                           USING  p_mode

                                                  p_update.

<<Inclusão - Fim>>

<<Alteração>>

*   Executa o call transaction

    CALL TRANSACTION p_tcode USING         p_itab_bdc

                             OPTIONS  FROM itab_ctu_params

                             MESSAGES INTO p_itab_msg.

 

*   Executa o call transaction

*    CALL TRANSACTION p_tcode USING p_itab_bdc

*                           MODE  p_mode

*                           UPDATE p_update

*                           MESSAGES INTO p_itab_msg.

 

* 262390 - 06/10/2005 - Fim

<<Alteração - Fim>>

*   Testa o retorno

    IF sy-subrc <> 0.        "ERRO NO CALL TRANSACTION

      LOOP AT p_itab_msg.

        ADD 1 TO p_nrmsg.

        CALL FUNCTION 'MESSAGE_PREPARE'

             EXPORTING

                  language               = sy-langu

                  msg_id                 = p_itab_msg-msgid

                  msg_no                 = p_itab_msg-msgnr

                  msg_var1               = p_itab_msg-msgv1

                  msg_var2               = p_itab_msg-msgv2

                  msg_var3               = p_itab_msg-msgv3

                  msg_var4               = p_itab_msg-msgv4

             IMPORTING

                  msg_text               = p_t_zycbt032-msg

             EXCEPTIONS

                  function_not_completed = 1

                  message_not_found      = 2

                  OTHERS                 = 3.

*     Preenche tabela c/ log de execução

        p_t_zycbt032-mandt  = p_t_dados-mandt.

        p_t_zycbt032-tcode  = p_tcode.

        p_t_zycbt032-tabela = p_t_dados-tabela.

        p_t_zycbt032-cpochv = p_t_dados-cpochv.

        p_t_zycbt032-tpmsg  = 'E'.

*      p_t_zycbt032-msgid  =

        p_t_zycbt032-nrmsg  = p_itab_msg-msgnr.

        p_t_zycbt032-msgid  = p_itab_msg-msgid.

        p_t_zycbt032-msgv1  = p_itab_msg-msgv1.

        p_t_zycbt032-msgv2  = p_itab_msg-msgv2.

        p_t_zycbt032-msgv3  = p_itab_msg-msgv3.

        p_t_zycbt032-msgv4  = p_itab_msg-msgv4.

        APPEND p_t_zycbt032.

      ENDLOOP.

    ELSE.                 "SUCESSO NO CALL TRANSACTION

      ADD 1 TO p_nrmsg.

      CALL FUNCTION 'MESSAGE_PREPARE'

           EXPORTING

                language               = sy-langu

                msg_id                 = p_msgid

                msg_no                 = p_msgno

                msg_var1               = sy-msgv1

                msg_var2               = sy-msgv2

                msg_var3               = sy-msgv3

                msg_var4               = sy-msgv4

           IMPORTING

                msg_text               = p_t_zycbt032-msg

           EXCEPTIONS

                function_not_completed = 1

                message_not_found      = 2

                OTHERS                 = 3.

*     Preenche tabela c/ log de execução

      p_t_zycbt032-mandt  = p_t_dados-mandt.

      p_t_zycbt032-tcode  = p_tcode.

      p_t_zycbt032-tabela = p_t_dados-tabela.

      p_t_zycbt032-cpochv = p_t_dados-cpochv.

      p_t_zycbt032-tpmsg  = 'S'.

      p_t_zycbt032-msgid  = p_msgid.

      p_t_zycbt032-nrmsg  = p_msgno.

      p_t_zycbt032-msgv1  = sy-msgv1.

      p_t_zycbt032-msgv2  = sy-msgv2.

      p_t_zycbt032-msgv3  = sy-msgv3.

      p_t_zycbt032-msgv4  = sy-msgv4.

      p_t_zycbt032-belnr  = sy-msgv1.

      SHIFT p_t_zycbt032-belnr RIGHT DELETING TRAILING space.

      TRANSLATE p_t_zycbt032-belnr USING ' 0'.

      APPEND p_t_zycbt032.

      v_num = itab_zycbt036-belnr.

      LOOP AT itab_zycbt036 WHERE belnr = v_num.

        itab_zycbt036-belnr = p_t_zycbt032-belnr.

        MODIFY itab_zycbt036.

      ENDLOOP.

      " Atualiza t_dados-belnr com novo número de documento

      " para posteriores baixas

      v_belnr = p_t_dados-belnr.

      p_t_dados-belnr = p_t_zycbt032-belnr.

      p_t_dados-dtdocto = p_t_dados-budat.

     MODIFY p_t_dados TRANSPORTING: belnr dtdocto WHERE belnr = v_belnr.

*      modify p_t_dados transporting belnr where belnr = v_belnr.

*      itab_zycbt036-belnr = p_t_zycbt032-belnr.

*      modify itab_zycbt036 transporting belnr where belnr =

* v_belnr.

    ENDIF.

  ELSE.  " Sem autorização para executar a função

*     Preenche tabela c/ log de execução

    p_t_zycbt032-mandt  = p_t_dados-mandt.

    p_t_zycbt032-tcode  = p_tcode.

    p_t_zycbt032-tabela = p_t_dados-tabela.

    p_t_zycbt032-cpochv = p_t_dados-cpochv.

    p_t_zycbt032-tpmsg  = 'E'.

    p_t_zycbt032-nrmsg  = p_nrmsg.

    CONCATENATE text-048 p_tcode

                INTO p_t_zycbt032-msg SEPARATED BY space.

    APPEND p_t_zycbt032.

  ENDIF.

  REFRESH: p_itab_bdc.

ENDFORM.

 

 

<<inclusão>>

*&---------------------------------------------------------------------*

* Form  preenche_tab_exec_call_transac

*&---------------------------------------------------------------------*

* Objetivo: Preenche opções de execução do call transaction

*----------------------------------------------------------------------

* Parâmetros:   ( --> Entrada ) ( <-- Saída ) ( <-> Tabelas )

*----------------------------------------------------------------------*

*      -->P_MODE  text

*      -->P_UPDATE  text

*      <->ITAB_CTU_PARAMS  text

*----------------------------------------------------------------------*

* Chamado     Data            Descrição

*----------------------------------------------------------------------

* 262390      06.10.2005      Codificação Inicial

*----------------------------------------------------------------------

form preenche_tab_exec_call_transac tables    p_itab_ctu_params

                                    structure itab_ctu_params

                                    using     p_mode

                                              p_update.

  p_itab_ctu_params-dismode  = p_mode.

  p_itab_ctu_params-updmode  = p_update.

  p_itab_ctu_params-racommit = 'X'.

  APPEND p_itab_ctu_params.

 

endform.                    " preenche_tab_exec_call_transac

<<Inclusão - Fim>>

 

 

 

 

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

Modificações efetuadas em REPS /PWS/LZYGLGF2TOP

 

...

 

<<Inclusão>>

* 262390 - 06/10/2005 - Início

*Tab. de parâmetros usada p/ tempo execução de Call Transaction

data itab_ctu_params like ctu_params OCCURS 0 WITH HEADER LINE.

* 262390 - 06/10/2005 - Fim

<<Inclusão - Fim>>