事件机制
事件机制
不管是何种元素,均支持自定义事件机制,目前盘古BPM仅支持HTTP或者JMS方式进行事件的传播,屏蔽了执行监听器|任务监听器的概念,这样做有如下几个好处:
- 业务代码与引擎代码最大可能的分离,耦合度更低。
- 业务代码修改或者变更,不会引起引擎模块的修改。
- 更适合多租户场景,每一个租户下的业务数据隔离,代码隔离。
- 移植性更强。
在使用事件机制的时候,盘古BPM提供了全局和局部两种方式进行事件的设置,全局事件更适合“懒人”,只需要一次设置即可,局部监听器需要一个个的进行设置,显得有些繁琐,但出错的概率比较低。
全局事件
全局事件可以通过基础设置->全局设置->全局事件进行设置,如下所示:
如果没有定义任何的全局事件,则打开全局事件面板之后,会显示“尚未配置全局事件,请添加全局事件设置”。接下来介绍如何设置全局事件,操作步骤如下。
1、点击“设置接口事件”按钮,弹出框如下:
可以设置的属性如下所示:
1、地址:后台的接口,当配置该URL之后,响应的事件会直接调用该服务。
2、描述:该接口的用处,建议输入有意义的描述,方便自己区分。
3、类型,支持同步或者异步方式。如果使用同步方式则事件与接口的调用在一个线程内执行,异步方式会开启新的线程调用三方服务。如果三方服务执行的时间比较长,建议使用异步方式。
4、触发时机支持启动、结束、节点创建、节点完成四种类型。启动和结束特指流程实例的启动和结束事件,节点创建和节点完成特指用户任务的创建和完成事件。当勾选节点创建和节点完成任意一个复选框的时候,下方会弹出触发节点选项。开发人员可以勾选需要触发的节点。该节点为当前模型中所有的用户任务节点。如下图所示:
5、接口头部用于设置调用服务时传递的请求头。
多个事件顺序
全局事件可以定义多个,可以通过上下两个按钮进行位置的调整,多个事件的触发是有按照该顺序执行的。如果定义的事件不打算使用直接删除即可。如下所示:
上图中的按钮依次对应上移、下移和删除功能。如果打算新增事件,点击上图中的“新增”按钮即可。
局部事件
局部事件的操作与全局事件一致,只是局部事件可以细化到每一个任务节点,优先级更高。当同一个节点同时定义了局部事件和全局事件,则首先触发局部事件,然后触发全局事件。局部事件定义的入口如下所示:
操作顺序为:选中元素->更多设置->设置即可。默认会显示当前节点的事件,也可以点击上图中的“设置所有节点事件”批量设置所有元素的事件。上图中的“0”对应当前元素所定义的局部事件个数,与全局事件功能一直。
注意
全局事件与局部事件原理类似。
全局事件更适合懒人模式,直接候选事件的类型即可。
当三方服务执行比较耗时的时候,可以选择异步方式执行。
全局事件和局部事件支持定义多个事件。