【RPAロボット】安定性から更に一歩!再実行の重要性について考えてみよう!

皆さんこんにちは。RPAエンジニアのTです。

夏真っ盛りですね。(このブログは8月に書いています)
セミの鳴き声でめまいがしそうな今日この頃です。
熱中症に気を付けて猛暑を乗り切っていきましょう!

さて、今回はロボットの再実行の重要性についてお話しようと思います。
再実行の重要性を語る前提として、まずロボットの安定性について説明します。

■ロボットの安定性について

他のブログでも触れられていますが、ロボットのワークフローに実行したい操作を
単純に並べただけでは動作が安定しないことがあります。

これには以下の様な原因が考えられます。

・ロボットの操作間隔が早すぎる。
 例)アプリケーションの起動が完了する前に操作を行ってしまいクリック操作が安定しない。
・実行毎にロボットの認識内容が異なる。
 例)Webサイトの表示内容がロボットの実行毎に異なる名前で認識されクリック操作が安定しない。

基本的にこのような要因はロボットの問題であり、ロボットのワークフローでの考慮や設定によって回避することができます。

しかし、以下のような場合はどうでしょうか?
・ネットワークの障害によりファイルを開く事ができなかった。
・端末の負荷によりロボットの操作が受付られなかった。

これはロボットの問題ではなく外的要因によってロボットが正常に稼働できないケースです。

起因が外的要因であるためロボットで回避することは非常に難しいです。
ここからが再実行についてのお話になります。

■ロボットの再実行について

ロボットが異常終了してしまった場合、ワークフローの作りやロボットの設計によって再実行の可否が異なります。

たとえば以下のようなロボットはどうでしょうか?

例1のように①②の操作を順に実施するロボットがあり、何らかの外的要因で②の操作が失敗したと仮定します。

ロボットの初回稼働時に①の操作(ファイル保存)を実行済みなので、再実行時には①の操作には上書き保存が必要となります。
ファイルの上書きを想定していないロボットだと、想定外の警告メッセージ等に対処できずエラーが発生してしまいます。

初回稼働時に作成されたファイルを手動で削除することで再実行することもできますが、
②の操作がファイルの保存・上書き保存の両方に対応しているとより再実行操作が簡単になります。

例1は再実行を考慮したワークフローの作りについてでしたが、以下の例2はどうでしょうか?

例2のように①~⑤の操作を順に実施するロボットがあり、何らかの外的要因で④の操作が失敗したと仮定します。

ロボットの初回稼働時に③の操作(システムへの登録)を実行済みなので、再実行するとデータを二重に登録してしまいます。

例2の状況をロボットの再実行で対処できないのは、
再実行可能な操作とそうでない操作が1つのロボットにまとめられていることが原因と言えます。
例2のような状況でも再実行で対処可能なロボットを作成するためにはどのような考慮が必要でしょうか?

考え方として以下例③のようにロボットを再実行可能な単位で機能分割した構成にする方法があります。

このようなロボットの構成であれば、⑥で例外が発生した場合でもデータの二重登録を回避しつつ、
ロボット2だけを再実行することができます。

■ロボットを機能ごとに分割するメリット・デメリット

ロボットを機能ごとに分割することで例外発生時に必要な操作を部分的に再実行できるようになります。


しかし、複数のロボットに分割したことで発生するデメリットもあります。
例2と例3を比べてみると、例3の④⑤の操作は例2には存在しません。

これは例3が2つのロボットで構成されているため、
各ロボットをそれぞれ単体で実行できるようにするため追加されている操作だからです。
操作が増えるということはロボットの稼働時間が長くなってしまいます。

如何でしょうか。
ロボットを作成する上で安定性は必須ですが、例外発生(エラー)を完全に無くすことはできません。
もしもに備えて再実行で対処できるロボットの構成にしておくことが、運用負荷のを低減につながるのではないかと思います。

最後までお読みいただきありがとうございました。