activiti中taskService.deleteTask(taskId)
时间: 2024-01-24 07:19:22 浏览: 29
这个方法是用来删除对应任务ID的任务。如果任务已经被完成,那么该方法会抛出异常,因为已经完成的任务不能被删除。
在删除任务时,如果任务关联了流程实例,那么该任务关联的历史记录也会被删除。如果任务关联了执行对象,那么该执行对象也会被删除。
需要注意的是,删除任务并不会直接影响流程的运行,而只是删除了任务本身及其相关的历史记录和执行对象。如果需要中止流程实例,需要使用`runtimeService.deleteProcessInstance(processInstanceId, deleteReason)`方法。
相关问题
activiti中taskService.deleteTask(taskId)的sql语句
在Activiti中,执行`taskService.deleteTask(taskId)`方法时,会执行以下SQL语句:
```sql
delete from ACT_HI_TASKINST where TASK_ID_ = #{taskId}
delete from ACT_HI_COMMENT where TASK_ID_ = #{taskId}
delete from ACT_HI_IDENTITYLINK where TASK_ID_ = #{taskId}
delete from ACT_RU_TASK where ID_ = #{taskId}
delete from ACT_RU_IDENTITYLINK where TASK_ID_ = #{taskId}
delete from ACT_RU_VARIABLE where TASK_ID_ = #{taskId}
```
这些SQL语句的作用是删除与指定任务相关的历史任务实例、任务评论、任务参与者、运行时任务、运行时任务参与者和任务变量等信息。
中activiti中taskService.complete(taskId,pam),pam能为多个出线的条件参数么
是的,`taskService.complete(taskId, params)`方法中的`params`参数可以包含多个出线的条件参数。
在Activiti中,当一个任务节点有多个出线时,每个出线都可以定义一个条件表达式,这些条件表达式可以在运行时决定流程走向。在使用`taskService.complete()`方法完成任务时,可以通过`params`参数设置条件表达式的参数值,以满足特定的条件。
例如,假设有一个任务节点`task1`,有两条出线a和b,它们的条件表达式分别为`${param1 == 'A'}`和`${param2 == 'B'}`,其中`param1`和`param2`是流程变量。如果要选择出线a,需要设置`param1`的值为`A`;如果要选择出线b,需要设置`param2`的值为`B`。此时,可以使用如下代码完成任务:
```java
String taskId = "task1";
Map<String, Object> params = new HashMap<>();
params.put("param1", "A"); // 设置param1的值为A,满足出线a的条件
//params.put("param2", "B"); // 设置param2的值为B,满足出线b的条件
taskService.complete(taskId, params); // 完成任务
```
在上述代码中,我们设置了`params`参数的值为一个包含`param1`的Map对象,这样就满足了出线a的条件。如果要选择出线b,只需要注释掉`params.put("param1", "A")`这一行,然后取消注释`params.put("param2", "B")`这一行即可。