本文共 4954 字,大约阅读时间需要 16 分钟。
创建主对象
创建子对象
*----------------------------------------------------------------------*
DATA: l_mac_bal_log TYPE bal_s_log. "定义log
DATA: l_tab_loghndl TYPE bal_t_logh. "Application Log: Log Handle Table *----------------------------------------------------------------------*
*----------------------------------------------------------------------*
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.
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
CALL FUNCTION 'BAL_LOG_CREATE'
i_s_log = l_mac_bal_log "日志
e_log_handle = e_mac_handle "句柄
log_header_inconsistent = 1
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
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
l_wa_bal_msg-probclass = '3'. "应用日志:邮件问题类 为3
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
call function 'BAL_LOG_MSG_ADD'
i_log_handle = l_mac_handle "创建日志时生成的日志句柄
i_s_msg = l_wa_bal_msg "日志返回信息
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
APPEND i_mac_handle TO l_tab_loghndl. "句柄
CALL FUNCTION 'BAL_DB_SAVE'
i_t_log_handle = l_tab_loghndl "句柄内表
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
REFRESH l_tab_loghndl. "清空
*-----------------------------------------------------------------------
*-----------------------------------------------------------------------
CALL FUNCTION 'BAL_LOG_REFRESH'
i_log_handle = i_mac_handle "句柄
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
* I_T_LOG_CONTEXT_FILTER =
* I_T_MSG_CONTEXT_FILTER =
* PROFILE_INCONSISTENT = 1
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*&---------------------------------------------------------------------*
*&"显示日志: no_tree display方法:
*&---------------------------------------------------------------------*
l_s_display_profile TYPE bal_s_prof.
CALL FUNCTION 'BAL_DSP_PROFILE_NO_TREE_GET'
e_s_display_profile = l_s_display_profile
CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
i_s_display_profile = l_s_display_profile
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
* l_s_display_profile TYPE bal_s_prof.
CALL FUNCTION 'BAL_DSP_PROFILE_POPUP_GET'
e_s_display_profile = l_s_display_profile
CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
i_s_display_profile = l_s_display_profile
具体参数意思,不解释了,都懂的
大概的记录log的方法就是这样子,因为有数据库操作,必然会耗时,什么时候考虑加日志,根据业务要求和具体重要程度去判断吧