事件脚本
事件脚本设置
在传统的审批场景中,往往会在用户任务和开始节点中进行一系列的功能性工作操作,比如当实例进入指定的活动或者节点、容器的时候,去设置一些变量,或者调用一些业务接口进行处理,盘古BPMN支持事件机制(HTTP或者JMS),可以参考事件设置一文。也可以采用编码方式进行执行,采用编码方式去监控节点的进入以及离开事件之后进行相应的处理。为此盘古BPMN使用了grovvy进行业务方法的调用,用户可以在业务方法中书写相关的逻辑,然后为节点绑定该事件即可。
对于Grovvy内部如何调用业务Bean的方法,开发人员无需关系,只需要关心自己的业务即可。接下来看一下如何设计脚本以及将脚本绑定到指定的节点上。
定义脚本
登录后台系统,打开“流程管理”->"常用脚本"菜单,如下图所示:
点击新增按钮,即可进行脚本的增加。上图中会罗列系统中已经存在的脚本,包括脚本的名称、类型、备注以及操作四列。如果用户不打算使用指定的脚本,点击上图中的删除即可,如果指定的脚本需要修改,则点击编辑按钮进行操作。脚本的编辑与新增类似,这里以新增为例进行说明。
新增脚本
点击上图中的新增按钮,会出现下图的弹框。
上图中的每一个字段含义如下:
-
名称:在名称输入框中输入指定的名称,名称代表当前新增或者脚本的业务含义,最好起的有意义一点,见名知意。
-
脚本:因为脚本使用的是Groovy,因此需要有一定的Groovy脚本知识,通常这里主要是用来调用具体的Bean中的某一个方法,因此也比较简单,这里以调用commonScript类中的testGroovy方法为例进行说明,脚本样例:return commonScript.testGroovy();commonScript为Spring容器中的Bean,testGroovy对应该类中的方法名称。如果对于脚本的格式有疑惑,可以点击测试脚本按钮进行测试即可。当点击测试脚本按钮之后,脚本引擎会自动执行脚本,以此验证脚本的合理性和正确行。
-
脚本分类:业务开发人员可以为当前新增的脚本进行归类,这样方便后续的查看,在脚本分类行中,有一个文本框和一个下拉框,如果期望选择已经存在的分类,则直接勾选下拉框即可,如果下拉框中没有期望的分类,则直接点击文本框进行分类的输入即可。
-
备注:用来详细描述该脚本的职责。
当脚本新增完毕之后,点击上图中的确认按钮,即可看到脚本列表中新增了一条明细。接下来演示如何在模型中使用这些已经定义好的脚本。
模型中配置脚本
打开任意一个模型,选择用户任务或者服务任务,打开“跟多设置”->"事件脚本设置"如下图所示:
脚本分为前置脚本和后置脚本两种。
-
前置脚本:当节点进入节点的时候触发。
-
后置脚本:当节点离开的时候触发。
前置脚本和后置脚本设置方式一样,只是触发时机不同而已。下面以前置脚本的使用为例进行说明。
设置前置脚本
点击“设置脚本事件”按钮,如下图所示:
上图中页面可以用来设置前置脚本和后置脚本,开发人员只需要来回切换设置即可。设置步骤如下:
1、点击常用脚本,如下图所示:
2、选择需要使用到的脚本,点击确认即可。因此上图中的脚本在定义的时候已经经过了测试,所以这里没必要再次进行正确性校验。
3、如果不打算使用预定义的脚本,可以直接在上图的脚本输入框中输入脚本,然后点击确认即可。
事件脚本作用域
为了方便对BPMN2.0的元素进行区分,盘古BPM在设计的时候,对于事件脚本进行了区分。
对于用户任务而言,可以使用上述的前置脚本和后置脚本,对于服务任务、自动任务、手工任务、接受任务而言仅支持自动任务设置。自动任务、前置脚本和后置脚本均采用Groovy引擎,只是语义不同。
自动任务
对于服务任务、自动任务、手工任务、接受任务而言仅支持自动任务设置,该操作的入口为:“更多设置”->"自动任务设置",如下图所示。
前置事件和后置事件只能在用户任务上使用
自动任务只能在非等待的节点上使用。
用户任务有进入和离开的概念
非等待的节点没有进入离开的概念,非等待节点进入即离开,因此不需要配置前置事件和后置事件。
自动任务事件支持是否异步方式执行,其他的不支持。