节点前后置事件脚本
概况
事件脚本是针对流程任务创建或完成的处理逻辑进行增强,如普通任务创建、会签任务创建、任务完成等动作的逻辑增强;
前置事件脚本,即在普通任务创建、会签任务创建逻辑后执行,代码切入点
com.ak.iform.bpmn.activiti.ext.listener.task.AbstractTaskListener.exeEventScript(BpmDelegateTask)
;后置事件脚本,即在任务完成动作逻辑后执行,代码切入点
com.ak.iform.bpmn.activiti.ext.listener.task.AbstractTaskListener.exeEventScript(BpmDelegateTask)
;脚本内容是groovy脚本,如:
操作说明
在【工作流程】-【流程定义管理】选择某条数据,点击“设置”按钮,进入流程设置页面,然后在左边选中“用户任务”图标的节点,然后在右边出现的“事件设置”选择“编写脚本”,编写以下代码范例即可,如:
脚本常用逻辑示例
脚本语言是Groovy,它可以理解为java的一个动态方法,我们只需要编写方法体内容即可
它可以调用到任何注入到spring容器中的bean,写对beanId就可以
语法就是java语法,我们在一个java方法内怎么写代码这里就这么写
里面内置的可用对象:
- cmd,流程命令对象,可以获取业务数据、跳转节点
- [业务对象编码],业务对象实体,可以获取或修改业务字段值
- 其他注入到Spring容器的Bean,如:cscript,通用脚本、bpmnScript,流程相关脚本、businessScript,业务相关脚本、jdbcScript,数据库操作相关脚本等
常用Bean列表
BeanID | Bean说明 | 使用文档 |
---|---|---|
cmd | IFORM流程执行对象(任务、实例) | 在这里 |
execution | Activiti任务执行对象 | 在这里 |
mybatisTemplateProvider | SQL执行对象(基于Mybatis,事务一致) | 在这里 |
jdbcScript | SQL脚本对象(基于JdbcTemplate,事务不一致) | 在这里 |
bpmnScript | 流程脚本对象 | 在这里 |
businessScript | 业务脚本对象 | 在这里 |
cscript | 通用脚本对象 | 在这里 |
thridServiceScript | 第三方服务脚本对象 | 在这里 |
validationScript | 校验脚本对象 | 在这里 |
说明:功能操作使用说明,移步地址:[Groovy脚本使用说明]
如何获取业务数据
- 如何获取业务数据
- 业务数据需要调用时设置到请求参数中,如果是外部url表单方式需要按照前端编写getFormData方法给接口返回表单数据;
如何获取动作类型
- 获取方式
- 使用示例,根据动作类型确定如何修改业务数据
如何获取界面或接口
传入下一个节点ID
最终体现都是接口参数传入,详情请查阅:
获取接口指定的节点
使用示例,根据节点确定如何修改业务数据
获取当前节点审批人
仅在节点
前置事件
可用
获取流程图下一个节点(v3.5.1以下)
仅在
后置事件
可用
下一个节点是结束
节点的后置事件不可用
获取流程图下一个节点(v3.5.1以上(含))
仅在
后置事件
可用
下一个节点是结束
节点的后置事件不可用
通过httpclient请求接口
注:
如果在脚本里面使用jdbcScript修改了数据需要手动调用缓存清除方法清除缓存com.ak.iform.base.framework.utils.J2CacheUtil.flushAll()
。多个脚本修改数据,只需在最后一个脚本写上清除缓存脚本即可。
如果当前节点执行后会跳过下一个节点需要同步修改线程上下文中的数据对象数据[业务对象编码].set("字段名",值)
最后编辑:黄春艳 更新时间:2025-07-11 16:03