#2020-12-26追記
Power AutomateのRPA機能として新たにPower Automate Desktopがリリースされています。
本記事で紹介しているWinAutomationをベースに開発されたクラウドネイティブのRPA機能です。
Power Automate Desktop
紹介記事も書いていますのでよろしければご覧になってください。
【Power Automateの新しいRPA機能】Power Automate Desktopで出来ること(全33機能の紹介)
#はじめに
Microsoft Build 2020の発表の中で、2020年5月MicrosoftがRPAベンダーのSoftomotiveの買収をしたと発表がありました。
Microsoft acquires Softomotive to expand low-code robotic process automation capabilities in Microsoft Power Automate
この買収により、RPAツール「WinAutomation」がMicrosoftの自動化ソリューションに加わった形になります。
「WinAutomation」の登場の前から、MicrosoftのPower Platformにおける自動デスクトップ操作のツールとしては、(プレビュー期間も含めて)2019年から「Power Automate」の中に「UI Flows」という機能を組み込み、自動デスクトップの操作をサポートしていました。
今回の買収により「WinAutomation」が「Power Automate」のライセンスに組み込まれ、2020年5月より利用できているようになっています。
「WinAutomation」は以前からあるRPAツールで現在のメジャーバージョンはver9です。
そのため、ベンダーのマニュアルや国内リセラー企業からも情報の発信があり、多くの情報に触れることができますが、ここでは、あらためて「WinAutomation」のはじめの一歩となるような内容で書いてみました。
この記事では、第1回目として「WinAutomation」のインストールから画面・機能の説明までをまとめています。
#「WinAutomation」のはじめ方
WinAutomation環境作成については、公式のdocs(Use Softomotive's WinAutomation with UI flows)が出ていますが、日本語の解説記事ではASAHI Accounting Robot研究所さんのblog記事の中でPowerAutomateのライセンス認証から詳しく記載されています。
WinAutomationインストール(Power Automateトライアル)
こちらの手順に沿っていくと試用版ライセンスの作成、WinAutomationのインストールを進めることができます。特に初期手順は必見です。
WinAutomationについての情報を発信されているASAHI Accounting Robot研究所さんのTwitterアカウントはこちらです。
今回この記事を記載するにあたり、掲載の許諾をいただきありがとうございました。
【WinAutomationの始め方】
— ASAHI Accounting Robot研究所@RPA (@AsahiRobo_RPA) May 21, 2020
Power Automateライセンスを利用したWinAutomationのインストール、初期設定の手順をブログで公開しました!
PowerAutomateとの統合でWinAutomationに興味がある方は是非参考にしてください👍
🔗https://t.co/OOywWD9cL8#WinAutomation #RPA #PowerAutomate #softomotive
#WinAutomationの紹介
ここでWinAutomationの画面・構成について簡単に紹介します。
WinAutomationを起動すると以下の画面が起動します。管理画面の「WinAutomation Console」です。
##「WinAutomation Console」について
最初に起動するのは「WinAutomation Console」というスタート画面兼管理画面です。
この「WinAutomation Console」について記載します。
「WinAutomation Console」上部には5つのタブがあります。
「Process」、「Triggers」、「Schedule」、「Log」、「Options」の5つです。
それぞれの機能・役割があるので1つずつ見ていきます。
###「Processes」タブについて
最初に「Processes」タブです。
こちらでは、Processと呼ばれる、WinAutomationのプログラムの管理や実行をサポートします。
WinAutomationでは、実行するプログラム(Process)をこの画面上で一元管理することができます。1Process1ファイルをPC上のエクスプローラで管理するとファイル保管場所がバラける可能性があるので、これは便利だと思います。
下の画像のようにツリー状のフォルダ構造で分けて、その中にProcessを保存することができます。
また、この画面上でProcessを実行することもできます。(上にあたる緑三角のスタートボタン)
###「Triggers」タブについて
こちらでは、Processの実行のトリガー(処理発生条件)を定義することができます。
RPAに行ってもらいたい処理の中には、「○○が発生したら処理を開始する」というものがあります。
WinAutomationでは、規定でいくつもの処理発生条件が定義されています。
いくつか取り上げていきます。
指定フォルダ内にファイルが「出来たら・削除されたら・変更があったら・名前が変わったら」といった条件で処理を開始することができます。
ファイルの拡張子を指定して対象とするファイルを探すことができますし、監視間隔も指定できます。
詳しくはFile Monitor Triggerのマニュアルページをご確認ください。
File Monitor Trigger
このトリガーを設定することでメールを受信したら処理を開始することができます。メール受信を引き金に処理を開始するのはRPAではよくあるシナリオなので嬉しい機能です。
メールサーバと対象アカウントを指定したトリガーを作成することができます。
発火条件として指定のメールアドレスは勿論、タイトルや本文に特定文字が含まれていたらという条件の指定も可能です。
このトリガーでのメールサーバはimapが対象となるので注意が必要です。
こちらも詳しくはマニュアルを参照してください。
Email Monitor Trigger
このトリガーを設定することで、エラーが発生した場合や特定のイベントが起きた場合に実行することができます。
例えば、あるシステムでエラーが発生したらそれに関する復旧処理や関係者への連絡のProcessを実行することができます。
監視系のトリガーではpingの監視を行う「Ping Trigger」やプロセスの有無を確認する「Process Trigger」などもあります。
Event Log Monitor Trigger
個人的に一番気になるトリガーで、SQL ServerやOracleのテーブルに対して、Insert,Update,Deleteそして、AlterやDropまで、変更検知して、それをきっかけに実行します。
GUIを介さずデータが登録されたらという条件で実行が可能となるため、安定した処理が実現できると思います。
パッケージ製品で直接データベースまでアクセスできるという条件は多くないと思いますが、自社開発のシステムで使い所も出てくるのではないかなと思いました。
###「Schedule」タブについて
次に「Schedule」です。
こちらでは、Processの実行のスケジュールを管理します。WinAutomationではこの画面上のProcessの自動実行の管理の行うことができます。これもすごい。
「New」をクリックすると作成できるスケジュールのタイプを選択することができます。
日時を指定するタイプのスケジュールと何分間隔で実行するといったスケジュールの2種類のスケジュール設定が可能です。
例えば日時設定のスケジュールであれば、以下のような設定項目があります。
項目名 | 設定内容 |
---|---|
Daily | 毎日実行します。実行する時間の設定が可能。 |
On Specific Dates | 指定した日時で実行します。日付は複数日指定が可能。 |
Weekly | 毎週実行します。曜日を指定することができ、月曜日と水曜日に実行するといった指定も可能。 |
Monthly | 毎月実行します。1日に実行するといった指定は勿論、月の最終日といった指定も可能です。これは特に嬉しい。 |
ロボットのスケジュール実行をツール側で一元管理できるのはとても嬉しい機能ですね。
「WinAutomation Console」についての説明は今回はここまでにして、Processの作成について記載していきます。
###「Log」タブについて
名前の通りですが、WinAutomationで発生するすべてのイベントがログに記録されます。プロセス実行からサーバー接続の問題まで、すべてが表示され、確認することができます。
ログは、プロセス単位や日付・期間、ログの種類(Info、Warnning、Error)でフィルタリングし、dat形式やCSV形式でエクスポートすることができます。
また、Processの作成において、プロセスのアクションとして、ログを出力するものがあります。これにより、Process実行中にログに出力しておきたい情報があった場合にログ出力することができ、あとで確認することができます。そのため、WinAutomationでは、確認用のログを外部のテキストファイル等に出力する必要はありません。
実行ログもツール上で管理することができるのはとても便利です。
###「Options」タブについて
最後に「Options」タブです。機能が豊富なので、今後追記していきますが、現時点で特に気になった機能について記載します。
ひとつは、「Settings」メニュー内の「Authentication」です。
インストールの手順説明に記載したASAHI Accounting Robot研究所さんのblogでも初期設定の項目で出てきますが、スケジュール実行やトリガー実行時の自動ログインを行うために必要な情報です。プロセスを実行するユーザのパスワードを設定します。
次に「Error Handring」メニューの「Behaviour」です。
プロセス上でエラーが発生した際に通知するエラーメール送付するアドレスの設定やエラー発生時にスクリーンショットを取ってログに保存するかどうかのチェック、別のプロセスを呼び出すか等、エラー発生時の規定の動作を設定することができます。これにより、エラーハンドリング処理時にエラー通知や画面ショットを保存する毎回エラー処理を記述しなくて良いというメリットがあります。
「WinAutomation Console」の機能を見ていきましたがいかがでしたでしょうか。
個人的には管理系の機能が豊富で痒いところに手が届いているという印象を持ちました。
以上で、「WinAutomation Console」の各タブの説明を終わります。
##Processの作成方法と「Process Designer」について
最後になりますが、WinAutomationにおける自動化処理Processの作成についてです。
###Processの作成方法
WinAutomationでは自動実行処理をProcessという言葉で表します。
Processの作成は「WinAutomation Console」の「New Process」から開始することができます。
「New Process」をクリックするとProcessをどのように作成するかを選択する画面が表示されます。
「Process Designer」を選択するとこの後も説明するProcessの開発画面が起動します。
「Macro Recorder」と「Web Recorder」はRPA製品でよく謳われる「いつもの業務操作を録画することでロボットが作れます」という機能です。
「Process Designer」からもいつでもレコーディング機能は呼び出せます。
ここでは、「Process Designer」から進めていきたいので、「New Process Name」を入力し、「Process Designer」を選択すると「Process Designer」が起動します。
###「Process Designer」について
この「Process Designer」でProcessの開発を進めていきます。開発の前に画面の構成について説明します。
「Actions」は、Process内に配置する機能が表示されています。フォルダ内のアクションをダブルクリックまたはドラッグアンドドロップでProcess内に配置することができます。
「Process」は、処理の中身を記入します。
アクションを複数配置し自動化処理を記入します。コマンドが表示されるタイプの画面になります。
次回の記事で実際にProcessを書いてみます。
画面右側の「Function」です。初期値は「Main」ファンクション一つですが、複数のファンクションをプロセス内で管理することができます。
そして、「Main」ファンクションから他のファンクションを呼び出すことができるので、共通的な処理や、単調な処理などを別のファンクションに分けて管理することができますね。まさに「関数」。
WinAutomationが用意しているサンプルのProcessの中でも複数ファンクションを使用しているものがあるので参考にしてみるのが良いかもしれません。
画面右下の「Variables」です。変数の領域です。「WinAutomation」の変数は型を持ちます。
ここにはアクションを実行をしたことで生成された変数が表示されます。
画面下部にはタブ表示で「Controls Repository」「Images Repository」「Errors」の3つがあります。
「Controls Repository」と「Images Repository」は、構造認識や画像認識を行った際の構造の情報と画像の情報が保存されます。ひとつのProcessの中で複数回同一の構造・画像にアクセスするアクションがある時に便利です。
「Errors」はProcess実行時のエラー情報が表示されます。
「Controls Repository」は後述で説明します。
###アクションの説明
実際に開発を始める前にいくつかアクションを見てみます。
良く使用機会がありそうな「Files」フォルダのアクションです。
ファイルを開いて中身を読み取る「Read from CSV File」
CSVファイルを指定するとテーブル構造の変数(DataTable)に保存してくれます。
1行目をテーブルの列名とするオプションもあります。
ファイルを移動する「Move File(s)」。指定のファイル(フォルダ)を別のフォルダに移動します。
すでに同名ファイルが存在していた場合の処理が指定できます。
また、移動したファイルの情報について、新たな変数にアウトプットすることが可能です。(どのファイルが移動したかがわかる。)
Web操作系のアクションは「Web Automation」の中にあります。
操作対象のWebブラウザは、「Google Chrome」、「Microsoft Edge(Selemium)」、「FireFox」、「IE11」に対応しています。加えて「Automation Browser」というWinAutomation内ブラウザも操作対象です。
ブラウザ上のリンクをクリックする「Click Link on Web Page Action」
ブラウザ上のテーブル情報をスクレイピングする「Extract Data from Web Page Action」
Store Extracted Records intoで「an Excel Spreadsheet」が選択しているとスクレイピングした情報をExcelに保存してくれるところまで一気に行ってくれます。
これだけ見るとそれぞれどんな操作が可能なのか、どのように設定するか分かりづらいのでまとめます。
まず、「WebBrowser Instance」ですが、ここにはどのブラウザ操作の範囲で操作するのか指定します。
ブラウザ操作は最初にどのブラウザでどのURLから操作を開始するのか指定するのですが、その際に、Instanceが生成されます。このInstanceを「WebBrowser Instance」に指定することでそのアクションが起動したブラウザの操作範囲であることが示します。
そのため、
①ブラウザ起動
②リンククリックの操作を行う
という流れの場合は、
最初に、Lanch ブラウザ(ここではEdge)アクションを起動し、URLやWindowsのサイズを指定します。
この時、Action OutputにこのEdge操作のインスタンスが生成されます。「%Edge%」がインスタンス名です。
次のリンククリックの「Click Link on Web Page Action」を追加し、そこで、最初にインスタンスを指定します。上で作成した「%Edge%」インスタンスを指定します。
次にクリックするコントロールを指定します。
「Select Control From Repository」をクリックします。
「Controls Repository」の情報が表示されますので、「Add Control」をクリックします。
操作対象のブラウザを表示すると、操作したい要素を見つけたらCtrlキー+左クリックを選択するとその要素が保存されます。ここでは「Yahoo! Japan」Topページの「天気」リンクです。
操作対象のコントロールを設定することができました。これでブラウザを起動し、リンクをクリックするという自動化ができました。
また、実際にどのような要素をクリックしているかは、「Process Designer」下部の「Controls Repositry」で確認することができます。
ダブルクリックするとコントロールの詳細情報(htmlタグ)を確認することができます。
要素の編集したい場合はEditボタンを押下するとSelector BuilderというSelectorの編集画面が開きます。
Selector Builderではhtmlの構造に応じた内容が確認でき、タグの一致条件の指定やSelect要素に含めるタグを指定し直すことができます。
また、Selector Builderの表示をCustomに切り替えると、直接修正することができますし、Selector値に変数を指定することができます。
わかりづらいところもあると思うので、最初はレコーダー機能で操作を録画してみてどのようなインスタンスが生成されているかやどのような変数が自動生成されているか確認して進める分かりやすいと思います。
他にもデスクトップの操作だけでなく、文書OCRやAzure、AWS EC2のインスタンス起動・停止のアクションやAIサービスであるCognitiveサービスとの連携機能もあります。
色々検証するのが楽しみですね。
#まとめ
今回の記事はここまでになります。
まだ、私は触れ始めて日が浅いですが少し触れただけでも管理機能が豊富で、多くのアクションを備えたRPAツールであると思います。
次回は簡単なProcessを作成することで変数の使いかたやアクションの使い方について見ていきます。