残念ながら、BPMN は意図的にステートレスであるため、これを実現するのは困難です。
あなたが にいて、End
に戻りたいとしましょうA1
。これは、プロセス トークンがどういうわけか にテレポートしA1
、 に流れB1
、2 番目AND
に... ここで立ち往生していることを意味します。私が理解している限りでAND
は、BPMN パラレル ゲートウェイを意味します。そして、出力トークンを生成するために一度に 2 つの入力トークンが必要になるため、それ以上先に進むことはできません。
おそらく、Finite State Machine と呼ばれる別のアプローチを適応させることができます。ワークフローを通過するドキュメント (コンテンツの一部、トークンなど) に、 、 などstate
のいくつかの値のいずれかである属性があるとします。これに加えて、次の形式の遷移テーブルがあります。Start
A1
from | to
----------
Start | AND
AND | A1
AND | A2
したがって、あなたのシステムは が続くことを知っていAND
ますStart
。この表は、非機能的な関係を定義しているため、実際には古典的な有限状態マシンを指定していません。つまり、図に示されているように、2 つ以上の状態から任意の状態をたどることができます。これをどのように実装するかはあなた次第です。おそらく、インスタンスの 2 つのコピーを作成するか、値のリストである結合された状態属性を使用できます。
とにかく、このアプローチでは、1) システムは状態を自動的に切り替える方法を知っています。2) 手動で切り替える UI を構築できます。
ワークフロー/ステート マシン ライブラリを使用する場合の選択は、プラットフォーム、プログラミング言語、および要件によって異なります。