Windows(非レガシ)プロジェクト、UiPath.System.Activities 24.10.4を使用しています。
「並列繰り返し(コレクションの各要素)」で並列実行するシーケンス内で、「繰り返し(前判定)」または「繰り返し(後判定)」を並列実行中、一つの実行内で「繰り返しを終了」を行うと、他の実行内で、当該繰り返しアクティビティが繰り返し条件に関わらず繰り返されません。
これはバグでしょうか?
ワークフローの画像を貼ります。
2つ並列実行しています。
並列実行1(parallelIdx=0)内では、繰り返しアクティビティを一回でbreakし、並列実行2(parallelIdx=1)内では繰り返しアクティビティを繰り返すように設計していますが、私の検証では並列実行2において繰り返しは1~2回しか行われません。
こんにちは
各実行シーケンスのDoWhileの判定がどこか一つのBreakに引っ張られて条件判定でExitするような感じですね。
ParallelForEachは疑似的な並列処理なので、そのあたりの処理がうまく動作しないのかもしれません。
ワークアラウンドとしては、内部のロジックを別ファイルに切り出して、ワークフロー呼び出しファイルアクティビティで分離オプション付きで呼び出すと動作すると思います。(別プロセスで動作しますので、疑似的でない並列処理になります)
ありがとうございます。
仰る通りだと思います。
当初不可解な挙動に悩みましたが、おそらくBreakアクティビティ関係にバグがあるように思います。
とりあえずBreakアクティビティを使用しないことで正常動作しております。
