2016-09-01 17 views
0

私はAlfrescoワークフローとActivitiワークフローを扱っています。ワークフローの1つが外部データベースに接続してユーザー名を取得する必要があります。これらのユーザー名は、ワークフローのタスクに割り当てられたユーザーになります。変数をJavaクラスのActivitiに設定します

私の "解決策"は、JDBCを使用して必要なユーザー名を取得するJavaクラスを作成し、このJavaクラスを呼び出すサービスタスクを作成しますが、続行する方法はわかりません。

解決策を探していて、何も見つかりません。すべての訴訟?

ありがとうございました。

答えて

2

Javaサービスタスククラスはorg.activiti.engine.delegate.JavaDelegateインターフェイスを実装する必要があります。DelegateExecutionexecuteメソッドに渡されます。

DelegateExecutionオブジェクトでは、setVariableを呼び出してワークフロー変数を設定できます。

public class MyServiceTask implements JavaDelegate { 
    @Override 
    public void execute(DelegateExecution execution) { 
     // Do something to get the data for your variable 
     Object value = ...; 

     // Set the variable 
     execution.setVariable("VARNAME", value); 
    } 
} 

Activiti user guideAPI documentationを参照してください。

+0

お返事ありがとうございます!私はそれを試してみましょう。 –

2

もう1つのオプションは、データベースから取得したユーザーに割り当てようとしているタスクにタスク・リスナー・クラスを追加することです。動的な割り当てを行うことができる「割り当て」イベントにタスク・リスナーを割り当てます。

このアプローチの利点は、この割り当てロジックがプロセス内で1回だけ使用される場合、プロセス変数を使用する必要がないことです。

関連する問題