1

2 つの並列タスクが 2 つの独立したフォームを検証する BPMN プロセスをモデル化したいと考えています。いずれかのフォームが無効な場合は、お客様に電話して新しいフォームをリクエストする必要があります。問題は、フォーム 1 とフォーム 2 について別々に顧客に電話したくないということです。両方のフォームが無効な場合は、一度だけ電話したいのです。

顧客への電話タスクがスケジュールされる前に、両方の検証が完了しているかどうかを確認する方法はありますか?

次に、別の質問があります - 顧客に電話がかかってきた後、どうすればプロセスを再開できますか? 1 つのフォームが無効な場合は、新しいフォームを受け取ったときに対応するフォーム検証プロセスに再入力したいと思います。両方が無効な場合は、両方のサブプロセスで再入力を行う必要があります。

重要な場合は、これを実装するために Activiti を使用しています。

BPMN スケッチ

編集

各プロセスの検証タスクは数日離れている可能性があり、他のサブプロセスの検証のためにサブプロセスをブロックしたくありません。サブプロセスが検証を超えて継続し (有効な場合)、両方の検証タスクが完了した (少なくとも 1 つが無効である) 場合にのみ顧客の呼び出しが行われるソリューションを探しています。

4

3 に答える 3

1

さて、ここでの根本的な問題は、有効/有効、無効/有効、有効/無効、無効/無効の 4 つの状態があることです。ここで、valid/valid を無視することができます。これがハッピー パス モデルであり、その方法を既に知っているからです。では、無効なオプションに対して何ができるでしょうか。

私が得ることの1つは、他のフォームがまだ検証されていない場合でも、フォームが有効になった後、続行するには「次のステップ」が必要だということです。あなたがやりたいことは、単に無効を処理するためのプロセスを変更することだと思います。イベントゲートウェイが私たちをそこに連れて行くかもしれないと思います。

現在、私の経験は、Activity ではなく、ほとんどが IBM BPM であるため、この回答が有効な BPMN ではない可能性がありますが、有効だと思います。基本的に私が想像するのは、最初の分割が実際には 4 方向の分割であることです。フォーム用に 2 つ、イベント ゲートウェイ用に 2 つ。これらのイベント ゲートウェイは、各フォームが「有効」または「無効」のメッセージを送信するのを待機しています。両方の回答が受信されると、次のステップが単にフローのその部分を終了することなのか、それとも有効性を修正することなのかがわかります。

IBM BPM では、そのモデルは大まかに次のようになります (申し訳ありませんが、私の Activiti VM は現在ダウンしています)。

BPMN ダイアグラム

私は以前に図を試したことはありません。そのリンクは - http://imgur.com/pEHY9uO

于 2014-05-20T22:03:45.123 に答える
1

Drux のソリューションを拡張するために、Activiti Modeler を使用して次の図を作成します。

並列評価

ここでは、両方のフォームのフォーム検証後にシグナル イベントが送信されます。イベントがキャプチャされて相互に関連付けられ、電子メールを顧客に送信する必要があるかどうかが判断されます。

下の図には示されていませんが、フォームに両方のステータスがあるということは、必要に応じて、1 つまたは両方のフォーム サブプロセスへの再エントリをトリガーできることを意味します。

お役に立てれば。ガーリーBP3

于 2014-05-21T16:10:26.623 に答える
0

検証を並行して実行し、2 つのパスを並行ゲートウェイでマージできます。BPMN では、マージ パラレル ゲートウェイはすべての着信フローを待機します。2 番目の質問については、いくつかの専用ゲートウェイを簡単に利用できます。テキストの説明に基づいたプロセスの例が添付されています。有効な BPMN です。ただし、私は Activiti の専門家ではないため、Activiti 固有の問題があるかどうかはわかりません。ここに画像の説明を入力

于 2014-05-20T13:18:28.537 に答える