【UiPath】Try CatchとRetry Scopeを組み合わせたエラー対策
皆さんこんにちは。開発エンジニアのKです。
朝晩は徐々に過ごしやすい気温になって来ておりますが、日中はまだまだ暑い日が続いております。
皆さんいかがお過ごしでしょうか。
本題ですが、UiPathでのエラーが発生した時の対策の一つをご紹介させて頂きます。
Try CatchとRetry Scopeについて
Try CatchアクティビティはTry内に置かれたアクティビティでエラーが発生した場合、
Catchに移り、Catch内のアクティビティを実行します。
Retry Scopeアクティビティはスコープ内に置かれたアクティビティでエラーが発生した場合、
スコープの頭から再実行し直します。
組み合わせたエラー対策
①ReTry Scopeを配置
②ReTry Scope内にTry Catchを配置
※Try内は正常系の処理を配置します。
ここで注意すべき点は、Try内でエラーが検知されるとCatchに移りますが、エラーが発生したというフラグは
Catchを抜ける際にはフラグが無くなってしまう為、ReTry Scopeではエラーが発生した事を検知出来ず、再実行されずに後続処理が実行されてしまいます。
ではどの様にRetry Scopeまでエラー発生フラグ渡すかというと、
Catch内に再スローアクティビティを配置します。
再スローアクティビティはCatch内でのみ配置できる専用アクティビティで、Catchに移ったエラーを再度発生させる事ができます。
※ここではCatchの対象をException(全てのエラーが対象)に設定しています。
これらを組み合わせる事で
①Try内でエラー発生
②Catchに移行
③エラー時の処理を行った後、再スロー
④Retry Scopeがエラーを検知し、再実行
という流れのフローを作ることが出来ます。
今回ご紹介したエラー対策を組み込んだ例として、システムに情報を登録し、登録完了ページを確認するRPAだった場合、
①Try:システムに情報を入力し、登録ボタンを押下して登録完了ページを確認する処理
②Catch:エラー画面から入力ページに戻る処理と、再スローを設定
③Retry Scope:再スローを検知し、再度情報を入力する所から再実行
といったRPAを作成する事が可能となります。
また、このエラー対策を処理全体だけでなく、細かい処理毎に設定し安定性を高めるのもいいと思います。
いかがだったでしょうか?
皆さんのより良いRPA開発の手助けになれば幸いです。
最後までご覧いただきありがとうございました。