0

実行のどの時点でも各ノードに再アクセスできる、ヒューマン タスクを含むワークフローが必要です。

          /A1 -- B1 \
         /           \
 Start - AND          AND - End
         \            /
          \ A1 --- B2/

そのため、現在の実行が B2 であっても、ユーザーは A1 に移動できます (A1 が同じユーザーに割り当てられており、既に実行されていると仮定します)。

jBPM/Activiti でこの動作をモデル化するにはどうすればよいですか? 完了したタスクは実行チェーンから削除されるためですか?

これを可能にする他のワークフロー エンジンはありますか?

4

1 に答える 1

0

残念ながら、BPMN は意図的にステートレスであるため、これを実現するのは困難です。

あなたが にいて、Endに戻りたいとしましょうA1。これは、プロセス トークンがどういうわけか にテレポートしA1、 に流れB1、2 番目ANDに... ここで立ち往生していることを意味します。私が理解している限りでANDは、BPMN パラレル ゲートウェイを意味します。そして、出力トークンを生成するために一度に 2 つの入力トークンが必要になるため、それ以上先に進むことはできません。

おそらく、Finite State Machine と呼ばれる別のアプローチを適応させることができます。ワークフローを通過するドキュメント (コンテンツの一部、トークンなど) に、 、 などstateのいくつかの値のいずれかである属性があるとします。これに加えて、次の形式の遷移テーブルがあります。StartA1

from  | to
----------
Start | AND
AND   | A1
AND   | A2

したがって、あなたのシステムは が続くことを知っていANDますStart。この表は、非機能的な関係を定義しているため、実際には古典的な有限状態マシンを指定していません。つまり、図に示されているように、2 つ以上の状態から任意の状態をたどることができます。これをどのように実装するかはあなた次第です。おそらく、インスタンスの 2 つのコピーを作成するか、値のリストである結合された状態属性を使用できます。

とにかく、このアプローチでは、1) システムは状態を自動的に切り替える方法を知っています。2) 手動で切り替える UI を構築できます。

ワークフロー/ステート マシン ライブラリを使用する場合の選択は、プラットフォーム、プログラミング言語、および要件によって異なります。

于 2013-11-18T11:17:53.170 に答える