我是在AS7中运行jBPM5.4的jBPM菜鸟。我试过在jBPM duscussion板上发布这个问题,但没有运气,所以我想我会在堆栈上试试。
我的目标:在guvnor中创建进程,在gwt-console-server中运行它,将我的java应用程序提要信息提供给进程,并遵循jbpm控制台中的当前状态。
到目前为止,我已经在jBOSS AS7上安装了jbpm控制台和控制台服务器以及Guvnor和设计器。我能够在Guvnor中创建一个进程,并从jbpm控制台运行并监视该进程。缺少的是我不明白如何外部将消息插入正在运行的进程。
使用eclipse和jBPM示例,我可以运行一个进程并插入消息,但我的目标是使用jbpm控制台来监视进程。
我假设我需要访问gwt-console-server中运行的知识库,但我不知道该怎么做。访问/修改持久存储到数据库的会话是否安全(即,gwt-console-server和我的自定义应用程序都可以修改它)然后jbpm控制台会从中读取它?
我在BPM控制台参考(https://community.jboss.org/wiki/BPMConsoleReference)中看到有一个集成层,但没有任何关于如何利用它 - 以及文档中的类似内容被破坏:(
有人能指出一个外部应用程序的示例,该消息传递给jbpm进程,该进程正在由jbpm-console监视,或建议实现此目的的方法吗?
非常感谢任何见解。 -J
PS。我有新的jBPM开发者指南,但找不到任何内容来帮助我(所以如果我遗漏了一些东西,我可以回复那个指南)。
答案 0 :(得分:1)
jBPM控制台有一个REST api,它公开了一部分功能。例如,如果您将此信息馈送建模为进程的开始或发送信号,则可以使用信号REST方法将此信息发送到控制台进行处理。
使用外部ksession更新流程实例也没关系。只要他们使用相同的数据库来存储信息,一切都应该没问题。
答案 1 :(得分:0)
事实证明控制台只是使用日志,所以只要你登录控制台正在使用的同一个数据库(使用JPAWorkingMemoryDbLogger),一切都可以自动运行。您可以使用JBPMHelper.newStatefulKnowledgeSession(kbase)或JBPMHelper.loadStatefulKnowledgeSession(kbase,sessionId),具体取决于您是否要使用从控制台启动的知识会话。此外,如果您借用控制台的会话,请不要将其丢弃。
我在某处读到你可以为会话提供一个业务ID(并且很快就会从你自己的代码中做同样的事情,以便他们自动使用相同的会话),但是目前当我想借用Console的会话时我使用了一个kludge假设最高会话是我想要的那个(只要控制台已经运行就会这样)。