activity工作流runtimeService.startProcessInstanceByKey()执行后的ProcessInstance实例信息保存到哪里了
时间: 2024-03-28 16:37:41 浏览: 68
在 Activiti 中,流程实例(ProcessInstance)信息是保存在数据库中的。当你执行 `runtimeService.startProcessInstanceByKey()` 方法时,Activiti 会创建一个新的流程实例,并将该实例的相关信息(如id、流程定义id、当前活动节点、创建时间等等)保存到数据库的 `act_ru_execution` 表中。同时,也会在 `act_ru_task` 表中创建一个新的任务记录,用于表示该流程实例当前的待办任务。在整个流程实例运行过程中,Activiti 会不断更新数据库中的这些表,以记录流程实例的状态和流转信息。
相关问题
act_ru_variable这张表中的各个字段分别是代表什么意思?activity工作流runtimeService.startProcessInstanceByKey()执行后返回的ProcessInstance对象的id是哪张表的主键id?
act_ru_variable表是Activiti工作流引擎中的运行时流程变量表,其中的各个字段分别代表:
- ID:流程变量ID
- REV:数据版本号
- TYPE:数据类型
- NAME:数据名称
- EXECUTION_ID:流程实例ID
- PROC_INST_ID:流程实例ID
- TASK_ID:任务ID
- BYTEARRAY_ID:字节数组ID
- DOUBLE_: 存储double类型的变量值
- LONG_: 存储long类型的变量值
- TEXT_: 存储字符串类型的变量值
- TEXT2_: 存储字符串类型的变量值
在使用runtimeService.startProcessInstanceByKey()方法启动流程实例后,该方法会返回一个ProcessInstance对象,该对象的ID是act_hi_procinst表的主键ID。act_hi_procinst表是Activiti工作流引擎中的历史流程实例表,用于存储已经结束的流程实例的信息。
java activity工作流表结构
Java Activity工作流的表结构包括以下几个表:
1) act_ru_execution:运行时流程执行实例表,记录了流程实例的执行信息。
2) act_ru_identitylink:运行时流程人员表,主要存储任务节点与参与者的相关信息。
3) act_ru_task:运行时任务节点表,记录了流程中的任务节点信息。
4) act_ru_variable:运行时流程变量数据表,用于存储流程实例中的变量数据。[1]
在启动一个流程实例时,可以使用RuntimeService的startProcessInstanceByKey方法,并传入相应的变量。例如,可以使用Map对象来设置变量的键值对,然后将其作为参数传递给startProcessInstanceByKey方法。示例代码如下:
```
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("employeeName", "Kermit");
variables.put("numberOfDays", new Integer(4));
variables.put("vacationMotivation", "I'm really tired!");
RuntimeService runtimeService = processEngine.getRuntimeService();
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("vacationRequest", variables);
```
这段代码会启动一个名为"vacationRequest"的流程实例,并将变量传递给该流程实例。[2]
完成任务时,可以使用TaskService的complete方法,并传入相应的任务ID和任务变量。示例代码如下:
```
Task task = tasks.get(0);
Map<String, Object> taskVariables = new HashMap<String, Object>();
taskVariables.put("vacationApproved", "false");
taskVariables.put("managerMotivation", "We have a tight deadline!");
taskService.complete(task.getId(), taskVariables);
```
这段代码会完成指定任务,并将任务变量传递给该任务。[3]
综上所述,Java Activity工作流的表结构包括act_ru_execution、act_ru_identitylink、act_ru_task和act_ru_variable,可以使用RuntimeService的startProcessInstanceByKey方法启动流程实例,并使用TaskService的complete方法完成任务。
阅读全文