RPAを作りましょう ハイブリッドフロー編 「リバース」

ハイブリッドクラウドへの道 ~The road to hybrid cloud Vol. 23

以前、クラウドフローからデスクトップフローを呼び出すハイブリッドフロー(RPAを作りましょう ハイブリッドフロー編)を紹介しました。プラミアムアクションの「Power Automate Desktopで構築したフローを実行する」を利用することで実現可能となっています。これとは反対にデスクトップフローからクラウドフローの呼び出しは残念ながら現時点では明確なアクションとしては提供されていませんが、いくつかの機能を組み合わせることで実現可能となっています。今回は、ハイブリッドフローリバースということで、デスクトップフローからクラウドフローの呼び出し方を紹介します。
今回作成するのは、クラウドフロー側で用意した“Teamsにメッセージを投稿する”というフローをデスクトップフローから呼び出すといったものになります。

ハイブリッドフローで必要なライセンス

前回紹介したハイブリッドフローの作成同様、今回もPower Automateの有償ライセンスが必要となります。最低限「Power Automate per user with attended RPA(1ユーザーあたり¥4,350/月)」が必要となります。

※参照※

クラウドフローの作成

まずはPower Automateのクラウドフローの作成から。Power Automate Desktopのデスクトップフローから呼び出されるための設定を行います。今回のポイントはクラウドフローのトリガーとして「HTTP要求の受信時」を利用する部分です。

作成するのは「自動化したクラウドフロー」となります。

ここはスキップで進みます。

“http”のキーワードで検索して、トリガーの中から「HTTP要求の受信時」を選択します。

今回のフローはTeamsへメッセージを投稿する機能となるので、以下のJSONスキーマを入力します。

{
   "type": "object",
   "properties": {
     "subject": {
       "type": "string"
     },
     "message": {
       "type": "string"
     }
   }
}

次に、Teamsのアクションから「メッセージを投稿する」を選択します。

先ほどの「HTTP要求の受信時」で入力したJSONスキーマを読み取って、「件名」と「メッセージ」は動的なコンテンツから選択可能となっています。

いったんここまでの内容で名前を付けて保存します。

保存後「HTTP要求の受信時」を確認すると、「HTTP POSTのURL」が発行されているのが確認できます。こちらをコピーして取得しておきます。

URLのデコード

取得したURLはエンコードされているので、この後、Power Automate Desktopのデスクトップフローで利用するにはURLデコードを行っておく必要があります。

UrlEncode.net(http://urlencode.net/)などでもデコードは可能ですし、PowerShellでも以下のようにデコードできます。

$Url = "取得したUrl"
[System.Web.HttpUtility]::UrlDecode($Url,[Text.Encoding]::GetEncoding("sjis"))

デスクトップフローの作成

続いて、Power Automate Desktopでデスクトップフローを作成します。

アクションの中から「Web」-「Webサービスを呼び出す」を選択します。

以下の内容を設定して保存します。

URL先ほど取得してデコードしたものを入力します
メソッドPOST
受け入れるapplication/json
コンテンツタイプapplication/json
要求本文{“subject”:”TEST2020″, “message”:”テストです!”}
要求本文をエンコードしますOFF

実行してみましょう!

上手くいきました!成功です!

参考までに、デスクトップフローで「Webサービスを呼び出す」の部分を「PowerShellスクリプトの実行」に置き換えることも可能です。

$Url = "取得したURL"
$postText = @{subject="TEST2020"; message="テストです!"} | ConvertTo-Json -Compress
$postBody = [Text.Encoding]::UTF8.GetBytes($postText)
Invoke-RestMethod -Method POST -Uri $Url -Body $postBody -ContentType application/json

以上がデスクトップフローからクラウドフローを呼び出すハイブリッドフローリバースとなります。

さいごに

デスクトップフローをクラウドフローが連携することでPower Automateの利便性は確実にアップします。

今回のようにTeamsを絡めてのメッセージングや、デスクトップフローからOneDriveにファイルを保存した後にクラウドフローで処理するなどアイディア次第で色々便利に使えそうです。

これぞハイブリッドフローという使い方を見つけてみてください。

著書の紹介欄

Hyper-Vで本格的なサーバー仮想環境を構築。仮想環境を設定・操作できる!

できるPRO Windows Server 2016 Hyper-V

◇Hyper-Vのさまざまな機能がわかる ◇インストールからの操作手順を解説 ◇チェックポイントやレプリカも活用できる Windows Server 2016 Hyper-Vは、仮想化ソフトウェア基盤を提供する機能であり、クラウドの実現に不可欠のものです。 本書では、仮想化の基礎知識から、Hyper-Vでの仮想マシンや仮想スイッチの設定・操作、プライベートクラウドの構築、Azureとの連携などを解説します。

初めてのWindows Azure Pack本が発売

Windows Azure Pack プライベートクラウド構築ガイド

本書は、Windows Azure PackとHyper-Vを利用し、企業内IaaS(仮想マシン提供サービス)を構成するための、IT管理者に向けた手引書です。試用したサーバーは、最小限度の物理サーバーと仮想マシンで構成しています。Windows Azure Packに必要なコンポーネントのダウンロード、実際にプライベートクラウド構築する過程を、手順を追って解説しています。これからプライベートクラウドの構築を検討するうえで、作業負担の軽減に役立つ一冊です。

ブログの著者欄

樋口 勝一

GMOインターネット株式会社

1999年6月GMOインターネットに入社。Windows Serverをプラットフォームとしたサービス開発から運用・保守まで幅広く担当。講演登壇や出版、ネット記事連載などでマイクロソフト社と強い信頼関係を構築。2007年より「マイクロソフトMVPアワード」を受賞し、インターネットソリューションのスペシャリストとして活躍。

採用情報

関連記事