Enterprise Blue Ocean ◮

神谷町RPAブログ

  • Blue Prism 初級者向け
    • Blue Prism を 無料で利用する 方法はこちら
    • Blue Prism の Blue Prism 事始め!オンボーディングの記事はこちら
    • Blue Prism で Excelを操作 する記事はこちら
  • Blue Prism、ちょっと進んだコンテンツ☆
    • Blue Prism の ベストプラクティス 記事はこちら
    • Blue Prism の 逆引きナレッジ wiki こちら
    • Blue Prism を リアルタイムで起動する 方法はこちら
  • RPA、そもそも論!
    • Youtube で、あらためて振り返る RPA とは?・・・はこちら☆

Blue Prismで例外処理を扱う(超入門)

あらゆる業務には例外処理がつきものです。
これはRPAだろうが何だろうが一緒です。自動化の仕組みの良し悪しは、例外処理の巧拙で決まる…といっても過言ではないと思います。

…しかし同時に、例外処理って、わかりにくいイメージがありますよね
私もかつてJava技術者(戦闘力的には、ショッカーの戦闘員並みだったけど。。)だった時期がありますが、正直、例外処理ってわかりにくいな、考えるの面倒だな、と思っていました。
キャッチできるとかキャッチできないとか、ビジネス例外だとかシステム例外だとか、いろいろややこしかったので。。

qiita.com

重要だけどややこしい、ややこしいけど重要だ…例外処理は、Blue Prismにおいても(残念ながら?)避けては通れない考え方です。
超入門の位置づけで、まずは軽く整理したいと思います。

 

超基本形① ThrowとCatch

まずは超基本形で、例外を発生させ、それをキャッチしてみます。
Blue Prismでは以下のようになります。

f:id:EnterpriseBlueOcean:20180705181632p:plain

あくまで私見ですが、例外ステージが、JavaでいうThrowだと思えばよさそうです。Throwする例外も、既存から選択または新規定義が可能です。
Catchにあたるのが、復元ステージと再開ステージのようです。両者の違いは開始と終了ですね。

f:id:EnterpriseBlueOcean:20180705181706p:plain

 

超基本形② Catch節の定義

復元ステージと再開ステージの間は、例外処理が可能な状態として扱われます(リカバリーセクション)。
発生した例外の型や発生場所、詳細情報を取り出せます。

f:id:EnterpriseBlueOcean:20180705181744p:plain

 

超基本形③ Try-Catch

ブロックステージを使うと、JavaでいうTry-Catchも定義できます。

f:id:EnterpriseBlueOcean:20180705181810p:plain

ブロックステージで囲むと、Try節で囲ったことになり、ブロックステージの中の復元ステージが(Try節に対する)Catchの開始となります。

f:id:EnterpriseBlueOcean:20180705181853p:plain

 

超基本形④ 例外の種類に応じて、処理を分岐させる

以上を組み合わせると、以下のように、Try節の中で発生した例外の種類に応じて、処理内容を変えることができるようになります。

f:id:EnterpriseBlueOcean:20180705181943p:plain

 

動かしてみる

以下のような動きになります。

  1. ブロックステージの中で例外(Sample)を発生させます
  2. ブロックステージの中で例外が捕捉されますが、例外の種類がSystem Exceptionでないとブロックステージを抜けられないようになっています
  3. 例外の種類がSystem Exceptionでない場合、System Exceptionを改めてThrowし、再度、ブロックステージの中で捕捉されます
  4. 例外の種類がSystem Exceptionなので、ブロックステージを抜けます

やったぜ。

 

まとめ

例外処理は重要ですが、ややこしい概念です…つまり、業務的には必須の処理です。
Blue Prismは、例外処理をJavaと似た形で、画面(GUI)でグラフィカルに定義可能です。
復元ステージと再開ステージ(つまり、Catch節の始点と終点)はセットで考えておくべきです。再開ステージで閉じずに、例外ステージで再Throwすると上位の復元ステージに飛ばされてしまいます。
なんかJavaとBlue Prismが混ざった記事になってしまった。。