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

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.lryc.cn/news/481341.html

相关文章:

  • OpenCV视觉分析之目标跟踪(11)计算两个图像之间的最佳变换矩阵函数findTransformECC的使用
  • PGMP-串串0203 项目集管理绩效域战略一致性
  • HiveMetastore 的架构简析
  • 【WRF模拟】全过程总结:WPS预处理及WRF运行
  • linux基础理解和使用 iptables 防火墙
  • 【系统架构设计师】2024年下半年真题论文: 论软件维护及其应用(包括参考素材)
  • 【数学二】线性代数-矩阵-初等变换、初等矩阵
  • MinerU容器构建教程
  • BFS 解决拓扑排序
  • MySQL 程序设计课程复习大纲
  • C++ : STL容器(适配器)之stack、queue剖析
  • nuxt3安装pinia报错500[vite-node] [ERR_LOAD_URL]问题解决
  • 青少年编程能力等级测评CPA试卷(2)Python编程(一级)
  • wordpress判断page页与非page页
  • JavaScript 库-qs的使用
  • Leetcode 两数之和 Ⅱ - 输入有序数组
  • 多处理器一致协议(MSI)协议详细介绍
  • SSH实验5密钥登录Linuxroot用户(免密登录)
  • 2024 网鼎杯 - 青龙组 Web WP
  • ORACLE 闪回技术简介
  • 【笔记】LLC电路工作频点选择 2-2 开关管与滤波压力
  • 【CUDA】认识CUDA
  • Linux(CentOS)yum update -y 事故
  • AI绘画赚钱秘籍!掌握ai绘画赚钱技巧,开启副业新篇章,ai绘画赚钱实战指南!
  • HCIP-HarmonyOS Application Developer V1.0 笔记(四)
  • 【前端】Svelte:组件封装与使用
  • STM32标准库-待机模式
  • 【论文笔记】The Power of Scale for Parameter-Efficient Prompt Tuning
  • 几个docker可用的镜像源
  • Spring学习笔记_27——@EnableLoadTimeWeaving