寻源二开指南 自定义扩展过滤

1. 自定义扩展过滤
1.1 业务场景简介
寻源管理的各种基础资料,一般会预置适用范围过滤,如“组件模板配置”,可以按“寻源方式”进行过滤。如果二开需要增加新的适用范围过滤,如:采购组织、品类等,可通过自定义扩展过滤来实现。

1.2 简要实现方案
步骤 | 开发内容 | 备注 |
1 | 自定义扩展过滤元数据 | 元数据开发 |
2 | 注册扩展过滤方案 | 应用配置 |
3 | 应用扩展过滤 | 代码开发 |
1.3 详细开发步骤及示例代码
下面以新增“组件模板配置过滤” 为例。
1.3.1 增加自定义扩展过滤元数据
1、继承基类:自定义扩展过滤基类 (pds_extfilter_tpl)

2、增加元数据:组件模板配置过滤(pds_tplconfig_extfilter)

3、增加适用范围:如 组织、品类 等

1.3.2 注册扩展过滤
1、新增扩展过滤:

1)编码:一般同元数据,必需唯一,与调用扩展过滤的代码中的编码 保持一致。
2)待过滤的业务对象:组件模板配置过滤
3)返回业务对象的那个字段值:组件模板配置,为空时返回id
4)值字段的业务对象:与调用扩展过滤的代码中传入的业务对象 保持一致
5)排序方式:一般按匹配字段数(倒序)、编码(顺序)
2、过滤条件:
1)通用过滤条件:待过滤业务对象的基本属性筛选,比如数据状态、可用状态等,固定的筛选条件。

2)动态过滤条件:待过滤业务对象的数据,与值对象的数据,进行动态匹配。

3)插件过滤条件:一些无法通过配置实现的特殊过滤,如品类。品类是在采购清单分录中,不是在项目启动单上,无法简单匹配,需要写插件。

实例代码如下:
public class WinruleFilterByScourceType1 implements IExtFilterPlugin<ExtFilterContext> { private static final long serialVersionUID = 1L;
@Override public Map<String, Object> getQFilter(ExtFilterContext context) { // 从上下文 获取 寻源方式id long sourceTypeId = ExtFilterUtils.getSourceTypeIdFromContext(context); if (sourceTypeId == 0) { return null; } QFilter qfilter = null;
|
寻源二开指南 自定义扩展过滤
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



