写本帖子目前主要是为了系统集成接口调用时(如WebAPI 保存时),
跟踪服务端字段的整个赋值过程,
已方便进行相关问题的分析。
已有类似的帖子,是C#代码,因为要编译组件,注册,重启iis等,会不太方便。
因此写了可以直接注册的Python脚本,已方便大家进行调试跟踪。
具体Python脚本如下:
#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);
复制代码
直接注册表单插件的Python脚本即可。
如下图:
想用C#代码的,可此帖子2楼
小技巧 - 如何逐步构建采购订单Web API保存接口参数
推荐阅读