2016-11-20 7 views
1

WSO2を使用するBPS 3.6.0 - すでに実行中のインスタンスのインスタンス変数を更新する方法はありますか?BPSのインスタンス変数を更新する

理由は、クライアントがプロセスの初期化時に不正なデータを渡し、クライアントがデータを修正する可能性がありますが、プロセスインスタンスが間違った値を記憶しているからです。

私は、私はまだ、データベース内のデータを更新することと信じて、私は、プロセス管理者がデータベース

編集をいじって見たくない:私はBPELエンジンで働いていますし、私の考えを更新することです プロセス設計ではなく、是正措置としての変数(管理コンソール?API)

ありがとうございます。

答えて

0

クライアントの要求に基づいてプロセスの初期化中にインスタンス変数を設定しています。

要求のために変数を取得する必要がある場合。これを実行するには、実行エンティティを使用して、プロセスの初期化中に設定されたインスタンス変数の代わりにデータを読み取る方法があります。

は、以下の例を参照してください:あなたはインスタンス変数を使用して保存しておきたい場合は

public class SampleTask implements JavaDelegate { 

    public void execute(DelegateExecution execution) throws Exception { 
      String userId = execution.getVariable("userId"); 
     //perform your logic here 
    } 
} 

を、私はあなたがプロセスの実行時にインスタンス変数を変更することをお勧めします。

public class SampleTask implements JavaDelegate { 

    private String userId; 

    public void execute(DelegateExecution execution) throws Exception { 
      String newUserId = execution.getVariable("userId"); 
      setUserId(newUserId); 
     //perform your logic here 
    } 

    public void setUserId(String userId) { 
      this.userId = userId; 
    } 

    public String getUserId() { 
      return userId; 
    } 
} 
+0

お返事ありがとうございます。しかし、私はBPELエンジン(Activitiではなく)を使用しています。私の質問は、プロセスが実行中であり、入力されたデータが正しくないと判断した場合の修正アクションです。データの更新をサポートするための最善のアドバイスは、各操作の前に本番データを保管してリロードすることですが、そのようには実装されていませんでした – gusto2

関連する問題