二开案例.表单插件.值更新日志跟踪

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.表单插件.值更新日志跟踪

【应用场景】

值更新出现死循环的时候,会造成IIS奔溃,系统闪退,留下一片狼藉,即使去分析Dump文件,也较难定位死循环究竟是何字段引发。

定位值更新死循环的关键是定位值更新死循环形成闭环的整个调用链,通过写日志插件,可以在系统奔溃前,留下一些有用的日志数据。

注意:此案例仅适应于系统异常时的生产环境指定单据的现场调式,而非日常性的业务数据监控。

【案例演示】

采购订单,挂表单插件,记录采购订单的所有值更新事件。

【实现步骤】

<1>编写表单插件,代码如下。

using Kingdee.BOS.Core.DynamicForm.PlugIn;

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

using Kingdee.BOS.Log;

using Kingdee.BOS.Util;

using System;

using System.ComponentModel;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【表单插件】值更新日志跟踪

    /// </summary>

    [Description("【表单插件】值更新日志跟踪"), HotUpdate]

    public class DataChangedEventLogFormPlugIn : AbstractDynamicFormPlugIn

    {

        public override void DataChanged(DataChangedEventArgs e)

        {

            base.DataChanged(e);

            var log = String.Format("变更对象:{0}.{1}.{2}[{3}.{4}.{5}]=>旧值:{6}=>新值:{7}"

                , this.View.BillBusinessInfo.GetForm().Name, e.Field.Entity.Name, e.Field.Name

                , this.View.BillBusinessInfo.GetForm().Id, e.Field.Entity.Key, e.Field.Key

                , e.OldValue, e.NewValue);

            Logger.Error("DBG", log, null);

        }

    }

}


<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。


<3>BOSIDE扩展采购订单,注册表单插件,保存元数据,开发完毕。

python插件注册方式如下:

#【Python】【表单插件】值更新日志跟踪

import clr

clr.AddReference('mscorlib')

clr.AddReference('Kingdee.BOS')

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

from System import *

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

from Kingdee.BOS.Log  import *


def DataChanged(e):

    log = String.Format("变更对象:{0}.{1}.{2}[{3}.{4}.{5}]=>旧值:{6}=>新值:{7}"

        , this.View.BillBusinessInfo.GetForm().Name, e.Field.Entity.Name, e.Field.Name

        , this.View.BillBusinessInfo.GetForm().Id, e.Field.Entity.Key, e.Field.Key

        , e.OldValue, e.NewValue);

    Logger.Error("DBG",log,None);



【功能验证】

<1>登录业务站点,打开采购订单编辑界面进行录单,此时后台日志会详细记录采购订单上发生的所有值更新事件。

---------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

【Python】【表单插件】值更新日志跟踪.rar

二开案例.表单插件.值更新日志跟踪

【应用场景】值更新出现死循环的时候,会造成IIS奔溃,系统闪退,留下一片狼藉,即使去分析Dump文件,也较难定位死循环究竟是何字段引发。...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息