首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >drools bpmn java语法

drools bpmn java语法
EN

Stack Overflow用户
提问于 2016-05-22 05:12:32
回答 1查看 252关注 0票数 0

我创建了一个示例drools项目,并使用BPMN flow的流程类型:

代码语言:javascript
复制
        KieServices ks = KieServices.Factory.get();
        KieContainer kContainer = ks.getKieClasspathContainer();
        KieSession kSession = kContainer.newKieSession("ksession-process");
        kSession.insert(myTicket);
        kSession.startProcess("com.sample.bpmn.hello");
        kSession.fireAllRules();

如果我想用java编写,而不是作为规则,我如何在BPMN Gateway中使用可变票证发散约束:(m : myTicket ( status == Ticket.CREATE))。

EN

回答 1

Stack Overflow用户

发布于 2016-05-22 15:16:04

事实(在kie会话中断言的对象)在jbpm的作用域中不可用(唯一的例外可能是使用DRL语法的网关)。您可以使用一些变通方法从会话中获取这些事实之一,并在网关中使用它,但是如果您在启动流程之前就有了对象(至少您的示例显示了这一点),您可以将此对象作为流程变量传递。

代码语言:javascript
复制
Map<String, Object> variables = new HashMap<>();
variables.put("ticket", myTicket);
kSession.startProcess("com.sample.bpmn.hello", variables);

您的流程定义必须有一个定义为Ticket类型的名称为myTicket的变量。

在您的网关中,您不需要任何特殊语法来引用此变量:

代码语言:javascript
复制
return ticket.getStatus() == Ticket.CREATE;

希望能有所帮助,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37368070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档