添加系统日志

http://scnblogs.techweb.com.cn/hellohainiao/archives/33.html

现在项目上自开发的dialog程序越来越多,有很多敏感数据需要像SAP标准的业务一样,能看到所有的修改日志,要想实现日志的功能,方法很多。在此介绍一下,添加系统日志的方法。为了让其可以共用,在此建立一个FM: ZBAPI_CREATE_SYSLOG

e688aae59bbe003

e688aae59bbe011

将要显示的内容,以此表传过来

********************************变量定义区******************************

 DATA: l_extnum         TYPE bal_s_log-extnumber, “应用程日志:外部标示符

       l_log_handle     TYPE balloghndl.          “应用日志日志处理句柄

 DATA: l_s_log          TYPE bal_s_log,          “定义日志所用结构变量

       l_s_mdef         TYPE bal_s_mdef,         “系统消息

       l_s_msg           TYPE bal_s_msg,          “message变量

       f(200).

****定义内容结构

  DATA:l_wa_content TYPE zxsyslog,

        l_wa_log     TYPE zxsyslog,

        l_dummy      TYPE c.

********************************程序逻辑区******************************

*** 1 创建日志

  l_extnum            = sy-datum.

  l_s_log-object      = p_object.            “日志对象

  IF p_subobject IS NOT INITIAL.

    l_s_log-subobject = p_subobject.         “日志子对象

  ENDIF.

  l_s_log-extnumber   =  l_extnum.           “外部标识符

 

  CALL FUNCTION ‘BAL_LOG_CREATE’             “创建日志

    EXPORTING

      i_s_log      = l_s_log

    IMPORTING

      e_log_handle = l_log_handle            “获得句柄

    EXCEPTIONS

      OTHERS       = 1.

 

  IF sy-subrc <> 0.

    EXIT.

  ENDIF.

 

*** 2 设置信息

  SORT p_itab_log BY zno.

  LOOP AT p_itab_log INTO l_wa_log.

    MOVE-CORRESPONDING l_wa_log TO l_wa_content.

    l_s_mdef-log_handle      = l_log_handle.

    l_s_mdef-context-tabname = ‘ZXSYSLOG’.

    l_s_mdef-context-value   = l_wa_content.

 

    CALL FUNCTION ‘BAL_GLB_MSG_DEFAULTS_SET’

      EXPORTING

        i_s_msg_defaults = l_s_mdef

      EXCEPTIONS

        OTHERS           = 1.

    IF sy-subrc <> 0.

      EXIT.

    ENDIF.

 

    IF l_wa_log-ztype IS INITIAL.

      MESSAGE s001(bl) WITH l_wa_log-zdesc(50)

                            l_wa_log-zdesc+50(50)

                            l_wa_log-zdesc+100(50)

                            l_wa_log-zdesc+150(50).

    ELSE.

      CASE l_wa_log-ztype.

        WHEN ‘S’ OR ’s’ OR ‘I’ OR ‘i’.

          MESSAGE s001(bl) WITH l_wa_log-zdesc(50)

                                l_wa_log-zdesc+50(50)

                                l_wa_log-zdesc+100(50)

                                l_wa_log-zdesc+150(50)

                                INTO f.

        WHEN ‘W’ OR ‘w’.

          MESSAGE w001(bl) WITH l_wa_log-zdesc(50)

                                l_wa_log-zdesc+50(50)

                                l_wa_log-zdesc+100(50)

                                l_wa_log-zdesc+150(50)

                                INTO f.

        WHEN ‘A’ OR ‘a’ OR ‘E’ OR ‘e’ OR ‘X’ OR ‘x’.

          MESSAGE e001(bl) WITH l_wa_log-zdesc(50)

                                l_wa_log-zdesc+50(50)

                                l_wa_log-zdesc+100(50)

                                l_wa_log-zdesc+150(50)

                                INTO f.

      ENDCASE.

    ENDIF.

 

    l_s_msg-msgty = sy-msgty .

    l_s_msg-msgid = sy-msgid.

    l_s_msg-msgno = sy-msgno.

    l_s_msg-msgv1 = sy-msgv1.

    l_s_msg-msgv2 = sy-msgv2.

    l_s_msg-msgv3 = sy-msgv3.

    l_s_msg-msgv4 = sy-msgv4.

 

    CALL FUNCTION ‘BAL_LOG_MSG_ADD’

      EXPORTING

        i_s_msg       = l_s_msg

      EXCEPTIONS

        log_not_found = 0

        OTHERS        = 1.

  ENDLOOP.

 

*** 3 保存日志完毕

  CALL FUNCTION ‘BAL_DB_SAVE’

    EXPORTING

      i_save_all = ‘X’

    EXCEPTIONS

      OTHERS     = 1.

 

说明:

ZXSYSLOG是自建结构,根据自己需求可以有所改变。

日志对象是必须的,但是子对象是非必须的。一般外部标示为日期。

查看日志slg1

创建日志对象和子对象slg0

 
实现在ALV展现以后,通过布局格式控制隐藏一些列以后导出的EXCEL中不显示这些列,不是自带的EXCEL导出,是自己写的,可是不知道列隐藏的属性放在哪里,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值