如何在规则任务中访问进程参数?

时间:2012-08-07 07:53:06

标签: drools jbpm

使用JBPM5时,我已经建模了一个进程,onStart会转到RuleTask。

Map<String, Object> params = new HashMap<String, Object>();
params.put("citizenName", "Nannak");
params.put("citizenAge", 23);
ksession.startProcess("com.sample.medicalcheckup", params);

如何在“段”中访问“规则”中的“citizenAge”?

提前致谢!

2 个答案:

答案 0 :(得分:1)

必须在规则任务之前添加脚本任务,该任务获取进程参数并插入到KnowledgeContext。

org.drools.runtime.process.WorkflowProcessInstance process = org.drools.runtime.process.WorkflowProcessInstance)kcontext.getProcessInstance();
System.out.println(process.getVariable("citizen"));
kcontext.getKnowledgeRuntime().insert(process);         

希望我也可以在开始这个过程之前做同样的事情。

感谢提供的示例here

答案 1 :(得分:0)

在drools 6中你可以使用它:

drools.getContext(org.kie.api.runtime.process.ProcessContext.class).getVariable( “processParam1”)