【RPA】UI Automation 対応状況/ツール別比較

RPAで画面を操作するにはいくつかの方法があります。その手法を大きく分けると「**1. 画面の座標上で操作する**」「**2. オブジェクトを画像認識して操作する**」「**3. UIを構造解析して操作する**」の3つに分類されます。

この中で一番望ましいのは、RPAが各UI要素の構造と関係性を理解して、少しくらい場所や見た目が違っていても確実に操作ができる3番目の方法です。しかし、アプリによってはこの方法がうまくいかなかったり、リモートデスクトップで画像転送しか使えなかったりという場合、画像認識や座標の方法を使って操作することになりますが、操作の確実性が落ちます。

よって、RPAソフトウェアがどの手法に対応しているかはとても重要です。また、RPAソフトウェアによってはマウス/キーボード操作からコマンドを生成できるレコーディングの手法に対応しているものもあり、これがあるとロボット作成がとても簡単になります。ということで、これらの点に絞って主要5大RPAソフトウェア (WinActor、BizRobo!、UiPath、Automation Anywhere、Blue Prism)の実力を比べてみたいと思います。

# UI構造解析とレコーディングへの対応状況 - ずばり比較！

* **レコーダー:** ロボット作成者が見本操作を行い、それをそっくりそのまま記録してコマンド化してくれる仕組み。ロボット作成者がストレスなく操作でき、対応するコマンドが再現性の高い形で生成されていれば👍とします。
* **UI Automation:** Windows が提供するUI構造解析 & 自動化ライブラリーに対応していれば👍とします。
* **レガシー:** 場合によってはUI Automationがうまく動かない場合があるので、MSAAやDOM、Spy++やSnoopなどUI Automationがラップしているレガシー技術を使うとうまくいく場合があります。過去との互換モードもある場合は👍とします。
* **画像認識:** OCRエンジンを積んで、UI要素を画像としてとらえ認識する仕組みがあれば👍とします。
* **座標:** 一番ベーシックな方法ですが、座標を元に操作する方法があれば👍とします。

|RPAソフトウェア|レコーダー|UIAutomation|レガシー|画像認識|座標|説明|
|:--|:--:|:--:|:--:|:--:|:--:|:--|
|WinActor|🔺|❌|🔺|👍|👍|5大RPAソフトウェアでは唯一UIAutomationライブラリーに対応していない。自動記録できる or 操作できるアプリとそうでないアプリが存在する。操作できないものは座標と画像認識による操作になるため、どうしても精度が落ちてしまう。|
|BizRobo!|🔺|🔺|🔺|👍|👍|クライアント/サーバーのJavaアプリケーションとは別にDesktop Automationサービスを走らせることでUIAutomationライブラリーの利用が可能[^1]だが、使い始めるまでの設定が大変、かつレコーダーも直感的にゼロからワークフローを作れるものではない。|
|UiPath|👍|👍|👍|👍|👍|レコーダーを5種類から選ぶことができ、それぞれ得意分野に応じて使い分けられる。(逆のいいかたをすると、それぞれの特徴を把握しなければならない。) UIAutomationはツリービューのビューアも提供。|
|Automation Anywhere|👍|👍|👍|👍|👍|レコーダーを3種類から選ぶことができ、それぞれ得意分野に応じて使い分けられる。(逆のいいかたをすると、それぞれの特徴を把握しなければならない。) UIAutomationやレガシー技術にも対応。|
|Blue Prism|❌|👍|👍|👍|👍|レコーダーがなく、ワークフローを手でくみ上げていく形式なのが惜しい。UIAutomationはツリービューのビューアも提供。|

[^1]: 実はMCもDSもJavaアプリケーションであり、[Java Service Wrapper](https://wrapper.tanukisoftware.com/doc/japanese/introduction.html)という仕組みを使ってWindows とUnixの両方に対応しているようです。ただし、UI構造解析ライブラリはWindowsのみの機能なので、Windows専用の別の仕組みを作る必要があったというのが経緯なのでしょう。

# 参考情報

* [UI Automationのススメ - MSDN Japan Platform SDK Support Team Blog](https://blogs.msdn.microsoft.com/japan_platform_sdkwindows_sdk_support_team_blog/2011/05/26/ui-automation/)
* [RPAを支える技術についての解説 - Qiita](https://qiita.com/RPAbot/items/9d87e9292ac2deded338)
* [どのようなアプリケーションを操作できるのですか？ - WinActor よくあるご質問 - FAQ詳細](http://www.matchcontact.net/winactor_jp/faq.asp?faqno=JPN00093&sugtype=0&logid=720223130&did0=2&dname0=%E6%8A%80%E8%A1%93%E7%9A%84%E3%81%AA%E8%B3%AA%E5%95%8F&did1=2,11&dname1=%E5%8B%95%E4%BD%9C%E7%92%B0%E5%A2%83)
* [自動記録できるアプリケーションについて - WinActor ユーザーフォーラム](https://winactor.com/questions/question/%E8%87%AA%E5%8B%95%E8%A8%98%E9%8C%B2%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/answer/14069/)
* [Cannot Select OneStream XF Buttons Through Desktop Automation - Kofax RPA Troubleshooting](https://knowledge.kofax.com/Robotic_Process_Automation/Troubleshooting/Cannot_Select_OneStream_XF_Buttons_Through_Desktop_Automation) (英語) - BizRobo! はKofax RPAのOEMですので、使用技術はこれと同じです。
* [UIAutomationアクティビティパックについて - UiPath Activitiesガイド](https://docs.uipath.com/activities/lang-ja/docs/about-the-ui-automation-activities-pack)
* [Automation Anywhere Enterprise 11LTS User Guide](https://usermanual.wiki/Document/AAE11LTSClientUserGuide.2005564117.pdf) (PDF、英語)
* [Robotic Process Automation with Blue Prism Quick Start Guide](https://books.google.co.jp/books?id=kC59DwAAQBAJ) (PDF、英語)

# 関連記事

* [【RPA】ロボット実行環境のOS対応状況/ツール別比較](https://qiita.com/Okura_/items/8975d6cd7ba0ff2ff61b)
* [【RPA】基本用語/ツール別比較](https://qiita.com/Okura_/items/2cb0dd2ce17356bb50ea)
* [【RPA】どのランタイム環境上で作られているか/ツール別比較](https://qiita.com/Okura_/items/a3f9393267e655e7300d)
* [【RPA】メールの送受信/ツール別比較](https://qiita.com/Okura_/items/369d95a938a05e836417)
* [【RPA】自動化に対する思想/ツール別比較](https://qiita.com/Okura_/items/1c8b29d40d98f2e5ce63)
* [【RPA】サーバー管理の仕組み/ツール別比較](https://qiita.com/Okura_/items/dfc380ec50df6b289391)
* [【RPA】トリガー・スケジュール機能/ツール別比較](https://qiita.com/Okura_/items/7d5e617260378fd2947f)
* [【RPA】ロボットの稼働方法 (ヒトロボ協働型・ロボ自律型)別ライセンス提供/ツール別比較](https://qiita.com/Okura_/items/e9c9f394ae5805481b2b)
* [【RPA】オブジェクト指向のロボット作成/ツール別比較](https://qiita.com/Okura_/items/923706e8f4c8e3628522)
* [【RPA】シンクライアント操作への対応/ツール別比較](https://qiita.com/Okura_/items/13de777603cd9912992b)
* [【RPA】SAP対応/ツール別比較](https://qiita.com/Okura_/items/b265ca3f083b92471b58)
* [【RPA】対応ブラウザー/ツール別比較](https://qiita.com/Okura_/items/8501117954139300f427)
* [【RPA】コーディング知識の必要度/ツール別比較](https://qiita.com/Okura_/items/71a577e2141591c88a33)
* [【RPA】ログイン情報の保管方法/ツール別比較](https://qiita.com/Okura_/items/12cdcc743670c6d9c7c7)