值更新事件赋值跟踪Python脚本【分享】
金蝶云社区-云社区用户4u731234
云社区用户4u731234
1人赞赏了该文章 8942次浏览 未经作者许可,禁止转载编辑于2020年02月13日 08:41:06

写本帖子目前主要是为了系统集成接口调用时(如WebAPI 保存时),
跟踪服务端字段的整个赋值过程,
已方便进行相关问题的分析。

已有类似的帖子,是C#代码,因为要编译组件,注册,重启iis等,会不太方便。
因此写了可以直接注册的Python脚本,已方便大家进行调试跟踪。
具体Python脚本如下:
[code]#LogWatch 实现值更新事件赋值过程记录日志监控
#by wanghl 2016-1-13
clr.AddReference('System')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
from Kingdee.BOS import *
from Kingdee.BOS.Log import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
#from Kingdee.BOS.Core.Metadata.EntityElement import *
from System import *

def AfterCreateNewData(e):
if this.Context.ServiceType == WebType.WebService:
Logger.Info("系统集成", "【"+this.View.BillBusinessInfo.GetForm().Name.ToString()+"】");


def DataChanged(e):
newValueString = "(空)";
oldValueString = "(空)";
if not e.NewValue is None:
newValueString = Convert.ToString(e.NewValue);
if not e.OldValue is None:
oldValueString = Convert.ToString(e.OldValue);

if this.Context.ServiceType == WebType.WebService:
# Logger.Info("系统集成 DataChanged ", "["+e.Field.Key+"]-"+e.Field.Name.ToString()+ ":{OldValue->NewValue}"+oldValueString+"->"+newValueString);
Logger.Info("系统集成 DataChanged ", "["+e.Field.Key+"]-"+e.Field.Name.ToString()+ ":"+oldValueString+"->"+newValueString);

[/code]直接注册表单插件的Python脚本即可。
如下图:

想用C#代码的,可此帖子2楼
小技巧 - 如何逐步构建采购订单Web API保存接口参数
https://vip.kingdee.com/article/177563