abap 可配置通用报表字段级日志监控
文章目录
-
- 1.功能需求描述
-
- 1.1 功能
- 1.2 效果展示
- 2.数据库表解释
-
- 2.1 表介绍
- 3.数据库表及字段
-
- 3.1.应用日志数据库抬头表:ZLOG_TAB_H
- 3.2.应用日志数据库明细表:ZLOG_TAB_P
- 3.3.应用日志维护字段配置表:ZLOG_TAB_F
- 4.日志封装类
- 5.代码
- 6.调用方式代码
- 7.调用案例程序demo
1.功能需求描述
1.1 功能
尽可能的的满足各种报表开发,几乎可以在任何报表中使用该应用日志.
可配置化的应用日志管理,根据用户需求来自定义记录.
使用类封装的方式实现日志收集.
通过事务码或者程序名对报表的某个字段进行日志监控.
通过配置某个报表中的某个字段就可以实现该字段的日志监控
优点:灵活性高,实用性强,
缺点:必须插入代码,无法做到配置好之后就可监控.
1.2 效果展示
举个例子:事务码 ZLOG01 配置了3 个字段分别是 采购凭证H,采购项目P ,金额U. 这个时候在记录日志的时候明细表中就会存在一条某采购凭证下的采购项目中的金额做了修改 ,修改前金额88 修改后金额99.
2.数据库表解释
2.1 表介绍
创建三张表,分别是抬头,明细,配置表.然后用类进行封装,使用函数模块也可以.
这个类需要把报表中的旧内表和修改后的内表传进去,还要把修改的是那一行的下标穿进去,需要注意的是修改前后的内表数据顺序要保持一致,不然会出现记录的日志数据出错的.
抬头:主要存储事务码,用户信息和日期时间
明细:组要存储以上信息之外还要存储用户日志的记录,要记录用户的字段,字段描述,修改前后的数据以及修改的那个凭证的那个项目的记录.这里的主键以UUID为主.
配置表:该表的主键是事务码和字段,相关描述以及记录表示:D不记录 P项目 H单号 U记录.
整体的思路以上.
3.数据库表及字段
3.1.应用日志数据库抬头表:ZLOG_TAB_H
3.2.应用日志数据库明细表:ZLOG_TAB_P
3.3.应用日志维护字段配置表:ZLOG_TAB_F
4.日志封装类
参数 注意 IT_TABIX 这个参数 他的结构要用指定的ZLOG_S这个结构.
应用日志导入结构:ZLOG_S
其他只可以不用传,但这个参数必须传ZINDEX
5.代码
METHOD create_appl_log.
DATA: lv_zdnzj TYPE zclient VALUE IS INITIAL,
ls_header TYPE zlog_tab_h VALUE IS INITIAL,
ls_item TYPE zlog_tab_p VALUE IS INITIAL,
lt_item TYPE TABLE OF zlog_tab_p,
lt_field TYPE TABLE OF zlog_tab_f,
ls_field TYPE zlog_tab_f,
ls_tabix TYPE zlog_s,
le_msg TYPE REF TO cx_sy_assign_error .
DATA:lv_new_name TYPE c LENGTH 18,
lv_old_name TYPE c LENGTH 18,
lv_p TYPE c LENGTH 18,
lv_h TYPE c LENGTH 18 .
FIELD-SYMBOLS:<fs_old> TYPE ANY,
<fs_new> TYPE ANY,
<fs_new_vlue> TYPE ANY,
<fs_old_vlue> TYPE ANY,
<fs_p> TYPE ANY