LoginSignup
34
63

More than 3 years have passed since last update.

【まるでUiPathのオープンソース版!?】OpenRPAをセットアップしてみる

Last updated at Posted at 2020-03-04

RPA (Robotic Process Automation)ソフトウェアは、5大ソフトウェア (WinActor、UiPath、BizRobo!、Automation Anywhere、Blue Prism) 以外にも、国産、海外モノ、有料版、無料版など様々な種類が存在し、30~40くらいはあるようです。そんな中で2019年にリリースが開始されたオープンソースの無料RPAソフトウェアであるOpenRPAが、面白そうだったので取り上げてみることにしました。そして、実際にインストールして試してみた感想を書きました。

OpenRPAとは

OpenRPAは2019年にデンマークで配布が始まったオープンソースのRPAソフトウェアで、UI Automationと呼ばれるユーザーインターフェイス要素を分解できるAPIを使った、セレクターによるUI操作や、バックエンドサーバーの機能もOpenFlowと呼ばれるソフトウェアで提供している、無料RPAソフトウェアとして割と機能がそろっている部類の製品です。英語をはじめとしてオランダ語、ドイツ語、ポルトガル語、中国語などに翻訳がされているようです。(日本語はない)

OpenRPAのウェブページ:
https://openrpa.openrpa.dk/
image.png

ウェブページからは最新のバイナリファイルがダウンロードできるほか、GitHubにリポジトリがあり、そこでソースコード開発がされています。

OpenRPAソースコードのリポジトリ:
https://github.com/open-rpa/OpenRPA

OpenRPA Wikiページのリポジトリ:
https://github.com/open-rpa/openrpa/wiki

サーバー機能であるOpenFlowのリポジトリ:
https://github.com/open-rpa/OpenFlow

OpenRPA User Guide - YouTube

OpenRPAの特長

  • レコーディング機能、基本的なデバッグ機能、セレクターウィンドウによるユーザーインターフェイス要素分解、および約50の基本的なアクティビティを含む100弱のアクティビティを実装している。
  • Microsoft Workflow Foundation をベースに作成されている。(UiPathと同様)
  • RDAとしてデスクトップ版のみ、もしくはOpenFlowと組み合わせてサーバー版としても動作する。サーバー版はリモート管理、状態・プロジェクト・ワークフローのリモートからのハンドリングが可能。データやファイルの保存を中央集中管理が可能。アクセス制御リストによる防御、EAS265による暗号化が可能。
  • Windowsアプリ、Internet Explorer、Javaアプリ、Chrome/Firefoxの操作が可能。画像認識/OCRの機能1も持つ。
  • 拡張可能なプラグインモデルを取っている。

実際にセットアップしてみた

ウェブページからダウンロードモジュールを入手します。(2020年3月頭現在、v1.0.81、240MBくらい)
image.png
デジタル署名がされていないので、ダウンロードして実行する際に、何度かWindows Defender等のセキュリティソフトにブロックされることがあるので、都度解除します。

インストーラーを起動します。「Next」ボタンをクリックして進めていきます。560MBが必要なディスク容量です。
image.png

インストール先を聞かれるので、そのまま「Install」ボタンをクリックします。
image.png

インストールが進行していきます。終わったら「Close」ボタンをクリックします。
image.png

Windowsのスタートメニューにもアイコンが追加されます。
image.png

初回起動とサインアップ

アイコンをクリックすると、OpenRPAの開発環境が起動します。
image.png

初回起動時には登録を求めるダイアログボックスが表示されるので、登録を行いサインインします。
image.png

その後、リボンの「Settings」タブを見てみると、Chrome/Firefoxブラウザープラグインのダウンロードを行うページへのリンクや拡張機能 (パッケージ)マネージャへのリンクがあるので、必要なものをインストールしておきましょう。パッケージマネージャーではOpenRPA本体の最新版への更新も可能です。
image.png

Chromeプラグインのダウンロードページ:
image.png

Package Manager:
image.png

新しいプロジェクトを作ってみる

さて、さっそく新しいプロジェクトを作成してみましょう。リボンの「General」タブから「New」-「New Project」を選択します。
image.png

プロジェクト名を聞かれるので、適当な名前を付けます。
image.png

すると以下のように、新しいワークフローが作成され、シーケンスを作成していく画面となります。ここで面白いのは、OpenRPA自体は英語であるにもかかわらず、UIの一部は日本語になっていることです。これはMicrosoft Workflow Foundationのコンポーネントを使っているところがあるからなのでしょう。それにしても、UiPathにそっくりな画面ですね!
image.png

そしてなんと驚くことに、右クリックのコンテキストメニューも日本語が表示されます。
image.png

変数の作成画面も日本語です。ここもUiPathとそっくりですね。(Microsoft Workflow Foundationのコンポーネントを使っている)
image.png

アクティビティの一覧

画面左側の「Toolbox」パネルを表示させると、約100のさまざまなアクティビティが用意されています。
以下がアクティビティの一覧です。
image.png

レコーディングを使ってみる

レコーディング機能も備わっているので、使ってみることにします。

  1. デザインパネルのキャンバスの中で、シーケンスをクリックして選択します。
    image.png
  2. リボンの「Record」ボタンが有効になるのでクリック、レコーディングが開始されます。
    image.png
  3. いま、「Minimize」がONになっているため、OpenRPAのウィンドウが最小化され、タスクトレイに入ります。(ESCキーを押すと、レコーディングモードを終了します。)
  4. Windowsタスクバーの検索ボックスをクリックして、「Wordpad」とキー入力します。検索結果がスタートメニューに表示され、「ワードパッド」のアイコンが表示されるので、マウスでクリックします。
    image.png
  5. ワードパッドが起動しました。
    image.png

ここまででESCキーを押して、レコーディングモードを終了します。すると、シーケンスの中に、ワードパッドを起動するワークフローが記録されていることがわかります。OpenRPAでは、UiPathなどの主要RPAソフトウェアで実装されているようにマウスカーソルでポイントしたウィンドウやUI要素がハイライトされるというしくみが既定ではONになっていません。そのため、レコーディングモードであることが多少わかりにくいですが、レコーディングはきちんと行われています。(「Settings」リボンの「Recording Overlay」をONにすると、マウスカーソルの移動に伴ってUI要素が緑色でハイライトされるようになっています。ただUiPathやAutomation Anywhereなどと比べると、ハイライトできるところが少ないようです。)
image.png

レコーディングされたワークフローの要素を見てみる

それではレコーディングされたワークフローの中身を見ていくことにします。

Windows検索ボックスを選択する部分

シーケンス内の最初のアクティビティである、検索ボックスのクリックですが、これは「GetElement」アクティビティとして配置されています。コントロールのプレビュー画像と、「Open Selector」「Highlight」のボタン、そして中に入れ子で「ClickElement」アクティビティがあります。
image.png

「OpenSelector」ボタンをクリックすると、セレクターのウィンドウが表示され、UI要素の詳細がJSON形式などで表示されます。これもUiPathにそっくりですね。
image.png

「Highlight」ボタンをクリックすると、コントロールが表示されている場合は、該当する部分が赤くハイライトされます。今回の場合はWindows検索ボックスの部分が赤くハイライトされます。
image.png

GetElementアクティビティのプロパティを見てみると、日本語で表示されています。プロパティの中にはVB式も書けるようです。
image.png

検索ボックスにキーワードを入力する部分

次のアクティビティは「Wordpad」と文字入力をする部分ですが、これは「TypeText」アクティビティとして実装されています。TypeTextでは特別なキーを押す場合も含めて特別な文法があるようです。
image.png

プロパティのTextの詳細を開いてみます。
image.png

すると「式エディター」に詳細なテキストが表示されます。
image.png

実行してみると...

ワークフローをリボンの「Save」ボタンで保存した後、「Play」ボタンをクリックして実行してみましょう。
image.png

すると、検索ボックスへのキーワード入力のところで最初の1~2文字が落ちてしまいました。調べてみると、直前のClickElementアクティビティのPostWaitプロパティで1秒程度のウェイトを設定することで、キーストロークを落とさずに入力できることがわかりましたので、このウェイトを設定します。

すると、スタートメニューで「ワードパット」アイコンが表示されるところまではいきました。ただ、最後のクリックされて起動するところまではうまくいきませんでした。

このように、シナリオによっては、レコーディングされた内容を微調整する必要がありそうです。

感想

以上、ざっと触ってみましたが、ユーザーインターフェイスや操作方法、実装はかなりUiPathに似ており、「UiPathのオープンソース版か!?」と思わせるほどでした。UiPathもOpenRPAも同じMicrosoft Workflow Foundationをベースに作られており、OpenRPAの中で日本語UIになっている部分がMicrosoft Workflow Foundationのコンポーネントで実装されていることがわかります。これをUiPathの実装と比べると、UiPathがどれくらいこのコンポーネントを使っているのか理解することが可能です。

今後、いろいろな機能が実装されていくのでしょうが、発展を楽しみにしたいところです!

それではまた!


  1. OCRエンジンはオープンソースのTesseractが使われています。日本語モジュールも付いています。 

34
63
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
63