activiti usertask中的dueDate不起作用

我们在工作流中,经常有这样的需求:一个用户任务当超过多少时间后,自动进入下一个流程。比如:一个下发通知的流程,需要几个人看通知,有可能个别人员这段时间休假,导致迟迟没有看通知,所以我们希望到多少时间后,该流程能自动到下个任务去统计多少人看了通知,多少人没有看通知。这个时候,我们就需要一个机制让任务能自动结束并转入下一个任务。

我们看到在bpmn中的usertask有一个属性dueDate(到期时间),那我们用这个特性那是不是很方便。我们做了一个最简单的例子后,还需要做好前提条件:需要开启JobExecutor或者AsyncExecutor,这2个的设置请自行查阅相关文章,网上很多。

运行后,我们发现dueDate不起作用,怎么测试都不成功,于是再去查相关资料,这个资料就很稀少了,好像这么有用的一个属性大家居然没有用到?最后在https://stackoverflow.com/questions/35089524/will-activiti-give-call-back-if-due-date-is-completed这里找到说明:

unless you add a boundary timer event in your process that fires at the due date. As far as Activiti is concerned, due date is simply another piece of task and process instance metadata. You can use it, but you need to model alerts.

也就是说:在usertask中的duedate没有用的,假如希望用到到期时间这个功能,那就用 boundary timer event(边界定时事件)。

嗯,这个倒也是如此,用“边界定时事件”确实能满足这个需求。但是,吐槽一下,对于使用者来说,这个是多么会产生误导的啊,所以,强烈建议在 usertask中去掉 dueDate 这个属性。

发表评论

邮箱地址不会被公开。 必填项已用*标注