手把手教你使用业务事件中心执行插件

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

手把手教你使用业务事件中心执行插件


当业务事件中心中预制的标准服务,如发送消息、执行操作等不能满足客户的实际业务场景时,我们应该怎么办呢?你想了解的,小编都将一一解答。





1 应用场景


如上所述,当事件中心预制的标准服务不能满足现有的业务场景时,我们可以通过扩展服务或者编写插件的方式来自定义自己的业务逻辑。


其中,编写一个处理相关业务逻辑的插件对于开发人员来讲是比较友好且高效的方式。


本期,小编就带大家一起了解业务事件中心插件的使用方式。


2 解决方案


业务事件中心提供了标准服务:执行插件,可以对自定义的插件进行微服务调用,执行相应的业务逻辑,然后通过事件驱动的方式,执行对应的插件。


3 价值体现


业务事件中心支持自定义插件,为开发人员支持特殊业务场景提供了一种途径,插件中的业务逻辑可自行定义。同时,插件支持微服务调用,使得插件可以部署在任何工程下,避免因反射调用而出现找不到插件的情况。


4 功能详情


下面小编就为你介绍如何编写业务事件中心插件。


首先,插件需要实现IEventServicePlugin接口并重写handleEvent方法。因为目前事件分为苍穹事件和自定义事件,所以接口传递的参数是两种类型事件的父类型KDBizEvent


当可以明确触发插件的事件类型时,我们可以直接进行类型转换。


如果需要做一个同时支持苍穹事件和自定义事件的插件,只需对事件进行判断即可。具体代码如下所示:


public Object handleEvent(KDBizEvent evt) { 
    if (evt instanceof EntityEvent) {//苍穹事件 
        EntityEvent entityEvent = (EntityEvent) evt;//类型转换 
        String businesskey = entityEvent.getBusinesskeys().get(0); 
        String entityNumber = entityEvent.getEntityNumber(); 
        DynamicObject obj = BusinessDataServiceHelper.loadSingle(businesskey, entityNumber); 
        Long evtID = evt.getEventId(); 
        String source = evt.getSource();//传递的事件参数 
    } else {//自定义事件 
        JsonEvent jsonEvent = (JsonEvent) evt;//类型转换 
        String source = jsonEvent.getSource();//传递的事件参数 
        if (WfUtils.isNotEmpty(source)) { 
             JSONArray arr = (JSONArray) JSON.parse(source); 
         } 
    } 
    return null;
}



其中:evt.getSource中的数据,是事件定义→事件参数中打开传递数据开关后在单据中取的数据。


evt.getSource的数据源示例


那么,插件编写完成后如何使用呢?


需要在【流程服务云】→【业务事件中心】→【事件订阅】→【执行服务】中选择执行插件服务。


选择执行插件服务示例


将事件和执行插件服务绑定,形成如下图所示的事件订阅。当事件被触发时,就会执行对应的插件。


事件订阅示例


5 常见问题


Q:一个事件只能配置一个服务吗?


A:同一事件可以配置多个服务,每个服务都会异步执行


6 相关链接


业务事件中心使用手册

事件定义

事件订阅

服务目录

在哪里查看订阅事件的日志信息

事件发生异常后在哪里处理异常信息


7 划重点


编写业务事件中心插件需要注意以下两点


1、业务事件中心执行插件服务的设置方式:【流程服务云】→【业务事件中心】→【事件订阅】→【执行服务】中选择执行插件服务;


2、获取业务事件中心插件接口提供的参数及其使用方式:通过KDBizEvent实体拿到参数进行业务逻辑编写




#往期推荐#


#  五分钟新建流程攻略

#  让你一次看通透,流程参与人那些事

 苍穹工作流那些事 之 流程节点

#  苍穹工作流那些事 之 流程启动

 刚柔并济,流程动态配置方案详解

 苍穹工作流那些事 之 流程线

#  快速掌握流程变量的用法

业务事件中心,他来了


更多精彩内容,“码”上了解!↓


手把手教你使用业务事件中心执行插件

当业务事件中心中预制的标准服务,如发送消息、执行操作等不能满足客户的实际业务场景时,我们应该怎么办呢?你想了解的,小编都将一一解答...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息