单据转换过程中如何自定义源单数据范围

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

单据转换过程中如何自定义源单数据范围

## 单据转换过程中如何自定义源单数据范围 ### 1.需求背景 当转换规则上配置的数据范围不满足业务需求,或者需要更复杂的数据范围过滤,或者需要自定义的时候,就可以通过二开转换规则插件,编写自定义的数据范围进行源单过滤。 例如下图中转换规则配置的数据范围并不能满足业务要求,导致过滤出的源单不是需要的,这个时候就需要自定义数据范围。 ![image-20230626152553056.webp](/download/0100665cdeb69d814c37a290bbe1b077d633.webp) ### 2.解决方案 新增一个转换规则插件,在该插件中编写自定义数据范围逻辑,也可以取消转换规则上配置的数据范围,只用自定义的数据范围,也可以在原有的数据范围上追加自定义范围。 ![image-20230626153557437.webp](/download/0100a1e8808fcda2467aa3657dd03fe39c64.webp) ### 2.示例代码 ```java package kd.bos.form.plugin.botp; import kd.bos.entity.BillEntityType; import kd.bos.entity.botp.ConvertOpType; import kd.bos.entity.botp.ConvertRuleElement; import kd.bos.entity.botp.plugin.AbstractConvertPlugIn; import kd.bos.entity.botp.plugin.args.BeforeBuildRowConditionEventArgs; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; /** * @Author rd_lihua_zhang * @Date 2023/6/16 16:27 */ public class Test extends AbstractConvertPlugIn { @Override public ConvertOpType getOpType() { return null; } @Override public BillEntityType getSrcMainType() { return null; } @Override public BillEntityType getTgtMainType() { return null; } @Override public ConvertRuleElement getRule() { return null; } @Override public void setContext(ConvertOpType opType, BillEntityType srcMainType, BillEntityType tgtMainType, ConvertRuleElement rule) { } @Override public void beforeBuildRowCondition(BeforeBuildRowConditionEventArgs e) { //忽略规则上配置的数据筛选条件,仅使用插件设置的定制条件 e.setIgnoreRuleFilterPolicy(true); // 设置条件表达式,用于脚本执行 (必选) e.setCustFilterExpression(" textfield = 'test' "); // 同时设置具有相同含义的QFilter条件,用于选单数据查询 (必选) QFilter qFilter = new QFilter("textfield", QCP.equals, "test"); e.getCustQFilters().add(qFilter); } } ``` ### 3.执行效果 选择一个不满足转换规则上的数据范围的源单下推,可以看到下推的时候已经忽略规则上配置的数据筛选条件,仅使用插件设置的定制条件。说明:所选源单也不满足自定义的数据范围,下推失败。 ![image-20230626154409298.webp](/download/0100839a7850d1f14f45b924926772d08b75.webp)

单据转换过程中如何自定义源单数据范围

## 单据转换过程中如何自定义源单数据范围### 1.需求背景当转换规则上配置的数据范围不满足业务需求,或者需要更复杂的数据范围过滤,或...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息