查看: 512|回复: 0

[分享] 如何自动插入操作日志

[复制链接]

79

主题

89

帖子

625

积分

超级版主

Rank: 8Rank: 8

积分
625
发表于 2020-5-22 15:59:18 | 显示全部楼层 |阅读模式
本帖最后由 Alisa 于 2020-5-29 15:47 编辑

一、使用WWP的时候
1.WWP提供了Auditing,在我们每次操作完数据库后,都会自动插入日志。
WWP配置中有一个属性Template node,用于确定Auditing是仅执行到Transaction的only first level还是执行到first and second levels。区别在于加载信息的procedure和调用procedure的规则。此属性是Auditing Level。


2.必须使用Transaction生成的Patterns 才能设置此功能。

保存后会生成一个Procedure


在After Trn事件中,pattern 调用Audit Transaction procedure


此Procedure将决定使用获得的有关已执行操作的信息完成哪些活动(日志、通知等)。
默认情况下,它代码全部被注释掉,因为在审核某个事务时,必须由用户决定要做什么。
它包含操作的模式(Insert、Update、Delete)、记录所属的表的名称以及事务的每个属性,包含其名称、是否属于trn的主键及其新旧值。
旧值在修改或删除时应用,新值用于插入和修改(因为在删除时没有新值)。
用的时候,请手动将代码注释放开。(这里注意,有些注释是说明,请不要全部放开)
它将接收一个包含所有操作信息的SDT。此SDT默认已存在。
AuditingObject具有以下结构:


两个对象都位于WWPBaseObjects模块中的Auditing文件夹中。


请按照 Procedure ===AuditTransaction中的说明信息创建Audit表

其中SecUserId、SecUserName字段 -> 只有使用 Advanced Security时添加
GAMUserGUID -> 只有使用 GAM时添加
AuditTransaction已经做了详细说明

用的时候,请手动将代码注释放开。(这里注意,有些注释是说明,请不要全部放开)
3.如果是直接使用Transaction的Patterns生成的页面去增/删/改 数据,无需做任何多余的操作,在用户通过页面操作数据的时候会自动插入对应的日志
如果是自己创建的页面,但是是选择基于BC生成的页面,无需做任何多余的操作,在用户通过页面操作数据的时候会自动插入对应的日志。


因为国内对于删除功能 ,一般不会再跳转到一个页面中进行删除,而是直接在列表中删除,这时候需要在执行完删除的Procedure 后手动调插入日志的Procedure

4.最后,如果我们将WorkWithPlus模式应用于Audit Transaction,那就可以查看审核信息,如下所示:

注意:
Audit Transaction请不要设置Enable Auditing。

说明:由于日志是自动生成的,所以拼接的日志信息是英文的,我们可以根据自己的需求修改AuditTransaction中的拼接信息或者顺序




二、未使用WWP时
未使用WWP时需要自行创建日志表,然后根据自己的需求写Procedure拼接日志信息(就是拼接某模块在某时间做了某操作)
然后在执行操作(新增/修改/删除)后手动调用这个Procedure插入日志

这两种方式实质上差不多,使用WWP时,WWP会自动生成插入日志的Procedure,不使用WWP的时候需要自己写这个Procedure。
参考链接:
http://docs.dvelopsoftware.com/WikiPlus/servlet/com.wiki.wiki?108,Auditing,






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|GeneXus中国技术论坛

GMT+8, 2020-12-4 15:41 , Processed in 0.062915 second(s), 22 queries .

 

© 2019 GeneXus中国技术论坛

快速回复 返回顶部 返回列表