BOM客户化开发引入数据的保存和校验指南

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

BOM客户化开发引入数据的保存和校验指南

1 案例需求描述

在引入数据时,想要添加对客户化开发字段的数据校验,对通过校验的数据执行保存,对不通过的数据显示提示语。


2 解决方案

对于此类需求,引入的操作本身依赖于保存的操作逻辑,系统准备好引入数据之后会自动调用保存的校验和操作,我们利用这一特点,可以以此进行开发。

3 实现步骤

3.1 通过低代码配置方式实现

苍穹平台提供了对于保存的校验数据方式,无需代码。手工配置即可实现,简单快捷,但复杂逻辑无法覆盖。

进入单据页面点击操作代码;

选择修改保存操作;

选择校验规则;

新增校验规则,在这里可以选择自己需要的校验项目。

配置完成后点击确定保存,即可进行调测。

3.2 通过插件方式实现

对于(2.1)的方式无法覆盖到的校验逻辑时,我们通常会通过编写保存插件的方式进行校验逻辑的实现。

import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.AddValidatorsEventArgs;
import kd.bos.entity.plugin.PreparePropertysEventArgs;
/**
 * 将此插件注册在提交按钮
 */
public class SomeThingTextOp extends AbstractOperationServicePlugin {
    /**
     * 校验器需要用到哪些字段,在此添加
     * @param e
     */
    @Override
    public void onPreparePropertys(PreparePropertysEventArgs e) {
        e.getFieldKeys().add("AAAAAAA");
        e.getFieldKeys().add("BBBBBBBB");
        e.getFieldKeys().add("CCCCCCC");
    }

    /**
     * 添加校验器
     * @param e
     */
    @Override
    public void onAddValidators(AddValidatorsEventArgs e) {
        e.addValidator(new SomeThingTextValidator());
    }
}

首先,新建类继承

AbstractOperationServicePlugin

注意命名规范,通常命名为XXXXXXOp;重写

onPreparePropertys(PreparePropertysEventArgs e)

方法,在此方法中,我们可以将需要用到的表单字段注册在插件中(必须进行此步操作,不然获取不到字段数据);然后重写

onAddValidators(AddValidatorsEventArgs e)

方法,在此方法中添加校验器,此处的校验器是需要新增的第二个类的类名;

第二个校验器类如下:

import kd.bos.entity.ExtendedDataEntity;
import kd.bos.entity.validate.AbstractValidator;
/**
 * 校验器---详细校验逻辑写在此处
 */
public class SomeThingTextValidator extends AbstractValidator {
    @Override
    public void validate() {
        for (ExtendedDataEntity dataEntity : dataEntities) {
            //TODO 校验逻辑
            this.addErrorMessage(dataEntity, "XXX与XXX重复,请检查。");
        }
    }
}


类名遵循XXXXValidator,并继承

AbstractValidator

类。组后,重写

validate()

方法,将校验逻辑写在此处即可。

Ps.校验器中获取数据的方式如示例,获取的是引入数据的集合,每次遍历为一条数据。

4 用户操作效果演示

5 开发环境及版本

版本无要求。

6 适用单据范围

对于拥有保存操作的单据皆适宜。

7.附件

校验器添加简易demo.zip


BOM客户化开发引入数据的保存和校验指南

1 案例需求描述在引入数据时,想要添加对客户化开发字段的数据校验,对通过校验的数据执行保存,对不通过的数据显示提示语。2 解决方案对...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息