前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >项目实践工作流之Activiti学习(三十二)

项目实践工作流之Activiti学习(三十二)

作者头像
用户1289394
发布2023-11-14 17:30:18
发布2023-11-14 17:30:18
17300
代码可运行
举报
文章被收录于专栏:Java学习网Java学习网
运行总次数:0
代码可运行

3.5.3.2 任务办理时设置

在完成任务时设置流程变量,该流程变量只有在该任务完成后其它结点才可使用该变量,它的作用域是整个流程实例,如果设置的流程变量的 key 在流程实例中已存在相同的名字则后设置的变量替换前边设置的变量。

这里需要在创建请假单任务完成时设置流程变量

代码语言:javascript
代码运行次数:0
复制
// 办理任务时设置流程变量
@Test
public void completTask() {
//任务id
String taskId = "";
TaskService taskService = processEngine.getTaskService();
Holiday holiday = new Holiday();
holiday.setNum(4);
// 定义流程变量
Map<String, Object> variables = new HashMap<String, Object>();
//变量名是holiday,变量值是holiday对象
variables.put("holiday", holiday);
taskService.complete(taskId, variables);
}

说明:

通过当前任务设置流程变量,需要指定当前任务 id,如果当前执行的任务 id 不存在则抛出异常。

任务办理时也是通过 map<key,value>设置流程变量,一次可以设置多个变量。

3.5.3.3 通过当前流程实例设置

通过流程实例 id 设置全局变量,该流程实例必须未执行完成。

代码语言:javascript
代码运行次数:0
复制
public void setGlobalVariableByExecutionId(){
//当前流程实例执行 id,通常设置为当前执行的流程实例
String executionId="2601";
RuntimeService runtimeService = processEngine.getRuntimeService();
Holiday holiday = new Holiday();
holiday.setNum(3);
//通过流程实例 id设置流程变量
runtimeService.setVariable(executionId, "holiday", holiday);
//一次设置多个值
//runtimeService.setVariables(executionId, variables)
}

注意:

executionId 必须当前未结束 流程实例的执行 id,通常此 id 设置流程实例 的 id。

也可以通过 runtimeService.getVariable()获取流程变量

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档