在 JBPM 中,我可以(技术上)从任务节点发出多个转换吗?
如果是,这是一个好习惯吗?
任何帮助都会很有用。
这是可能的,但是如果您通过 callign token.signal() 或 taskInstance.end() 传播您的进程的执行,则选择的转换将是第一个(在 .xml 文件中),无论转换有什么条件. 如果该条件评估为假,将引发异常。
只有开箱即用的决策节点支持通过评估条件来选择转换,并且将选择条件评估为真的第一个转换(或者如果没有条件评估为真,则选择第一个转换)。
但是编写手动传播执行的自定义动作处理程序(token.signal(“transitionname”))并选择正确的转换(tm)非常简单。
对不起我的英语不好。
我认为他想要的是 Fork,Fork 是一种节点,可以帮助您进行多种转换,更有可能是多流,这种方式的最佳示例是 MC Donald 的,如果您要购买任何东西,他们会同时进行您正在付款,因此当您完成付款时,您就像“加入”一样,因此它可以交付,您可以高兴也可以不高兴。
如果这是问题的重点,请转到“Fork”和“Join”,您可以在 JBPM Docs 中轻松找到答案
在 BPM 中存在一种可能性。任务可以有两个或多个事务,用户可以选择一个、两个或多个事务(或所有事务)。
但我不知道如何在 jBPM 中实现它......
是的,这是可能的。
为什么不。一个过程有两种方式,你不能定义算法方式来选择一种。
您必须在任务节点之后使用分叉节点。
是的,jBPM 中的任务节点可以有多个传出连接,但总的来说,我建议不要将其作为建模最佳实践。原因是通过使用来自一个任务节点的多个传出连接,您隐藏了(在这种情况下是隐式的)网关行为,使其在进程中不可见。
请注意,如果要对任务使用多个传出连接,则必须将 jbpm.enable.multi.con 属性设置为 true,否则引擎会将其标记为无效。
是的你可以。我们可以利用 jbpm 提供的 FORK-JOIN 功能。您可以使用此链接https://docs.jboss.org/jbpm/v3/userguide/processmodelling.html