2012-02-24 81 views
0

我有一个服务节点,它将由一个WorkItemHandler运行。jBPM如何获得WorkItemHandler结果

在executeWorkItem结束时,我做:

manager.completeWorkItem(workItem.getId(),结果映射);

如何从其他地方访问resultMap?在哪里?

回答

1

你想用它做什么?你想在哪里访问它?

这些结果被传递给流程实例,因此在用于启动该服务的任务中,可以将这些结果映射回流程变量,以便它们可以用于流程实例的其余部分。例如,如果您的处理程序返回名为“outcome”的结果,并将该结果参数映射到变量(使用结果映射),则可以在脚本或决策中使用此变量,或将其映射为下一个服务的输入等

克里斯

-1

从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> 
0

只是为了什么克里斯说细说( 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