#1.はじめに
みんさんにこんにちは。
UiPathで開発をやっていると、ロジックはあっているのに何故か動かないなんてことを
経験することがあります。
原因はいろいろ考えられますが、まず私がUiPathを始めたばかりの時に、
対処に若干てこずらされたことを紹介したいと思います。
ここを意識して開発ができていれば、もっと楽に開発が進められただろうなと思う
内容を紹介します。
UiPathのクセのような部分ですね!
これからUiPathを始めるという方や、始めたての方に
役に立ったらうれしいです。
#2.Simulate,SendWindowMessage,Defaultの設定
まずはベタなところから。
クリックアクティビティーなどを使用する際に、選択可能なプロパティーに、
Simulate,SendWindowMessage,Defaultがあります。
特に意図がなければSimulteを使用することをお勧めします。
ですが、システムによっては、SimulateやSendWindowMessageでは
動かないシステムも存在しています。
これらのプロパティーを持つアクティビティーでエラーが出てしまったら、
扱うシステムに対してSimulate,SendWindow,Defaultのうち動作する設定になっているか
確認してみてください。
以外と、UiPathを始めたての時は、いろんな原因を考えてしまい、
Simulate,SendWindow,Default設定をミスっていることに気づかなかったりします。
Simulate,SendWindow,Defaultの設定を選べるアクティビティーを
使用するときはまず、これらの設定が正しいことを初めに確定することをお勧めします。
ちなみに、TypeIntoアクティビティーで、SimulateがNGだと下記のようなエラーが
でました。
Source: Type Into SimulateTest
Message: The target element is disabled. Set 'AlterIfDisabled' to 'True' to enable interaction with disabled elements.
Exception Type: UiPath.Core.ElementOperationException
#3.WaitForReadyの設定
次は、WaitForReadyですが、こちらもクリックアクティビティー、TypeInto等の
アクティビティーのプロパティー項目として存在します。
WaitForReadyは、Complete、Interactive、Noneの3つが選べます。
一般的には、動作が安定しやすいため、
Complete(対象画面のUI要素がすべて表示されてから動作を行う設定)を
使用することが多いのではないかと思います。
現場によっては、Completeを基本設定とするルールがあると思います。
しかし、こちらはCompleteにしていると、処理が全く先に進まないことがあります。
何故なら、処理対象画面が完全に表示されているように見えて、
ロボットでは表示されていない判定をすることがあるからです。
(詳細な原因はわかりませんが、レスポンス系統に不備のある業務システムでよく発生する印象です。
例えば、画面の一部がまれにうまく表示されないシステムなど(笑))
この場合は、WaitForReadyをInteractiveもしくはNoneに変更すると、正常に動作します。
何故か動作が先に全く進まないけど、エラーも出ない場面に直面した時は、WaitForRedyの設定を疑ってみてください。
#4.SendHotKeyアクティビティーのDelayBefore,DelayAfterの設定
指定したキーを入力するアクティビティーである、SendHotKeyを使用している時、
何故かうまくキーが入力されないということがあります。
そんな時には、DelayBefore,DelayAfterに500msec程度(任意)を設定してみると良いと思います。
そうすると、無事入力されるという現象に多々遭遇しました。
予測として、ロボットのキー入力の動作が速すぎて、うまくシステムに入力されない現象が存在
していると考えています。
ルールとして、SendHotKeyのDekayAfterとDelayBeforeには500msec程度を
設定して使用すると決めておいても良いかと思います。
#5.まとめ
まだまだたくさんのUiPathプロパティー周りのクセがあるような気がしますね、、、
全部は紹介しきれていませんが、
ここで紹介したことが、初心者の方の開発の後押しになれば幸いです。