WorkItemHandlerによって実行されるサービスノードがあります。jBPM WorkItemHandlerの結果を取得する方法
executeWorkItemの終わりに私が行います
manager.completeWorkItem(workItem.getId()、このresultMap)。
他の場所からresultMapにアクセスするにはどうすればよいですか?どこが保持されていますか?
WorkItemHandlerによって実行されるサービスノードがあります。jBPM WorkItemHandlerの結果を取得する方法
executeWorkItemの終わりに私が行います
manager.completeWorkItem(workItem.getId()、このresultMap)。
他の場所からresultMapにアクセスするにはどうすればよいですか?どこが保持されていますか?
あなたはそれをどうしますか?どこにアクセスしたいですか?
これらの結果はプロセス・インスタンスに渡されるため、このサービスを開始するために使用されたタスクでは、これらの結果をプロセス変数にマップして残りのプロセス・インスタンスで使用できます。たとえば、ハンドラが「結果」という結果を返し、その結果パラメータを(結果マッピングを使用して)変数にマップすると、スクリプトまたは決定でこの変数を使用したり、次のサービスの入力としてマップできます、等
クリス
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>
ただ、クリスが言ったことについて詳しく説明します( 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