コラム 「RPAの気になる話」

Microsoft Power Automate / Power Automate Desktopを使ってみました

2021.03.31

先日のMicrosoft Ignite2021にて、Windows 10にPower Automate Desktopが標準搭載されると発表されました。これまで有償提供されてきたプランである「Power Automate per user with attended RPA」のうちのデスクトップ機能を、Windows 10ユーザーは追加費用なしで利用できるようになったことが注目されています。

本稿では、このPower Automate Desktopと同プランに含まれるPower Automateとはどのような製品か、それらを利用する上で気を付けるポイントは何か、についてご紹介できればと思います。

目次:

  1. Power Automate Desktopとは
  2. クラウドフローとデスクトップフローは連携して使える
  3. ライセンスによってPower Automateでできることが異なる
  4. クラウドフローのトリガー条件を細かく設定する
  5. 使ってみた感想:自分でささっと自動化したい場合におすすめ
  6. UiPathやWinActorとの比較、目的にあわせて最適なRPAを選びましょう

1. Power Automate Desktopとは?

はじまりはMicrosoftによるSoftmotiveの買収(2020/5/19)

Microsoft が従来提供していた自動化プロセス作成機能「Microsoft Flow」に、SoftmotiveのローコードRPA開発の機能とノウハウを取り入れたものがPower Automate Desktopです。これにより、「Microsoft Flow」は、Windowsを使う多くのユーザが業務を自動化できるRPA製品に生まれ変わりました(☞詳しくはこちら)。

  • 自動化プロセスをマウスクリックなどの直感的な操作で作成できるになった
  • レガシーシステムから最新のデスクトップアプリまで、幅広いサービスと連携した自動化プロセスを作成できるようになった

Power AutomateとPower Automate Desktopの違い

機能 Power Automate
(旧Microsoft Flow)
Power Automate Desktop for Windows 10
フロー クラウドフロー(4種類あり) デスクトップフロー
作成
  • ブラウザ上または、アプリ上(一部サービス)から直接作る
  • 多くのテンプレートを活用できる
  • 画面操作によりレコーディングしながら作る
  • デスクトップアプリ Power Automate Desktopのインストールが必要になる(☞インストール手順はこちら

フローとは自動化プロセスのことです。具体的には人がPCで行う操作を機械に記憶させた「ロボットの作業手順」のようなものです

 

2. クラウドフローとデスクトップフローは連携して使える

Power Automate Desktopを上手く活用する方法の一つが、クラウドフローからデスクトップフローの呼び出しです。最初に、クラウドフローとデスクトップフロー実行場所(自身のPC)の間を安全に接続するためのオンプレミスデータゲートウェイをインストールする必要があります(☞インストール手順はこちら

なお、この連携機能は、冒頭で触れた「Power Automate per user with attended RPA」では有償の機能にあたります(『Microsoft Power Apps, Microsoft Power Automate and Microsoft Power Virtual Agents Licensing Guide』より)。

クラウドフローは「○○(トリガー)したら△△(アクション)する」というかたちで処理を設定します。デスクトップフローを呼び出すには、アクションに [Power Automate Desktopで構築したフローを実行する] を設定します。

初めてデスクトップフローを呼び出す際は、接続情報の設定が必要になる

オンプレミスデータゲートウェイを選択し、Windowsのドメインアカウント、またはローカルアカウントを [ドメイン名とユーザー名] に、アカウントパスワードを [パスワード] に入力します。

接続情報の設定の後、呼び出すデスクトップフローと実行モードを選択します。デスクトップフローとクラウドフローの間で受け渡しする入出力変数を用意している場合、その値も設定します。

クラウドフローからデスクトップフローに連携するイメージ

この図は、クラウドフローから乗換ルート検索を行うデスクトップフローに[出発地][到着地]を渡し、デスクトップフローから受け取る最安値料金をメールで通知する流れを表しています。これを例にフローを作成してみます。

フロー間で変数をやり取りする

まずデスクトップフロー側で入力変数を2つ、出力変数を1つ作ります。

変数パネル [入出力変数] で ⊕ から変数を追加すると、次の編集画面が現れます。変数名は日本語を使用できませんので英語で命名します。クラウドフロー側で表示される [外部名] は、デスクトップフローがどのような処理をするかや、デスクトップフローにとって入力・出力どちらにあたるかを推測できる名前にすると分かりやすくなります。

完成したクラウドフロー

 

3. ライセンスによってPower Automateでできることが異なる

ここで、利用しているPower Automateのライセンスを確認してみましょう。

Power Automateのブラウザ上で Ctrl + Alt + Aキーを押すと、セッションのデバッグ情報画面が現れ、これまで有効化されたサービスプランが一覧表示されます。複数のプランが有効状態(properties[capabilityStatus]Enabled)であっても、利用ライセンスとして適用されるのは [userServicePlans][isCurrent]が“true” のプランです。ライセンス上の制限事項や利用できる機能を知るには、このproperties内の設定値を確認します。

たとえば、プレミアムコネクタの利用可否は[accessPremiumApis]で設定されています。適用中のライセンス「FLOW_P2_TRIAL_INTERNAL」を確認してみると、この設定値が“true”となっており、先ほどのクラウドフローからデスクトップフローの呼び出しを行うアクション(プレミアムコネクタの一つ)を利用できることが分かります。

また、複数プランが有効状態かつ、それらの「パフォーマンスプロファイル」の優先度が異なる場合は上位のプランがライセンスとして適用されるようです (☞制限事項はこちら

 

4. クラウドフローのトリガー条件を細かく設定する

アクション数の増加や条件分岐の入れ子によりフローが見づらくなってしまったら、トリガーに条件を追加してしまいましょう。

たとえば、よく使う [ファイルが変更されたとき] トリガーは、フォルダ内の任意のファイルの変更時にトリガーされます。この例では /Power Automateフォルダのいずれかのファイルが更新されるとトリガーされます。

ですが、フォルダの特定のファイルが変更された時だけトリガーしたい場合もあると思います。そんな時は […] の [設定] から設定画面を開き、

次の [+追加] で入力欄を作り、条件式を指定します。

@equals() は2つの引数が等しいかどうか判定する関数です。ここでは第一引数にトリガーが検知した更新ファイルのファイル名 base64ToString(string(triggerOutputs()?[‘headers/x-ms-file-name-encoded’]))を、第二引数に指定したいファイル名を渡し、両者のファイル名が同じである場合トリガーが実行されます。(☞条件で式を利用する方法はこちら

補足:@eqauls()の2つの引数について(☞関数リファレンスはこちら

● トリガーが検知した更新ファイルの関数はアクションで使用して確認することができる

・[…]の[コードのプレビュー]から開く

● 第一引数:triggerOutputs()?[‘headers/x-ms-file-name-encoded’]について

base64ToString()を使ってbase64でエンコードされたファイル名をデコードする。triggerOutputs()?[‘headers/x-ms-file-name-encoded’]は、トリガーに指定する時点ではNull型であるため、string()関数でString型に変換してからbase64ToString()のパラメーターに指定する。

● 第二引数:拡張子つきのファイル名で指定する

 

5. 使ってみた感想:自分でささっと自動化したい場合におすすめ

1番の特徴は簡単に作れる点、作ったものを活用しやすい点かと思います。UiPath StudioXなどプログラミングスキルを要さない製品は他にもありますが、Microsoftならではのシームレスなサービス連携により、自動化を日常業務の一部にしてしまう、そんな作りやすさを感じました。

  • 業務で利用するアプリケーションから離れることなくフローを作成できる

Microsoft 365サービス(SharePoint、OneDrive等)やビジネスでよく利用されるツール(Twitter、Slack等)など多くのサービスと連携しています。Teamsなど一部サービスは、アプリからクラウドフローを作ることもできます。

  • 作成したフローを実行するための管理が簡単

クラウドフローの実行モード切替え機能が便利。オンにしておくといつでも自動実行されるため、Windowsタスクスケジューラの設定や、専用ロボットアプリケーションへ自動化プロセスをセットする必要がありません。

  • 複数の自動化プロセスを並列で実行させることができる

異なるトリガーで開始する複数のフローをオンにしておけば、各フローがトリガーされて1台のPC上で並列実行ができます。

 

6. UiPathやWinActorとの比較、目的に合わせて最適なRPAを選びましょう

当社はUiPath、WinActorの2つのRPA製品を扱っております。ここにPower Automateを含め比較してみます。

Power Automate WinActor UiPath
  • 現場でRPAを実践できる
  • 一人ひとりが自身で身の回りの業務を効率化し働き方改革ができる
  • 初心者でも修得しやすいため、社内にRPA技術者を育て、RPAを内製したい場合に向く
  • 開発・運用を比較的早く始める事ができる。
  • 保守性・拡張性の高い自動化プロセスを開発しやすい。小さく始めて徐々に拡大・展開できる。
  • 企業規模でRPAを進めるための管理機能が充実している
草の根導入に向く
(草の根導入、詳細はこちら
CoE導入に向く
(CoE導入、詳細はこちら

Power Automate、UiPath、WinActor、どのRPA製品が良いかは状況によって様々です。「せっかく導入したけれど狙った効果を得られなかった」という事態にならないよう、製品の特長理解がRPA活用の第一歩になります。今後も様々なRPA製品をご紹介していきますので、選定のヒントとしてご参考にしてみてください。

当社ではニーズに合わせたRPA製品選定コンサルティングを行っています。また、RPAの導入効果を最大化するには、自社の業務とRPAの相性を理解すること、自社にあったRPAの推進組織を作ること、RPAに何を期待できて何を諦めなければいけないか理解することなど、製品の特長理解の他にも考慮したいポイントがたくさんあります。

少しでも気になった方、私たちにお声がけください。一緒にRPAを最大限活用していきましょう。

このコラムの執筆者

株式会社シーエーシー
アドバンスドテクノロジー本部
今泉 由莉花

世の中の自動化浸透にITの分野から携わりたいと思い2020年に入社。「お客様に最適なロボットを提供できる開発者」を目指し、技術検証などを通して複数のRPA開発ツールに触れてきました。文系出身エンジニアとして、初心者視点でUiPath開発の躓きやすいポイント、コツや注意点をお伝えできればと思います。