【UiPath】ユーザー入力ブロックについて


RPAの基本的なルールに「RPA実行中/動作中にパソコンをいじらない」という大原則があります。

これは、RPAでクリック動作やキーボード入力操作をしているにもかかわらず、マニュアル操作が行われることで、ロボットがエラーを起こしたり、予期せぬ動作をしたりするためです。


インシデントの原因として非常によく上がるヒューマンエラーとなります。

通常、運用中のルールとして「RPA稼働中にPCをいじるな」と徹底することで運用回避することが多くなっています。


しかし、これを絶対的に回避する策はないでしょうか。

一つのソリューションとして、UiPathには「ユーザー入力をブロック(BlockUserInput)」アクティビティが存在します。


このアクティビティはExcelアプリケーションスコープ(Excel Application Scope)などと同様の範囲アクティビティとなっており、

このアクティビティスコープ内でのみマウスやキーボードの操作を無効化します。


なお「プロパティ-入力-ブロック」には「All / Keyboard / Mouse」の選択肢があり、

それぞれ「すべての操作 / キーボードのみ / マウスのみ」操作を無効化することができます。


このアクティビティには実装するうえで重大な注意点があります。

それは、メッセージボックス(Message Box)アクティビティなど、タイムアウトしないアクティビティを利用すると永遠に操作不能に陥る可能性があることです。


そもそも、このアクティビティの終了条件は、「ブロック解除のショートカットキーを入力する」または「ブロックがタイムアウトする」または「ブロック範囲内のアクティビティがすべて完了する」ことのみです。

しかし、上記のようなアクティビティにはタイムアウトがありません。

従って、表示されているメッセージなども全く操作できないし、誰かがショートカットキーを入力するまで永遠に操作を受け付けない状態となってしまいます。



このシナリオを見てください。

「ユーザー入力をブロックアクティビティ」内でメッセージボックスを出しています。

これを実行すると、Alt + F10を押すまでの間、以下のメッセージボックスが出たまま何の操作もできない状態が永遠に続きます。

ユーザーがショートカットキーを知らなかったら……考えると恐ろしいですね。

また、動作の考え方を分かりやすくするため、以下のシナリオもご覧ください。

先にも述べた通り、「ユーザー入力をブロックアクティビティ」はそのスコープ内でのみ有効となります。

従って、このシナリオを実行すると、ログに「1」「2」と表示される間、全く操作ができません。

その後、設定した「ユーザー入力をブロックアクティビティ」のタイムアウト時間を待つことなく操作が可能となった状態で待機し、「3」と表示されることなります。


想定される使い道として、絶対にマニュアル操作で誤作動をさせたくない場面(送金などの業務を扱う場面など)でごく一部に限り使用できるかもしれませんが、

実務的にはあまり頻繁に使いたくはないアクティビティであるように思えました。


なお、本アクティビティはUiPath 2018.3バージョンから導入されたばかりのアクティビティであり、

それ以前のバージョンでは利用できませんのでご注意ください。


参考リンク:UiPath Activitiesガイド

https://activities.uipath.com/lang-ja/docs/block-user-input