结账检查项插件开发教程及示例

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

结账检查项插件开发教程及示例

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.业务场景业务系统结账时,有些客户需要根据自己的业务需求自定义设置检查项,但是这些检查项有没有办法通过简单的配置来实现,这时候,我...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息