我有一个服务节点,它将由一个WorkItemHandler运行。jBPM如何获得WorkItemHandler结果
在executeWorkItem结束时,我做:
manager.completeWorkItem(workItem.getId(),结果映射);
如何从其他地方访问resultMap?在哪里?
我有一个服务节点,它将由一个WorkItemHandler运行。jBPM如何获得WorkItemHandler结果
在executeWorkItem结束时,我做:
manager.completeWorkItem(workItem.getId(),结果映射);
如何从其他地方访问resultMap?在哪里?
你想用它做什么?你想在哪里访问它?
这些结果被传递给流程实例,因此在用于启动该服务的任务中,可以将这些结果映射回流程变量,以便它们可以用于流程实例的其余部分。例如,如果您的处理程序返回名为“outcome”的结果,并将该结果参数映射到变量(使用结果映射),则可以在脚本或决策中使用此变量,或将其映射为下一个服务的输入等
克里斯
从WorkItemHandler返回结果的最简单的方法是映射包含结果键入先前定义的过程变量HashMap中。 您可以在“结果映射”视图中执行此操作。 “参数”应该是HashMap的关键,“变量”是所需的过程变量。
下面是一个例子。
WorkItemHandler:
Map<String, Object> results = new HashMap<String, Object>();
results.put("price", price);
wim.completeWorkItem(wi.getId(), results);
现在映射的过程视图中的变量,你的流程定义(在文本编辑视图)应该是这样的:
<dataOutputAssociation>
<sourceRef>_11_priceOutput</sourceRef>
<targetRef>myFlowPriceVariable</targetRef>
</dataOutputAssociation>
只是为了什么克里斯说细说( Kris & co,在6.1上顺利工作)...
variable = ((WorkflowProcessInstance) processInstance).getVariable("variableName");
和
((WorkflowProcessInstance) processInstance).setVariable("variableName", variable);
你需要投你从KieSession背部,以便使用该变量API键入WorkflowProcessInstance流程实例。
请参阅http://docs.jboss.org/jbpm/v6.1/userguide/jBPMBPMN2.html#d0e3371