障害時に困らないRPAを作成するには

みなさん、こんにちは。RPA開発エンジニアのIです。
普段はWinActorの開発、運用保守を行っています。

RPAは、膨大な件数の処理を繰り返し行う業務や、データの更新作業等によく利用されます。

そして、RPAで障害が発生すると、
「〇時までになおしてください!」と緊急の保守依頼を受けることが多々あります。

緊急時に、迅速な対応を行うためにはRPAや顧客業務の理解度はもちろんですが、
障害時を想定した開発ができているかが重要です。

そこで今回は、【障害時に困らないRPA】について考えていきたいと思います。


【障害時に困らないRPA】は、下記3点が徹底されているものだと私は考えます。

①障害が発生した箇所の特定が容易である
②障害時の再実行が容易である
③最悪の場合(手動対応や取引先への連絡等)のフローをユーザが理解している

その中でも今回は
①障害が発生した箇所の特定が容易である」について掘り下げていきます。

RPAはフローによって、
エラーが発生した場所と、エラーが発覚する場所で差が出ることがあります。

どういうことか、今回は顧客要望の業務手順を実際の開発に落とし込んでいきます。

ここで、ファイルaaのDLに失敗した場合を想定してみましょう。
図1のフローでは、処理対象ファイルが存在しないため、④のタイミングでエラーが発生します。
その際の調査範囲は、赤枠で囲った部分になります。

このような作りでは調査範囲が大きく、
処理内容が不明瞭で、処理内容の詳細を確認する必要があります。
そのため障害箇所の特定に時間がかかります。

障害が発生した箇所を特定しやすくするには
 ・何を格納しているか、わかりやすい変数名を付ける
 ・ノードには何をしているか、処理内容を明確に記す
 ・同じシステムを使用する処理はなるべくまとめる
 ・処理時に必要なものだけが画面に表示されている
 ・エラーメッセージが複数用意されている
 ・エラー部分の詳細がわかる(ログや想定されるエラー部分のメッセージ)
などの対策が必要です。

上記を意識し、同じシステムを使用する処理はなるべくまとめ
処理内容がわかるよう記載しました。

フローを確認すればおおよその処理内容が把握でき、調査範囲も縮小しました。

まとめ
【障害時に困らないRPA】は、RPAシナリオへの理解度はもちろんですが
誰でも迅速に保守対応が可能なよう、
シナリオの流れや、想定されているエラーがわかりやすい開発を行うことが大切です。
開発時にはリリース後のことを考慮しましょう。