业务事件中心执行插件编写指南

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

业务事件中心执行插件编写指南

1 简介

1.1 功能介绍

当业务事件中心中预制的标准服务如发送消息,执行操作等不能满足客户的实际业务场景时,我们可以通过写插件的方式,在插件中编写自己的业务逻辑,解决实际问题。

1.2 应用场景

当事件中心预制的标准服务不能满足现有的业务场景时,我们可以通过扩展服务或者编写插件的方式来自定义自己的业务逻辑。其中,编写一个处理相关业务逻辑的插件对于业务开发人员和二次开发人员来讲是比较友好且见效快的方式。

1.3 系统路径

【流程服务云】→【业务事件中心】→【事件订阅】→【执行服务】

2 功能详情

首先需要编写一个业务事件中心插件。插件需要实现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中的数据,是事件定义—>事件参数中打开传递数据开关后在单据中取的数据。



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

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



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



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


业务事件中心执行插件编写指南

1 简介1.1 功能介绍当业务事件中心中预制的标准服务如发送消息,执行操作等不能满足客户的实际业务场景时,我们可以通过写插件的方式,在...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息