0

2 つの受信アクション (開始と終了) を持つワークフロー (添付画像) があります。両方のアクションは、WorkflowId パラメータで相関します。FinishWorkflow (bool) パラメータもあります。

Start Action でワークフローを開始し、FinishWorkflow パラメータが true に変わるまで待ちたいと思いました (FinishWorkflow アクションを使用)。

FinishWorkflow アクションが終了するとワークフロー全体が終了すると思うので、StartWorkflow アクションは待たずに FinishWorkflow パラメータをチェックします。ワークフロー全体が終了しないように FinishWorkflow アクションを変更する方法を知っていますか?

ティア

ここに画像の説明を入力

4

1 に答える 1

3

はい、あなたのシナリオは理解するのが少し難しいです。Start Workflow が Pick 内にあるのはなぜですか? ワークフローの開始操作をキャンセルしますか?

もちろん、ピックを完全に取り除き、ワークフローの開始 -> いくつかのことを行う -> ワークフローの終了のシーケンスを持つこともできますが、これは、図がシナリオを単純化しすぎているためだと思います。

おそらくあなたが自問すべきことは

私の Finish 操作を呼び出す人/コードは、プロセスが終了できること、または (実装方法によっては) 終了の呼び出しが失敗し、後で再試行する必要があることをどのように通知されますか? .

一方向のメッセージングを使用しているために上記のいずれにも当てはまらない場合、問題を解決する 1 つの方法は、条件を「FinishWorkflow = false」に設定して、FinishWorkflow を while ループ内に保持することです。 FinishWorkflow 変数が true に設定されています。その後、内部ピック、Branch2、遅延などを取り除くことができます。必要な唯一のピックは Start の後であり、分岐 1 には While が含まれ、その中に Finish があり、Branch 2 には計算コードが含まれます。完了すると、終了ワークフロー変数が true に設定されます。

Receive アクティビティは現在のブランチをブロックしてメッセージを待機するため、値をチェックし続けるために遅延は必要ありません。なし。非常に高価で、スケーラブルではありません。

于 2012-02-27T01:49:56.010 に答える