activiti脚本任务
脚本任务可能是Activiti代码库中“最古老的”类之一,但是我认为它仍然未被许多人使用。 (感知到的)缺点当然是性能(解释还是编译),并且从IDE角度来看支持较少。
但是,好处(imo)超过了这一点:
- 脚本在流程xml本身中定义。 不再担心版本控制和类路径上的库问题。
- 过去我们看到的是,技术水平较低的人敢于尝试脚本。 但是从来没有Java。
无论如何,很少有人知道或已经意识到,您可以在Activiti中的脚本中做得非常出色,并可以提高工作效率。 由于此类脚本是在流程引擎中执行的,因此您可以访问该引擎的所有功能。 是的...一切...这使其既非常强大,又(潜在)危险(如果您不知道自己在做什么)。
让我为您讲解这样的例子。 我喜欢将其称为“自定义配置注入”概念 ,因为它有效地允许您在运行时添加自定义逻辑,从而显着改变流程的执行。 如果您的名字更酷,请告诉我。
所有代码都可以在我的Github页面上找到: https : //github.com/jbarrez/activiti-advanced-scripting
用例
现在我想做什么。 好吧,我想有一个流程,执行时
- 向执行的每个用户任务添加“任务完成事件处理程序”
- 此事件处理程序必须向远程URL触发自定义事件,在该URL上可能有事件处理器正在执行其工作
因此,基本上,我们希望每当任务完成时就将自定义事件触发到某个远程URL。 一个很好的用例是商业智能报告/复杂事件处理,例如使用Esper之类的东西。