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 这个属性。

eclipse离线安装activiti designer

根据activiti官网上介绍说明的,在eclipse安装activiti designer居然失败??!!
报错:https://www.activiti.org/designer/update/content.xml 找不到。

没有办法,只能通过离线方式来安装activiti designer,通过 https://www.activiti.org/designer/archived/activiti-designer-5.18.0.zip 下载,但是想下载其他版本的怎么办?对不起,没有目录列表,只能靠猜了。同时这个地址下载网速很慢,所以依靠我们伟大的迅雷,一会时间就下载完了,迅雷牛X。

下载好后,在eclipse中,help -> install new software -> archive,选中下载的文件,然后name中随便输入一个activiti即可,在 contact all update sites during install to find requied software 前面的checkbox要打上勾,因为可能会对你的eclipse进行升级必要的图形组件。选好后然后点击 finish,根据后面提示安装。

安装的时候,假如报错的话,那么可能你的eclipse版本过低了,最好下载一个最新的eclipse。我用的是一个比较新的eclipse,所以在安装的时候,没有其他额外的组件需要安装(都有了),所以安装的速度非常快,没有任何问题。

网上说的其他各种各样的安装法,看了都头痛,但是我这种办法是最有效最便捷最高效的。