onAddValidators事件

1 事件介绍
插件可以在此事件,增加自定义操作校验器,或者去掉内置的校验器。
2 事件触发时机
构建好操作校验器之后,执行操作校验之前,触发此事件。
3 代码模板
package kd.bos.plugin.sample.bill.bizoperation.template;
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.AddValidatorsEventArgs;
public class OnAddValidators extends AbstractOperationServicePlugIn {
@Override
public void onAddValidators(AddValidatorsEventArgs e) {
// TODO 在此添加业务逻辑
}
}4 参数说明
public class AddValidatorsEventArgs
public List<AbstractValidator> getValidators():预置的校验器;
public void addValidator(AbstractValidator validator):添加自定义校验器;
public DynamicObject[] getDataEntities():本次操作、待校验的数据包。
5 应用示例
5.1 案例说明
1. 单据体中有”最迟送货日期”字段,子单据体中有”预计送货日期”字段;
2. 预计送货日期,不能晚于最迟送货日期;
3. 如果不满足此条件,该单不允许继续操作;
4. 批量操作单据时,把不满足条件的单据剔除出去;其他满足条件的单据,可以继续操作。
5.2 实现方案
1. 捕获 onPreparePropertys事件,要求加载预计送货日期、最迟送货日期字段;
2. 捕获 onAddValidators事件,添加自定义校验器;
3. 实现自定义校验器,对预计送货日期、最迟送货日期,进行比较。
5.3 实例代码
package kd.bos.plugin.sample.bill.bizoperation.bizcase;
import java.text.SimpleDateFormat;
import java.util.Date;
import kd.bos.entity.ExtendedDataEntity;
import kd.bos.entity.formula.RowDataModel;
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.AddValidatorsEventArgs;
import kd.bos.entity.plugin.PreparePropertysEventArgs;
import kd.bos.entity.validate.AbstractValidator;
public class OnAddValidatorsSample extends AbstractOperationServicePlugIn {
/**
* 操作执行前,准备加载单据数据之前,触发此事件
* @remark
* 插件可以在此事件中,指定需要加载的字段
*/
@Override
public void onPreparePropertys(PreparePropertysEventArgs e) {
// 要求加载预计送货日期、最迟送货日期字段
e.getFieldKeys().add(DelivaryDateValidator.KEY_DELIVERYDATE);
e.getFieldKeys().add(DelivaryDateValidator.KEY_LASTDATE);
}
/**
* 执行操作校验前,触发此事件
* @remark
* 插件可以在此事件,调整预置的操作校验器;或者增加自定义操作校验器
*/
@Override
public void onAddValidators(AddValidatorsEventArgs e) {
// 添加自定义的校验器:送货日期校验器
e.addValidator(new DelivaryDateValidator());
}
}
/**
* 自定义操作校验器:校验送货日期
*
* @author rd_JohnnyDing
*/
class DelivaryDateValidator extends AbstractValidator {
/** 预计送货日期字段标识 */
public final static String KEY_DELIVERYDATE = "deliverydate";
/** 最迟送货日期字段标识 */
public final static String KEY_LASTDATE = "lastdate";
/**
* 返回校验器的主实体:系统将自动对此实体数据,逐行进行校验
*/
@Override
public String getEntityKey() {
return this.entityKey;
}
onAddValidators事件
1 事件介绍插件可以在此事件,增加自定义操作校验器,或者去掉内置的校验器。2 事件触发时机构建好操作校验器之后,执行操作校验之前,触...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



