设为首页 收藏本站
查看: 873|回复: 0

[经验分享] SAP日志log:SLG0,SLG1

[复制链接]

尚未签到

发表于 2015-9-20 10:05:46 | 显示全部楼层 |阅读模式
首先创建日志对象
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 TYPEsy-msgty NUMBER sy-msgno
           WITHsy-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 numbersy-msgno
          with sy-msgv1 sy-msgv2sy-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 TYPEsy-msgty NUMBER sy-msgno
           WITHsy-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 TYPEsy-msgty NUMBER sy-msgno
           WITHsy-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 NUMBERsy-msgno
         WITH sy-msgv1 sy-msgv2sy-msgv3 sy-msgv4.
ENDIF.


*&---------------------------------------------------------------------*
*&"显示日志: &#61618;  no_tree display方法:
*&---------------------------------------------------------------------*
DATA:
   l_s_display_profile TYPEbal_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.


*&---------------------------------------------------------------------*
*&"显示日志: &#61618; &#61618;  弹出窗口形式::
*&---------------------------------------------------------------------*
*DATA:
*   l_s_display_profile TYPEbal_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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-116115-1-1.html 上篇帖子: c# 读取SAP数据 下篇帖子: SAP B1中物料主数据的术语解释
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表