二开案例.服务插件.移除校验器

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

二开案例.服务插件.移除校验器

【应用场景】

通过插件,运行时移除操作上的服务插件的某些校验器,从而避开这些校验器的限制。


【案例演示】

物料,删除操作,移除基础资料引用检查校验器。


【实现步骤】

<1>编写服务插件,代码如下。

using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Util;
using System.ComponentModel;
namespace Jac.XkDemo.BOS.App.PlugIn
{
    /// <summary>
    /// 【服务插件】移除校验器
    /// </summary>
    [Description("【服务插件】移除校验器"), HotUpdate]
    public class RemoveValidatorOperationServicePlugIn : AbstractOperationServicePlugIn
    {
        public override void OnAddValidators(AddValidatorsEventArgs e)
        {
            base.OnAddValidators(e);
            // 获取基础资料引用检查校验器
            // var validators = e.Validators.FindAll(o => o.GetType().Name == "BaseDataRefValidator");
            // 移除基础资料引用检查校验器
            e.Validators.RemoveAll(o => o.GetType().Name == "BaseDataRefValidator");
        }
    }
}

如果使用Python插件,代码如下:

def OnAddValidators(e):
    #validators = list(filter(lambda x: x.__class__.__name__ == 'BaseDataRefValidator', e.Validators))
    validators = list(filter(lambda x: x.GetType().Name == 'BaseDataRefValidator', e.Validators))
    j=len(validators)
    if (j>0):
        for i in range(0,j):
            e.Validators.Remove(validators[i])


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


<3>BOSIDE扩展物料,删除操作注册服务插件,保存元数据,开发完毕。

如果使用Python插件,插件注册界面如下图。



【功能验证】

<1>登录业务站点,打开物料列表,点击删除菜单,此时不会再做基础资料引用检查,物料数据直接被删除了。

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













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

二开案例.服务插件.移除校验器

【应用场景】通过插件,运行时移除操作上的服务插件的某些校验器,从而避开这些校验器的限制。【案例演示】物料,删除操作,移除基础资料引...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息