当前位置: 首页 > article >正文

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

http://www.kler.cn/a/390032.html

相关文章:

  • 深度学习代码笔记
  • 机器学习day3-KNN算法、模型调优与选择
  • 同三维T610UDP-4K60 4K60 DP或HDMI或手机信号采集卡
  • DeBiFormer实战:使用DeBiFormer实现图像分类任务(二)
  • 从 MySQL 5.7 到 8.0:理解 GROUP BY 的新规则与实战优化20241112
  • 将大型语言模型(如GPT-4)微调用于文本续写任务
  • 了解springboot国际化用途以及使用
  • [数据结构]顺序表详解+完整源码(顺序表初始化、销毁、扩容、元素的插入和删除)
  • 【网页设计】CSS 高级技巧
  • PyTorch:torchvision中的dataset的使用
  • 【后端速成Vue】模拟实现翻译功能
  • 【网络安全 | 漏洞挖掘】我如何通过路径遍历实现账户接管
  • RFID被装信息化监控:物联网解决方案深入分析
  • 达梦8-达梦数据实时同步软件(DMHS)配置-Oracle-DM8
  • 11 go语言(golang) - 数据类型:结构体
  • lua入门教程:垃圾回收
  • 数据分析-45-时间序列预测之使用LSTM的错误及修正方式
  • Golang常见编码
  • 恒源云使用手册记录:从服务器下载数据到本地
  • 【数据库实验一】数据库及数据库中表的建立实验
  • 配置管理,雪崩问题分析,sentinel的使用
  • 向量搜索:信息检索领域的变革力量
  • Java基础——反射
  • 测试实项中的偶必现难测bug--验证码问题
  • 小程序免备案
  • 基于SSD模型的高压输电线障碍物检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】