2012-02-24 84 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