SAP日志log:SLG0,SLG1
生活随笔
收集整理的這篇文章主要介紹了
SAP日志log:SLG0,SLG1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先創建日志對象
slg0:
創建主對象
創建子對象
調用函數添加維護日志 *1.變量定義 *----------------------------------------------------------------------* DATA: l_mac_bal_log ? ? TYPE ?bal_s_log. ? ? ?"定義log ? DATA: l_tab_loghndl ? TYPE ?bal_t_logh. ? ? ? "Application Log: Log Handle Table *----------------------------------------------------------------------* *2.賦值 *----------------------------------------------------------------------* l_mac_bal_log-extnumber = i_log_extnumber. ? ?"外部編號 l_mac_bal_log-object ? ?= i_log_object. ? ? ? "主對象 l_mac_bal_log-subobject = i_log_sub_object. ? "子對象 l_mac_bal_log-aldate ? ?= sy-datum. ? ? ? ? ? "日期 l_mac_bal_log-altime ? ?= sy-uzeit. ? ? ? ? ? "時間 l_mac_bal_log-aluser ? ?= sy-uname. ? ? ? ? ? "用戶 l_mac_bal_log-alprog ? ?= sy-repid. ? ? ? ? ? "sy-repid.?
*----------------------------------------------------------------------* *2.創建日志,得到句柄 *----------------------------------------------------------------------* CALL FUNCTION 'BAL_LOG_CREATE' EXPORTING i_s_log ? ? ? ? ? ? ? ? = l_mac_bal_log ? "日志 IMPORTING e_log_handle ? ? ? ? ? ?= e_mac_handle ? ?"句柄 EXCEPTIONS log_header_inconsistent = 1 OTHERS ? ? ? ? ? ? ? ? ?= 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.
*----------------------------------------------------------------------* *2消息類型處理 *----------------------------------------------------------------------* l_wa_bal_msg-msgty = sy-msgty. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"消息類型 l_wa_bal_msg-msgno = sy-msgno. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"消息號 l_wa_bal_msg-msgid = sy-msgid. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"消息類 l_wa_bal_msg-msgv1 = sy-msgv1. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"消息變量 l_wa_bal_msg-msgv2 = sy-msgv2. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"消息變量 l_wa_bal_msg-msgv3 = sy-msgv3. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"消息變量 l_wa_bal_msg-msgv4 = sy-msgv4. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"消息變量
if l_wa_bal_msg-msgty ca 'EA'. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"如果返回消息有錯誤 l_wa_bal_msg-probclass = '1'. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "應用日志:郵件問題類 為1 elseif l_wa_bal_msg-msgty ca 'S'. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "返回消息正確 l_wa_bal_msg-probclass = '2'. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "應用日志:郵件問題類 為2 else . l_wa_bal_msg-probclass = '3'. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "應用日志:郵件問題類 為3 endif.
*----------------------------------------------------------------------* *3添加日志 *----------------------------------------------------------------------* call function 'BAL_LOG_MSG_ADD' exporting i_log_handle ? ? ? ? ? ? ?= ?l_mac_handle ? ? ? ? ? ? ? ? ? ? ? ? "創建日志時生成的日志句柄 i_s_msg ? ? ? ? ? ? ? ? ?= ?l_wa_bal_msg ? ? ? ? ? ? ? ? ? ? ? ? "日志返回信息 " ? IMPORTING " ? ?E_S_MSG_HANDLE ? ? ? ? ? ?= " ? ?E_MSG_WAS_LOGGED ? ? ? ? ?= " ? ?E_MSG_WAS_DISPLAYED ? ? ? = exceptions log_not_found ? ? ? ? ? ? = 1 msg_inconsistent ? ? ? ? ?= 2 log_is_full ? ? ? ? ? ? ? = 3 others ? ? ? ? ? ? ? ? ? ?= 4 . if sy-subrc <> 0. message id sy-msgid type sy-msgty number sy-msgno with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. endif.
……如果添加多次,多次調用add函數 *----------------------------------------------------------------------* *4保存日志 *----------------------------------------------------------------------* APPEND i_mac_handle TO l_tab_loghndl. ? ? ? "句柄
CALL FUNCTION 'BAL_DB_SAVE' EXPORTING i_save_all ? ? ? = 'X' i_t_log_handle ? = l_tab_loghndl ? ? ? ?"句柄內表 EXCEPTIONS log_not_found ? ?= 1 save_not_allowed = 2 numbering_error ?= 3 OTHERS ? ? ? ? ? = 4. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.
REFRESH l_tab_loghndl. ? ? ? ? ? ? ? ? ? ? ?"清空
*----------------------------------------------------------------------- *"調用標準關閉日志函數 *-----------------------------------------------------------------------
CALL FUNCTION 'BAL_LOG_REFRESH' EXPORTING i_log_handle ?= i_mac_handle ? ? ? ? ?"句柄 EXCEPTIONS log_not_found = 1 OTHERS ? ? ? ?= 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. *&---------------------------------------------------------------------* *&"顯示日志: 最簡單的顯示方式 *&---------------------------------------------------------------------* CALL FUNCTION 'BAL_DSP_LOG_DISPLAY' * EXPORTING * ? I_S_DISPLAY_PROFILE ? ? ? ? ?= * ? I_T_LOG_HANDLE ? ? ? ? ? ? ? = * ? I_T_MSG_HANDLE ? ? ? ? ? ? ? = * ? I_S_LOG_FILTER ? ? ? ? ? ? ? = * ? I_S_MSG_FILTER ? ? ? ? ? ? ? = * ? I_T_LOG_CONTEXT_FILTER ? ? ? = * ? I_T_MSG_CONTEXT_FILTER ? ? ? = * ? I_AMODAL ? ? ? ? ? ? ? ? ? ? = ' ' * ? I_SRT_BY_TIMSTMP ? ? ? ? ? ? = ' ' * IMPORTING * ? E_S_EXIT_COMMAND ? ? ? ? ? ? = * EXCEPTIONS * ? PROFILE_INCONSISTENT ? ? ? ? = 1 * ? INTERNAL_ERROR ? ? ? ? ? ? ? = 2 * ? NO_DATA_AVAILABLE ? ? ? ? ? ?= 3 * ? NO_AUTHORITY ? ? ? ? ? ? ? ? = 4 * ? OTHERS ? ? ? ? ? ? ? ? ? ? ? = 5 . IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.
*&---------------------------------------------------------------------* *&"顯示日志: ? ?no_tree display方法: *&---------------------------------------------------------------------* DATA: l_s_display_profile TYPE bal_s_prof.
* get display profile CALL FUNCTION 'BAL_DSP_PROFILE_NO_TREE_GET' IMPORTING e_s_display_profile = l_s_display_profile EXCEPTIONS OTHERS ? ? ? ? ? ? ?= 1. " 然后再調用 CALL FUNCTION 'BAL_DSP_LOG_DISPLAY' EXPORTING i_s_display_profile = l_s_display_profile EXCEPTIONS OTHERS ? ? ? ? ? ? ?= 1.
*&---------------------------------------------------------------------* *&"顯示日志: ? ? ?彈出窗口形式:: *&---------------------------------------------------------------------* *DATA: * ? l_s_display_profile TYPE bal_s_prof.
* get a prepared profile CALL FUNCTION 'BAL_DSP_PROFILE_POPUP_GET' IMPORTING e_s_display_profile = l_s_display_profile EXCEPTIONS OTHERS ? ? ? ? ? ? ?= 1.
*"然后再調用: CALL FUNCTION 'BAL_DSP_LOG_DISPLAY' EXPORTING i_s_display_profile = l_s_display_profile EXCEPTIONS OTHERS ? ? ? ? ? ? ?= 1.
可以可以直接進入slg1,然后查看日志
具體參數意思,不解釋了,都懂的
大概的記錄log的方法就是這樣子,因為有數據庫操作,必然會耗時,什么時候考慮加日志,根據業務要求和具體重要程度去判斷吧
創建主對象
創建子對象
調用函數添加維護日志 *1.變量定義 *----------------------------------------------------------------------* DATA: l_mac_bal_log ? ? TYPE ?bal_s_log. ? ? ?"定義log ? DATA: l_tab_loghndl ? TYPE ?bal_t_logh. ? ? ? "Application Log: Log Handle Table *----------------------------------------------------------------------* *2.賦值 *----------------------------------------------------------------------* l_mac_bal_log-extnumber = i_log_extnumber. ? ?"外部編號 l_mac_bal_log-object ? ?= i_log_object. ? ? ? "主對象 l_mac_bal_log-subobject = i_log_sub_object. ? "子對象 l_mac_bal_log-aldate ? ?= sy-datum. ? ? ? ? ? "日期 l_mac_bal_log-altime ? ?= sy-uzeit. ? ? ? ? ? "時間 l_mac_bal_log-aluser ? ?= sy-uname. ? ? ? ? ? "用戶 l_mac_bal_log-alprog ? ?= sy-repid. ? ? ? ? ? "sy-repid.?
*----------------------------------------------------------------------* *2.創建日志,得到句柄 *----------------------------------------------------------------------* CALL FUNCTION 'BAL_LOG_CREATE' EXPORTING i_s_log ? ? ? ? ? ? ? ? = l_mac_bal_log ? "日志 IMPORTING e_log_handle ? ? ? ? ? ?= e_mac_handle ? ?"句柄 EXCEPTIONS log_header_inconsistent = 1 OTHERS ? ? ? ? ? ? ? ? ?= 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.
*----------------------------------------------------------------------* *2消息類型處理 *----------------------------------------------------------------------* l_wa_bal_msg-msgty = sy-msgty. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"消息類型 l_wa_bal_msg-msgno = sy-msgno. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"消息號 l_wa_bal_msg-msgid = sy-msgid. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"消息類 l_wa_bal_msg-msgv1 = sy-msgv1. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"消息變量 l_wa_bal_msg-msgv2 = sy-msgv2. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"消息變量 l_wa_bal_msg-msgv3 = sy-msgv3. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"消息變量 l_wa_bal_msg-msgv4 = sy-msgv4. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"消息變量
if l_wa_bal_msg-msgty ca 'EA'. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"如果返回消息有錯誤 l_wa_bal_msg-probclass = '1'. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "應用日志:郵件問題類 為1 elseif l_wa_bal_msg-msgty ca 'S'. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "返回消息正確 l_wa_bal_msg-probclass = '2'. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "應用日志:郵件問題類 為2 else . l_wa_bal_msg-probclass = '3'. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "應用日志:郵件問題類 為3 endif.
*----------------------------------------------------------------------* *3添加日志 *----------------------------------------------------------------------* call function 'BAL_LOG_MSG_ADD' exporting i_log_handle ? ? ? ? ? ? ?= ?l_mac_handle ? ? ? ? ? ? ? ? ? ? ? ? "創建日志時生成的日志句柄 i_s_msg ? ? ? ? ? ? ? ? ?= ?l_wa_bal_msg ? ? ? ? ? ? ? ? ? ? ? ? "日志返回信息 " ? IMPORTING " ? ?E_S_MSG_HANDLE ? ? ? ? ? ?= " ? ?E_MSG_WAS_LOGGED ? ? ? ? ?= " ? ?E_MSG_WAS_DISPLAYED ? ? ? = exceptions log_not_found ? ? ? ? ? ? = 1 msg_inconsistent ? ? ? ? ?= 2 log_is_full ? ? ? ? ? ? ? = 3 others ? ? ? ? ? ? ? ? ? ?= 4 . if sy-subrc <> 0. message id sy-msgid type sy-msgty number sy-msgno with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. endif.
……如果添加多次,多次調用add函數 *----------------------------------------------------------------------* *4保存日志 *----------------------------------------------------------------------* APPEND i_mac_handle TO l_tab_loghndl. ? ? ? "句柄
CALL FUNCTION 'BAL_DB_SAVE' EXPORTING i_save_all ? ? ? = 'X' i_t_log_handle ? = l_tab_loghndl ? ? ? ?"句柄內表 EXCEPTIONS log_not_found ? ?= 1 save_not_allowed = 2 numbering_error ?= 3 OTHERS ? ? ? ? ? = 4. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.
REFRESH l_tab_loghndl. ? ? ? ? ? ? ? ? ? ? ?"清空
*----------------------------------------------------------------------- *"調用標準關閉日志函數 *-----------------------------------------------------------------------
CALL FUNCTION 'BAL_LOG_REFRESH' EXPORTING i_log_handle ?= i_mac_handle ? ? ? ? ?"句柄 EXCEPTIONS log_not_found = 1 OTHERS ? ? ? ?= 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. *&---------------------------------------------------------------------* *&"顯示日志: 最簡單的顯示方式 *&---------------------------------------------------------------------* CALL FUNCTION 'BAL_DSP_LOG_DISPLAY' * EXPORTING * ? I_S_DISPLAY_PROFILE ? ? ? ? ?= * ? I_T_LOG_HANDLE ? ? ? ? ? ? ? = * ? I_T_MSG_HANDLE ? ? ? ? ? ? ? = * ? I_S_LOG_FILTER ? ? ? ? ? ? ? = * ? I_S_MSG_FILTER ? ? ? ? ? ? ? = * ? I_T_LOG_CONTEXT_FILTER ? ? ? = * ? I_T_MSG_CONTEXT_FILTER ? ? ? = * ? I_AMODAL ? ? ? ? ? ? ? ? ? ? = ' ' * ? I_SRT_BY_TIMSTMP ? ? ? ? ? ? = ' ' * IMPORTING * ? E_S_EXIT_COMMAND ? ? ? ? ? ? = * EXCEPTIONS * ? PROFILE_INCONSISTENT ? ? ? ? = 1 * ? INTERNAL_ERROR ? ? ? ? ? ? ? = 2 * ? NO_DATA_AVAILABLE ? ? ? ? ? ?= 3 * ? NO_AUTHORITY ? ? ? ? ? ? ? ? = 4 * ? OTHERS ? ? ? ? ? ? ? ? ? ? ? = 5 . IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.
*&---------------------------------------------------------------------* *&"顯示日志: ? ?no_tree display方法: *&---------------------------------------------------------------------* DATA: l_s_display_profile TYPE bal_s_prof.
* get display profile CALL FUNCTION 'BAL_DSP_PROFILE_NO_TREE_GET' IMPORTING e_s_display_profile = l_s_display_profile EXCEPTIONS OTHERS ? ? ? ? ? ? ?= 1. " 然后再調用 CALL FUNCTION 'BAL_DSP_LOG_DISPLAY' EXPORTING i_s_display_profile = l_s_display_profile EXCEPTIONS OTHERS ? ? ? ? ? ? ?= 1.
*&---------------------------------------------------------------------* *&"顯示日志: ? ? ?彈出窗口形式:: *&---------------------------------------------------------------------* *DATA: * ? l_s_display_profile TYPE bal_s_prof.
* get a prepared profile CALL FUNCTION 'BAL_DSP_PROFILE_POPUP_GET' IMPORTING e_s_display_profile = l_s_display_profile EXCEPTIONS OTHERS ? ? ? ? ? ? ?= 1.
*"然后再調用: CALL FUNCTION 'BAL_DSP_LOG_DISPLAY' EXPORTING i_s_display_profile = l_s_display_profile EXCEPTIONS OTHERS ? ? ? ? ? ? ?= 1.
可以可以直接進入slg1,然后查看日志
具體參數意思,不解釋了,都懂的
大概的記錄log的方法就是這樣子,因為有數據庫操作,必然會耗時,什么時候考慮加日志,根據業務要求和具體重要程度去判斷吧
總結
以上是生活随笔為你收集整理的SAP日志log:SLG0,SLG1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ERP实施心得
- 下一篇: 如何使用应用日志(Application