2012-02-24 9 views
0

WorkItemHandlerによって実行されるサービスノードがあります。jBPM WorkItemHandlerの結果を取得する方法

executeWorkItemの終わりに私が行います

manager.completeWorkItem(workItem.getId()、このresultMap)。

他の場所からresultMapにアクセスするにはどうすればよいですか?どこが保持されていますか?

答えて

1

あなたはそれをどうしますか?どこにアクセスしたいですか?

これらの結果はプロセス・インスタンスに渡されるため、このサービスを開始するために使用されたタスクでは、これらの結果をプロセス変数にマップして残りのプロセス・インスタンスで使用できます。たとえば、ハンドラが「結果」という結果を返し、その結果パラメータを(結果マッピングを使用して)変数にマップすると、スクリプトまたは決定でこの変数を使用したり、次のサービスの入力としてマップできます、等

クリス

-1

WorkItemHandlerから結果を返すする最も簡単な方法は、先に定義されたプロセス変数に結果キーを含むHashMapをマッピングしています。 「結果マッピング」ビューでこれを行うことができます。 "Parameter"はHashMapのキーで、 "Variable"は望ましいプロセス変数です。

例を示します。

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 &共同、6.1ちょっといい仕事...)

variable = ((WorkflowProcessInstance) processInstance).getVariable("variableName"); 

((WorkflowProcessInstance) processInstance).setVariable("variableName", variable); 

あなたは変数APIを使用するためにWorkflowProcessInstanceを入力するために戻ってKieSessionから取得プロセス・インスタンスをキャストする必要があります。

http://docs.jboss.org/jbpm/v6.1/userguide/jBPMBPMN2.html#d0e3371

関連する問題