• ABAP SLG1/SLG0 应用日志 自己封装类 记录


    1 封装类 ZBAL_LOG_COMMON

    1. CLASS zbal_log_common DEFINITION
    2. PUBLIC
    3. FINAL
    4. CREATE PUBLIC .
    5. PUBLIC SECTION.
    6. METHODS constructor
    7. IMPORTING
    8. !is_bal_s_log TYPE bal_s_log .
    9. METHODS log_message_create
    10. IMPORTING
    11. !is_msg TYPE bal_s_msg .
    12. METHODS log_message_save .
    13. METHODS log_message_display .
    14. PROTECTED SECTION.
    15. PRIVATE SECTION.
    16. DATA mv_log_handle TYPE balloghndl .
    17. DATA mt_log_handle TYPE bal_t_logh .
    18. ENDCLASS.
    19. CLASS ZBAL_LOG_COMMON IMPLEMENTATION.
    20. * <SIGNATURE>---------------------------------------------------------------------------------------+
    21. * | Instance Public Method ZBAL_LOG_COMMON->CONSTRUCTOR
    22. * +-------------------------------------------------------------------------------------------------+
    23. * | [--->] IS_BAL_S_LOG TYPE BAL_S_LOG
    24. * +--------------------------------------------------------------------------------------</SIGNATURE>
    25. METHOD constructor.
    26. * is_log-object = 'zsrm_mail'.
    27. * is_log-subobject = 'to_approver'.
    28. * is_log-aluser = sy-uname.
    29. * is_log-alprog = sy-repid.
    30. * is_log-aldate_del = sy-datum + 1. "保留日志120天,默认9999.12.31
    31. * is_log-del_before = 'X'. "保留日志直到到期
    32. * create the log header
    33. CALL FUNCTION 'BAL_LOG_CREATE'
    34. EXPORTING
    35. i_s_log = is_bal_s_log
    36. IMPORTING
    37. e_log_handle = mv_log_handle
    38. EXCEPTIONS
    39. OTHERS = 1.
    40. IF sy-subrc <> 0.
    41. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    42. WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    43. ENDIF.
    44. ENDMETHOD.
    45. * <SIGNATURE>---------------------------------------------------------------------------------------+
    46. * | Instance Public Method ZBAL_LOG_COMMON->LOG_MESSAGE_CREATE
    47. * +-------------------------------------------------------------------------------------------------+
    48. * | [--->] IS_MSG TYPE BAL_S_MSG
    49. * +--------------------------------------------------------------------------------------</SIGNATURE>
    50. METHOD log_message_create.
    51. "Create Message
    52. * is_msg-msgty = 'S'.
    53. * is_msg-msgid = '/BBA/BP'.
    54. * is_msg-msgno = '000'.
    55. * is_msg-msgv1 = '开始时间:' && sy-uzeit.
    56. * is_msg-msgv2 = ''.
    57. * is_msg-msgv3 = ''.
    58. * is_msg-msgv4 = ''.
    59. * is_msg-probclass = 2.;
    60. * create the message
    61. CALL FUNCTION 'BAL_LOG_MSG_ADD'
    62. EXPORTING
    63. i_log_handle = mv_log_handle
    64. i_s_msg = is_msg
    65. EXCEPTIONS
    66. OTHERS = 1.
    67. IF sy-subrc <> 0.
    68. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    69. WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    70. ENDIF.
    71. * save this log
    72. INSERT mv_log_handle INTO TABLE mt_log_handle.
    73. ENDMETHOD.
    74. * ---------------------------------------------------------------------------------------+
    75. * | Instance Public Method ZBAL_LOG_COMMON->LOG_MESSAGE_DISPLAY
    76. * +-------------------------------------------------------------------------------------------------+
    77. * +--------------------------------------------------------------------------------------
    78. METHOD log_message_display.
    79. * Display application log
    80. DATA:ls_disp_profile TYPE bal_s_prof.
    81. CALL FUNCTION 'BAL_DSP_PROFILE_NO_TREE_GET'
    82. IMPORTING
    83. e_s_display_profile = ls_disp_profile.
    84. ls_disp_profile-disvariant-report = sy-repid.
    85. ls_disp_profile-disvariant-handle = 'LOG'.
    86. ls_disp_profile-use_grid = 'X'.
    87. CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
    88. EXPORTING
    89. i_s_display_profile = ls_disp_profile
    90. i_t_log_handle = mt_log_handle
    91. EXCEPTIONS
    92. profile_inconsistent = 1
    93. internal_error = 2
    94. no_data_available = 3
    95. no_authority = 4
    96. OTHERS = 5.
    97. IF sy-subrc <> 0.
    98. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    99. WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    100. ENDIF.
    101. ENDMETHOD.
    102. * ---------------------------------------------------------------------------------------+
    103. * | Instance Public Method ZBAL_LOG_COMMON->LOG_MESSAGE_SAVE
    104. * +-------------------------------------------------------------------------------------------------+
    105. * +--------------------------------------------------------------------------------------
    106. METHOD log_message_save.
    107. CALL FUNCTION 'BAL_DB_SAVE'
    108. EXPORTING
    109. i_t_log_handle = mt_log_handle
    110. EXCEPTIONS
    111. log_not_found = 1
    112. save_not_allowed = 2
    113. numbering_error = 3
    114. OTHERS = 4.
    115. IF sy-subrc <> 0.
    116. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    117. WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    118. ENDIF.
    119. ENDMETHOD.
    120. ENDCLASS.

    2 调用示例

    1. *&---------------------------------------------------------------------*
    2. *& Report YTEST_01
    3. *&
    4. *&---------------------------------------------------------------------*
    5. *&
    6. *&
    7. *&---------------------------------------------------------------------*
    8. REPORT ytest_01.
    9. * define some header data of this log
    10. DATA(ls_bal_s_log) = VALUE bal_s_log( extnumber = 'Application Log Demo'
    11. aluser = sy-uname
    12. alprog = sy-repid
    13. object = '/BDL/LOG' "replace owner object
    14. subobject = 'DELETE' "replace owner subobject
    15. ).
    16. *Create zbal_log_common object
    17. DATA(lo_log) = NEW zbal_log_common( ls_bal_s_log ).
    18. MESSAGE e301(bl) INTO DATA(g_dummy).
    19. * define data of message for Application Log
    20. DATA(ls_msg) = VALUE bal_s_msg( msgty = sy-msgty
    21. msgid = sy-msgid
    22. msgno = sy-msgno
    23. msgv1 = sy-msgv1
    24. msgv2 = sy-msgv2
    25. msgv3 = sy-msgv3
    26. msgv4 = sy-msgv4
    27. probclass = 2
    28. ).
    29. *Add msg
    30. lo_log->log_message_create( is_msg = ls_msg ).
    31. *Save msg
    32. lo_log->log_message_save( ).
    33. *Display msg
    34. lo_log->log_message_display( ).

  • 相关阅读:
    2.1 C++面向对象编程_访问控制和继承
    ArcGIS:如何对要素类进行查询要素属性、更改符号、标记?
    JS基本小知识:函数
    【C/C++】万字图文详解C语言文件操作 完美装饰课设大作业
    Leetcode-1106. 解析布尔表达式
    数据结构题目收录(十一)
    竞赛 基于机器视觉的行人口罩佩戴检测
    KoTime:v2.3.4新增堆内存、物理内存和CPU使用情况统计
    聊聊logback的EvaluatorFilter
    SwiftUI SQLite教程之了解如何在 SwiftUI 中使用 SQLite 数据库并执行 CRUD 操作(教程含源码)
  • 原文地址:https://blog.csdn.net/qq_40463305/article/details/134459574