我想将特定主题中从 fuse 收到的所有数据发送到 BPM Studio 中的业务流程。有什么办法吗?
示例:我向 Fuse 中的“testTopic”发送了一个值。然后 Fuse 将此值发送到业务流程(或业务流程检索它),然后业务流程根据收到的值执行操作,例如将另一个值发送到另一个主题
这种事情可能吗?
我想将特定主题中从 fuse 收到的所有数据发送到 BPM Studio 中的业务流程。有什么办法吗?
示例:我向 Fuse 中的“testTopic”发送了一个值。然后 Fuse 将此值发送到业务流程(或业务流程检索它),然后业务流程根据收到的值执行操作,例如将另一个值发送到另一个主题
这种事情可能吗?
是的,这绝对是可能的,尽管您需要从“testTopic”路由到 jBPM 可以侦听的 JMS 队列之一,并转换消息以反映有效的 jBPM 命令。通用原理在http://docs.jboss.org/jbpm/v6.0/userguide/jBPMRemoteAPI.html#d0e12149的文档中进行了描述。当您查看可以在包中发送的所有 jBPM 命令时,真正的力量就会变得清晰
org.drools.core.command.runtime.process
(Maven: org.drools:drools-core)
和
org.jbpm.services.task.commands
(Maven:org.jbpm:jbpm-human-task-core)。
当与外界交谈时,通常需要在流程中标识一个correlationKey,它基本上是“业务密钥”,可用于唯一标识流程,例如应用程序流程的“ApplicationNumber”。这可用于识别您可能想要发出信号/中止/等的进程。
由于您在 Fuse 中工作,您可能还应该考虑将该消息路由到http://docs.jboss.org/jbpm/v6.0/userguide/jBPMRemoteAPI.html#d0e10088中描述的 jBPM Rest API 。这可能会稍微简化您的代码,因为它是一个更加同步的 API。然而,缺点是 REST over HTTP 调用通常不尊重本地事务。