【问题标题】:How to reset boundary timer event on user task in Activiti如何在 Activiti 中重置用户任务的边界计时器事件
【发布时间】:2017-07-20 23:14:11
【问题描述】:

在一个 Activiti 进程中,我有一个简单的用户任务,其中包含一个定义了持续时间(例如 1 小时)的边界计时器事件。使用 Activiti API,我如何重新启动/重置计时器? (定时器应该在它重新启动的时间后触发。)

这是我的示例流程定义:

通过重置计时器,应该延迟超时处理。

【问题讨论】:

  • Activiti 版本 6

标签: activiti bpmn


【解决方案1】:

虽然我相信您可以检索边界计时器事件执行并使用代码更新计时器值(我认为我在过去已经这样做了,但现在找不到示例),我实际上更喜欢这篇文章中描述的模式,因为它很清晰,当然也很容易实现。

Activiti / Camunda change boundary timer with variable

如果这不能满足您的需求,请告诉我,我会尝试挖掘执行更新代码。

干杯, 格雷格

【讨论】:

  • 感谢您的回答。您的意思是managementService.setJobDuedate(jobId, newDueDate) 通过代码更新计时器(从链接问题的 cmets 复制)?首先,我想知道当我手头有任务(例如顺序任务 2)时,我如何才能找到工作 ID?更重要的是:ManagementService 中的 Activiti 6.0 中不存在此方法。如果你能挖掘你的代码会很酷。
  • 你又找到了吗? :)
  • 您是否尝试过这样的工作:Job job = managementService.createJobQuery().processInstanceId(execution.getProcessInstanceId()).timers().singleResult(); managementService.setJobDuedate(job.getId(), newDueDate);
  • 好的,这就是我得到这份工作的方式,太好了。但是,setJobDuedate 方法在ManagementService 中不存在,请参阅activiti.org/javadocs/6.latest。不知道 Activiti 6 有没有等效的方法?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-18
  • 2020-05-07
  • 2015-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多