jBPM 6.2.0 在 jBPM 用户任务入口脚本中获取任务 ID

jBPM 6.2.0 Fetch Task ID in jBPM User Task Entry Script

我们需要将 jBPM 用户任务入口脚本中的任务 ID 更新为流程变量。知道在 jBPM 6.2.0

中怎么可能

不幸的是,它在 EntryScript 中是不可能的,因为那时还没有创建任务,因此还没有生成任务 ID。但是,根据您想要从中检索任务的确切原因和位置,您可以考虑以下方法,它根本不需要流程变量来存储任务 ID:

  1. 您会发现 HumanTaskNodeInstance 有一个方法 getWorkItemId(),returns 用于创建任务的 WorkItem 的 ID。
  2. 您可以通过其 WorkitemId 检索任务 org.kie.api.task.TaskService.getTaskByWorkItemId().
  3. 因此,如果您知道使用哪个 HumanTaskNodeInstance 创建任务,就可以找到关联的任务。

第二种方法是注册一个 TaskLifeCycleEventListener 并覆盖 afterTaskAdded,但这样您就无法轻松访问 ProcessInstance,我们可能会提出挑战。

第三种方法是实现您自己的 HumanTask WorkItemHandler,但对于手头的要求来说这似乎有点难处理。

如果第一种方法不起作用,请告诉我,我们可以探索其他两种方法中的一种。