寻源二开指南--数据校验管理

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

寻源二开指南--数据校验管理

1. 数据校验管理

1.1    业务场景简介

在寻源管理中,大部分的核心校验逻辑,都被抽象为数据校验插件。通过“数据校验管理”进行启用/禁用,以实现不同客户的个性化校验需求。同一单据+同一操作下的数据校验插件,将作为一个动态责任链,依次执行,以实现一组相关校验功能

系统预置了大部分常用的数据校验插件,例如:

二开可以增加新的数据校验插件,以实现客户个性化校验需求。

1.2    简要实现方案

步骤

开发内容

备注

1

数据校验插件 禁用

系统配置

2

数据校验插件 启用

系统配置

3

增加 数据校验插件

代码开发

4

注册 通用校验插件

应用注册

5

注册 数据校验插件

应用注册

        6

替换 数据校验插件

系统配置

 

1.3    详细开发步骤及示例代码

下面以 “投标单--撤标--项目是否已开标 校验” 为例。该数据校验在投标单撤标(即反审核)时,校验如果该寻源项目已开标,则不允许反审核,插件注册界面如下:


1.3.1  禁用 数据校验插件

注意:系统预置的扩展插件,一般不允许禁用,如果需要禁用,请与标准产品研发团队确认后再禁用。

1 直接点击禁用,系统提示:

2 将该数据校验插件设置为允许禁用,并保存:

保存后,该插件才可以禁用。


1.3.2  启用 数据校验插件

数据校验插件的启用没有限制,直接点“启用”即可。

 

1.3.3  新增 新的数据校验插件

该数据校验在投标单撤标(即反审核)时,校验如果该寻源项目已开标,则不允许反审核。

需要实现接口:ISrcValidator,代码如下:

/**

 * 投标单--反审核--已开标 校验

 *

 * @author   rd_fumin_huang

 *

 */

public class TndTenderBillBidOpenValidator   implements ISrcValidator {

       private   static final long serialVersionUID = 1L;

 

       @Override

       public   void validate(SrcValidatorData validatorData) {

              long   projectId =   validatorData.getBillObj().getDynamicObject(SrcCommonConstant.PROJECT).getLong(BillAssistConstant.ID);

              //   项目相同

              QFilter   qFilter = new QFilter(SrcCommonConstant.ID, QCP.equals, projectId);

              //   已开标

              qFilter.and(SrcCommonConstant.OPENSTATUS,   QCP.large_than, "1");

 

              if   (QueryServiceHelper.exists(SrcMetadataConstant.SRC_PROJECT,   qFilter.toArray())) {

                     validatorData.setSucced(false);

                     validatorData.setMessage(ResManager.loadKDString("该项目已开标,不允许撤回!",   "TndTenderBillBidOpenValidator_0", "scm-tnd-opplugin"));

              }

       }

}

注意:目前二开增加的数据校验,只能基于标准产品提供的接口ISrcValidator,如果需要实现新的接口,请标准产品研发团队联系。

1.3.4  注册 通用的校验插件

如果要为某个操作加上数据校验功能,需要注册通用校验插件。寻源大部分单据上的提交/撤销、审核/反审核等操作上,标准产品等已注册了通用校验插件,如果没有注册,二开可以注册该插件。

寻源通用插件:kd.scm.pds.common.validator.SrcOperationValidate

补充说明:

如果在数据校验中,需要用到当前 model ,可以用 另外一个表单插件(注册到表单编辑插件中):

kd.scm.pds.common.validator.SrcOperationValidateForView 

寻源项目--通用操作校验(从表单发起,继承自 AbstractFormPlugin)

这两种类型的插件,只能二选一,避免重复触发,二者数据校验的实现方式完全一样。



 

1.3.5  注册 数据校验插件

将新增的数据校验插件,注册到 数据校验管理上,默认为启用,注册后即刻生效。

 


 

序号

字段名称

字段描述

1

名称

该数据校验实现的功能说明,便于理解

2

业务对象

该数据校验对应的业务单据

3

操作类型

该数据校验对应的业务单据的某个操作

4

数据校验插件

该数据校验插件的全类名

5

校验结果说明

校验不通过时,为用户显示的提示信息

6

适用范围—寻源方式

该数据校验在哪些寻源方式上生效,可多选,为空时表示适用所有寻源方式

7

适用范围—寻源流程

该数据校验在哪些寻源流程上生效,可多选,为空时表示适用所有寻源流程

 

1.3.6  替换 数据校验插件

当标准产品的某个数据校验插件不符合要求时,二开可替换新的数据校验插件。

1)  将标准的数据校验插件禁用;

2)  新增和注册新的数据校验插件。

 

1.4    参考开发工作量(人/天)

步骤

开发内容

估计开发人天

1

数据校验插件 禁用


2

数据校验插件 启用


3

增加 数据校验插件

0.5~1.0

4

注册 通用校验插件


5

注册 数据校验插件


6

替换 数据校验插件


合计:每个数据校验插件约0.51.0开发人天。

 


寻源二开指南--数据校验管理

1. 数据校验管理1.1 业务场景简介在寻源管理中,大部分的核心校验逻辑,都被抽象为数据校验插件。通过“数据校验管理”进行启用/禁用...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息