UiPath担当のChewbaccaです。
「ユーザー入力をブロック」アクティビティがあるって事を知りましたので、使用感をまとめてみたいと思います。
はじめに
ロボットの実行中にはパソコンの操作は控える必要があります。
これは、ロボットによるクリックやキーボード操作に干渉していまい、意図しない動作やエラーが生じる可能性がある為です。
ただ、状況に応じて、人の判断を必要とする伴走型のロボットを実行する際には、どうしてもパソコンを操作する必要があります。
そういった場面で、「ユーザー入力をブロック(Block User Input)」アクティビティの出番となります。
「ユーザー入力をブロック」アクティビティはExcelアプリケーションスコープ(Excel Application Scope)等と同様のスコープ型のアクティビティとなり、スコープ内でのみマウスやキーボードの操作を無効化する事ができます。
ですので、以下の様にユーザー操作禁止ブロックと操作可能ブロックを切り替えながら処理をするロボットを作成する事が可能となります。
設定方法
アクティビティの設定は簡単です。
この様に、解除するキーを設定して、ブロックの対象となる処理を配置するのみです。
なお、プロパティの「入力→ブロック」に「All / Keyboard / Mouse」の選択肢があるので、無効化したい処理を選択する事もできます。
注意点
一見、便利で簡単に設定できるので気軽に実装してしまいがちですが、注意点があります。
「ユーザー入力をブロック」アクティビティですが、スコープ範囲内のアクティビティがすべて完了するか解除キーを入力するまでユーザーによる操作ができなくなります。
その為、この様に「ユーザー入力をブロック」内に「メッセージボックス」などのユーザーの応答を要するアクティビティをタイムアウトの設定なしで配置すると、解除キーを入力するまでパソコンが操作不能となり、解除キーを知らないユーザーが実行した場合には固まってしまいます...
「ユーザー入力をブロック」のプロパティにタイムアウトの設定箇所はありますが、設定時間経過後に操作可能になるわけではないので、タイムアウトによる回避も不可です。
また、デバッグの際にもアクティビティが有効になるのでデバッグ完了後に配置する事をおすすめします。
まとめ
いかがでしたでしょうか。
使い所の選択や運用をきちんと整理しておく必要はありますが、かなり使える機能だと思いますので、是非使用を検討して頂ければと思います。