值更新事件赋值跟踪Python脚本【分享】
金蝶云社区-lindsey
lindsey
7人赞赏了该文章 3526次浏览 未经作者许可,禁止转载编辑于2018年12月02日 22:26:20

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



已有类似的帖子,是C#代码,因为要编译组件,注册,重启iis等,会不太方便。
因此写了可以直接注册的Python脚本,已方便大家进行调试跟踪。
具体Python脚本如下:

  1. #LogWatch 实现值更新事件赋值过程记录日志监控

  2. #by wanghl 2016-1-13

  3. clr.AddReference('System')

  4. clr.AddReference('Kingdee.BOS')

  5. clr.AddReference('Kingdee.BOS.Core')

  6. from Kingdee.BOS import *

  7. from Kingdee.BOS.Log import *

  8. from Kingdee.BOS.Core.DynamicForm.PlugIn import *

  9. #from Kingdee.BOS.Core.Metadata.EntityElement import *

  10. from System import *



  11. def AfterCreateNewData(e):

  12.         if this.Context.ServiceType == WebType.WebService:

  13.                 Logger.Info("系统集成", "【"+this.View.BillBusinessInfo.GetForm().Name.ToString()+"】");

  14.                 

  15.   

  16. def DataChanged(e):

  17.         newValueString = "(空)";

  18.         oldValueString = "(空)";

  19.         if not e.NewValue is None:

  20.                 newValueString = Convert.ToString(e.NewValue);

  21.         if not e.OldValue is None:

  22.                 oldValueString = Convert.ToString(e.OldValue);

  23.         

  24.         if this.Context.ServiceType == WebType.WebService:

  25. #                Logger.Info("系统集成 DataChanged ", "["+e.Field.Key+"]-"+e.Field.Name.ToString()+ ":{OldValue->NewValue}"+oldValueString+"->"+newValueString);

  26.                 Logger.Info("系统集成 DataChanged ", "["+e.Field.Key+"]-"+e.Field.Name.ToString()+ ":"+oldValueString+"->"+newValueString);


  27.                

复制代码

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



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

赞 7