激活接收任务查询和信号



我们尝试在activiti中使用接收任务来等待一些外部事件。当外部事件发生时,我们希望根据流程变量(我们作为事件的一部分接收(查询所有流程实例,并发出信号使实例向前移动。 我们还想向用户显示所有等待实例。

当我查看 activiti API 时,我只能看到基于 activityId 获取执行的查询。

  1. 我正在寻找查询接收任务执行中的所有实例。(可能带有诸如 processVar1 = ?(
  2. 一旦我检索,我想向实例发出信号。(我们应该使用哪个 API(

我们正在使用 Activiti 6.0

我正在寻找一些可用 API 的指导来实现这一目标。

您使用的是哪个版本的 Activiti?不同版本的Activiti的API略有不同,因此答案也将取决于您使用的版本。假设您使用的是我熟悉的Activiti 6.0:

使用执行查询,您可以按活动 ID 查找特定流程定义的流程实例,这些实例位于特定活动中,如下所示:

List<Execution> executions = runtimeService.createExecutionQuery()
.processDefinitionKey("procdefkey")
.activityId("activityid")
.list();

使用接收任务的 id 作为活动 ID 来查找在要查找的接收任务中等待的执行。

如果要包括对特定过程变量值的检查:

List<Execution> executions = runtimeService.createExecutionQuery()
.processDefinitionKey("procdefkey")
.activityId("activityid")
.variableValueEquals("variablename", "variablevalue")
.list();

若要触发流程实例继续,请使用RuntimeServicetrigger()方法。例如,要触发通过上述查询找到的所有执行,请执行以下操作:

for (Execution execution : executions) {
runtimeService.trigger(execution.getId());
}

最新更新