1、在启动流程实例时,可以添加流程变量。
1) 在启动流程实例时,通过重载startProcessInstanceByKey的方法可以加载流程变量。
2) 第二个参数要求是Map<String ,Object>类型,可以添加多个流程变量。
3) 这段代码执行完,会在数据库表act_ru_variable中添加两行记录。
2、在办理任务时,任务办理完成后,要传递一些信息到系统中。这个时候可以利用TaskService这个类来添加流程实例。public void setVar() throws Exception { String processInstanceId = "1901"; Task task =taskServicecreateTaskQuery()taskAssignee("manager")processInstanceId(processInstanceId )singleResult();// String taskId / 在办理过程中设
说明:
1) 利用setVariables方法在任务办理过程中添加一批流程变量。
2) 利用setVariable方法在任务办理过程中添加一个流程变量。
3) TaskService有一个重载 complete方法
3、执行流程实例时直接在Execution上设置流程变量
获取流程变量可以通过runTimeService的方法来获取流程变量。
说明:流程变量是从act_ru_variable这个表中读出来的。
我们经常有通过 Scheme 打开 App 的情况,并且大多数时候会通过 Scheme 携带一些参数回来。
一般情况下,可能都是正常的。但是!!!
当启动模式是 singTask 时,Activity 的生命周期就有了两种情况,可能会导致我们获取不到携带回来的参数。
那就新创建,那就是正常的流程
onCreate()
onStart()
onResume()
这个时候,我们获取 getIntent() 是没有问题的。
它在后台。这时候是 onPause() 或 onStop() 状态,在看启动流程
onNewIntent()
onRestart()
onStart()
onResume()
首先注意,onCreate() 方法不会再走了,如果是在 onCreate() 中获取 getIntent() 肯定是获取不到的。
然后来看这个 onNewIntent() 方法:
所以,我们再要获取到 intent ,就要重写 onNewIntent 方法,如下:
想要在 singleTask 模式下获取 getIntent() 有两种方式:
两者选其一即可。
Snaker是一个基于Java的开源工作流引擎,适用于企业应用中常见的业务流程。本着轻量、简单、灵巧理念设计,定位于简单集成,多环境支持
轻量:核心代码行数大约7000行,强大的扩展性,支持Spring、Jfinal、Nutz平台级框架;支持Jdbc、SpringJdbc、Hibernate3or4、Mybatis等orm框架
简单:表设计简单,流程组件简单[start/end/task/custom/subprocess/decision/fork/join]
灵巧:暴露大量可扩展接口,支持流程设计器、流程引擎的组件模型自定义[节点自定义、属性自定义、表单自定义]
200版本改进包括:
1snakerflow重新规划,将第三方扩展支持以独立子模块发布
2支持自动初始化脚本,只需要用户创建一个数据源即可
3支持Web自定义表单、eclipse插件自定义表单[未体现在snaker-web演示项目中]
4流程web设计器增强,支持绑定自定义表单、支持选择参与者
5流程状态图增强,支持单击活动节点显示处理人,抵达时间,并且可动态添加参与者
6增加jfinal支持,事务可统一由jfinal控制
7增加nutz支持,事务可统一由nutz控制
8增强:
TaskService增加根据taskId获取TaskModel的api
Order实体的orderNo支持由map传递运行时数据(key:SnakerEngineID)
增加IReminder接口,用于超时提醒
望采纳!!!
以上就是关于activiti 怎么获取变量全部的内容,包括:activiti 怎么获取变量、【BUG系列】getIntent()无法获取到值,Activity 是singTask 模式、activiti工作流中调用TaskService.complete数据库断开等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)