Tag Archives: 高速化

UiPathの動作高速化チューニング

UiPathの動作高速化チューニング ※2018.3よりUiPathがデフォルト日本語のアクティビティ名となりましたので、この記事では各アクティビティや機能名を日本語名(英語名)というように記載しています。 UiPathの動作を人に見せると帰ってくる反応のひとつとして、「もっと早く動かないの?」というのがあります。 実は十分な検証をすることができるのであれば、スピードアップにチャレンジすることもできます。 ここでは具体的にどのあたりをチューニングするかのポイントを解説していきます。 チューニングポイント1:操作系アクティビティ前後の待機時間   実はUiPathのマウス操作やキーボード操作はデフォルト設定でワンアクション(アクティビティ)ごとに、 前に0.2秒、後ろに0.3秒の、合わせて0.5秒遅延が入っています。(プロパティ>共通) 当然、これらは意味もなく入っているわけではありません。 これを短くすれば対象のアプリケーションによっては反応が追いつかなくなり、 ついにはUiPath側の動作が追い越してしまい、エラーになってしまうというリスクがあるからです。 逆に言うと十分な検証を行えば、最速で0秒の待機とすることもできます。 まずマウスクリックやキーボード操作を見ていきましょう。 こういったタイプのアクティビティには確実にプロパティで個の項目がありますので、 待機時間を前後合計0.5秒以下になるように設定していきましょう。 なお、これ以外のタイプ、例えばEXCELファイルの読み込み、 代入などのアクティビティにはこういった設定はありません。 この時にお勧めなのが、設定値を変数にすることです。 (ホントは設定ファイルでデフォルト値を一律変更できるといいんですけどね¨) これにより、デバッグモードの低速ステップのように、代入(Assign)アクティビティと組み合わせて、 一律動作速度を変更することができるようになります。 もちろん検証によってこの部分は待機無し、この部分は待機あり、 という細かいチューニングが必要な場合はこのやり方はお勧めできません。 チューニングポイント2:文字を入力(Type Into)アクティビティ 例えばファイルを保存するとき、フォームへ入力をするときなど、 文字を入力(Type Into)アクティビティでキーボードの自動入力操作が行われます。 この入力操作は大量の文字を入力することもよくあるので、 動作中の見た目は自動化しているな~というインパクトがありますが、 これが何千、何万件ともなってくると、塵も積もればで遅延の原因となります。 これを高速化するには2つの方法があります。 2-1.文字を入力(Type Into)プロパティで「入力をシミュレート」のチェックを入れる 1つ目の方法は文字を入力(Type Into)プロパティで「入力をシミュレート」のチェックを入れることです。 このチェックを入れている状態がこのアクティビティで一番早いキーボード入力をすることが可能な状態になります。 普段は人がキーボードを打っているような感じで文字が入っていくのですが、 このチェックが付いている場合は一瞬で全文字が入ります。 ※ちなみにもう一つ「ウィンドウメッセージを送信」というプロパティも入力方法を変更しますが、こちらは逆に一番遅くなります。デフォルトはどっちにもチェックが付いていません。 じゃあ全部「入力をシミュレート」だけでいいと思うかもしれませんが、 これにも一つ欠点があり対象によってはうまく動作しないことがあります。 具体的にはTabキーを押させたいときに「”k[tab]”」などの特殊な記載方法をしますが、 これがキーボードのキーとして認識されず、そのまま文字のk[tab]として打たれることがあります。 やっかいなことにちゃんと入力される部分(部品)もあれば、ちゃんとtabキーとして動作する部分もあるため、 先ほど説明した「検証が必要」という部分になります。 長文入力系処理の際にここがうまく動作すると、例えば1秒かかっていたものが0.5秒になるだけで、 遅延時間は件数×0.5秒となるわけですから、件数が多ければ多いほど見直す価値が出てくるということです。 2-2.クリップボードのコピー&ペーストで入力させる 2つ目の方法は「クリップボードに設定(Set To Clipboard)」アクティビティと、 「ホットキーを押下(send hotkey)」アクティビティを組み合わせる方法です。… Read More »