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