「キャンセルスコープ」アクティビティの使い方を紹介します。
公式ドキュメントは以下をご参照ください。
仕様
Bodyセクション内のアクティビティを実行中にキャンセル(UiPathの実行を停止)された場合、
CancellationHandlerセクション内のアクティビティを実行して処理を終了します。
実際に動かす
Bodyセクション内にDelayアクティビティを置き、ここでキャンセル操作を行います。
検証のため、CancellationHandler内とキャンセルスコープを抜けた先にログ出力を置いています。
実行結果(キャンセルした場合)
CancellationHandleセクション内のログは出力されていますが、
キャンセルスコープを抜けた先のログは出ていません。
実行結果(キャンセルしなかった場合)
CancellationHandleセクション内のログは出力されていませんが、
キャンセルスコープを抜けた先のログは出ています。
キャンセルした場合と逆ですね。
Finally(TryCatch)との比較
ちなみにキャンセルされた場合の動作は「トライキャッチ」アクティビティのFinallyセクションと同じです。
キャンセルされた場合の動作は同じですが、
Finallyはキャンセルされなかった場合も実行されるのに対して、
キャンセルスコープはキャンセルされなかった場合は実行されないという違いがあります。
用途によって使い分けましょう。
動作環境
UiPath.System.Activities 22.10.3