MonitorEvents(イベント監視)の終わり方

Excelファイルの更新をトリガーにしてロボを起動・実行するワークフローを組んでいます。
File Change Trigger(ファイル変更トリガー)をMonitor Events(イベント監視)の中に配置してロボ自体は問題なく動きます。

Excelファイルの更新に対し、1回だけ反応すればよいのであれば、ContinueOnError(無限に繰り返す)をFalseにすれば、1回実行しただけで終了するのはわかります。しかし、想定しているロボは1回だけではなく1日のうち任意の時間までずっとロボを起動させておき、複数回同様の処理を行った上でロボを終了としたいのですが、ロボはずっとExcelの更新を待って起動しています。

現在Monitor Events(イベント監視)の中にifを入れ、更新されたExcelの指定のセルが任意の文字でなかった場合(False)は、後続の処理を実施し(別のワークフローにインボークします)、任意の文字であった場合(True)はTerminate Workflow(ワークフロー終了)に進み、強制的に終了する、という流れを組んでいますが、実際はTrueであった場合はMonitor Events(イベント監視)を抜け、ロボ終了にあたっての後続処理を行った上で終わりにしたいのが本音です。

もしかしたら何か機能面で見落としていたり、本来の使い方ではないのかもしれませんが、皆様のお知恵を拝借できればと思い投稿する次第です。

よろしくお願いいたします。

美しくないかもですが、、、
[Monitor Event]自体をTry-Catchで囲ってしまい、終了判定のところを[Terminate Workfow]ではなく[Throw]で例外を発生させ、Catch節で後続処理~終了に流すのはいかがでしょう?

こんにちは

やり方はいろいろありますが2案ほど

1.Whileループの中にMonitorEventを配置
RepeatForeverはFalse
img20190315-1

  1. ParallelアクティビティのCompletionConditionをtrueにした上で
    左側にMonitorEvent を配置 RepeatForeverはTrue
    右側に終了判断用のループ

いかがでしょうか?

1 Like