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