结账检查项插件开发教程及示例
1.业务场景
业务系统结账时,有些客户需要根据自己的业务需求自定义设置检查项,但是这些检查项有没有办法通过简单的配置来实现,这时候,我们可以通过插件的形式来完成检查项的配置。下面
2.插件开发教程及示例
2.1自定义检查项插件开发示意图
1) 插件由各应用根据业务需要自行开发(除系统预置插件除外);
2) 插件编译好的class文件需要部署到各自应用的运行时环境中;
3) 插件需要实现接口kd.bos.ext.fi.fcm.IClosePeriodCheckPlugin (位于bos-ext-fi包中);
2.1 插件接口定义说明
public interface IClosePeriodCheckPlugin {
/**
* 根据指定的结账检查上下文 context,实现特定的业务检查。
*
* Note: 插件必须提供一个无参构造函数,由执行程序通过反射进行调用
*
* @param context 结账检查上下文, 包含检查项定义的信息
* @return 结账检查结果
* @throws Throwable 检查项的逻辑异常
*/
CheckResult execute(CheckContext context) throws Throwable;
}
2.3入参定义
入参为执行结账检查时的上下文(即接口中的参数 context),开发者可以根据列表所示获取。
2.4检查结果定义
检查结果为执行结账检查返回的结果(kd.bos.ext.fi.fcm.CheckResult),即接口返回对象,开发者可以自定义结果内容以满足不同的场景。
2.5插件开发示例
kd.bos.ext.fi.fcm.plugins; kd.bos.exception.KDBizException; kd.bos.ext.fi.fcm.CheckContext; kd.bos.ext.fi.fcm.CheckResult; kd.bos.ext.fi.fcm.IClosePeriodCheckPlugin; kd.bos.orm.query.QFilter; java.util.Collections; java.util.HashSet; java.util.Map; java.util.Objects; java.util.Set; SampleCheckPlugin IClosePeriodCheckPlugin { @Override CheckResult execute(CheckContext context) Throwable { Map<String, Object> pluginParams = context.getPluginDefineParams(); Object bizObjectId = pluginParams.get(); (Objects.(bizObjectId)) { KDBizException(); } Set<Long> failedBillIds = HashSet<>(8); (failedBillIds.isEmpty()) { CheckResult sucResult = CheckResult(); sucResult.setMessages(Collections.()); sucResult.setIsSuccess(); sucResult; } { CheckResult failResult = CheckResult(); failResult.setOnlineViewId(); QFilter idFilter = QFilter(, QFilter., failedBillIds); failResult.setOnlineQueryParams(idFilter.toSerializedString()); failResult.setMessages(Collections.()); failResult.setIsSuccess(); failResult; } } }
结账检查项插件开发教程及示例
1.业务场景业务系统结账时,有些客户需要根据自己的业务需求自定义设置检查项,但是这些检查项有没有办法通过简单的配置来实现,这时候,我...
点击下载文档
本文2024-09-22 22:57:01发表“云星瀚知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-xinghan-129895.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章