はじめに
こんにちは。アーティサンの小鷹(こたか)と申します。
以前はSharePoint関係のお仕事を担当させて頂く事が多かったのですが、Power Platformの勢いが高まるに連れ、Power Automateの技術支援や構築といったお仕事もよく担当させていただいております。
今回は、ソリューション内に作成したフローを外部(クラウドフロー)から呼び出す方法をご紹介します。
筆者が業務の中で、非ITのユーザーにモバイルアプリのボタンで起動してもらうタイプのPower Automateフローを作成しようとして引っかかったので、その回避策を紹介することで同じ部分で悩んでいる方の助けになればと思い記事にしました。
フローの全体図はこのようになります。親子関係にある複数のフロー同士を、HTTPアクションで連動させるというものです。
HTTPアクションとHTTP応答の要求アクションを使用するので、HTTPアクション使ってみたいけどよくわからない…という方も本記事を見ていただけたらご理解いただけるかと思います。
前提条件(必要ライセンス)
本記事ではHTTPアクションを使用します。
HTTPアクションはプレミアムコネクタに分類されるため、Power Automate のプレミアムコネクタを使用できるライセンス(Power Apps有償プラン/Dynamics365のプランに含まれるPower Automateのライセンス)が必要です。
※Microsoft365 E3に付属するPower Automate for Office 365 ライセンスではプレミアムコネクタを使用できません。
詳しくは以下のページの下部にあるライセンス ガイドをご確認ください。
Power Automate 価格
「ソリューション内のフロー」と「クラウドフロー」について
本記事では、ソリューション 内で作成されたPower Automate クラウドフローを「ソリューション内のフロー」、マイフロー 内で作成されたPower Automate クラウドフローを「クラウドフロー」と呼称しています。
ソリューションとは
そもそも「ソリューション」とはなんなのか?と思いますよね。
Power Platformにおける”ソリューション”とは、Power Apps や Power Automate に ALM(アプリケーション ライフサイクル管理)を実装するためのメカニズムのことを指しています。
ソリューションという一つの単位の中で、Dataverse for Teamsに格納したビジネス データや Power Appsのアプリケーション、Power Automateのフローを集約して管理することができます。
また、ロール、セキュリティ要件、対象者が異なる可能性があるアプリを分離するコンテナとしても機能します。
一見、ソリューション内のフローとクラウドフローは作る場所が違うだけに見えますが、参照できるデータの範囲や使えるアクションが少し異なります。
参考として、Microsoft公式ページの関連ページを以下に掲載しておきます。
ソリューションの概念
Microsoft Power Platform に関する ALM の基本
Microsoft Power Platform でのアプリケーション ライフサイクル管理サービスの概要
HTTPアクションを使う理由
フローを作成したその案件では、「エンドユーザーが任意のタイミングでフローを手動実行する」というのがポイントでした。
冒頭でも触れましたが、エンドユーザーが任意のタイミングでフローを手動実行できるようにしたい時、トリガーにフローボタンを設定して、モバイルアプリのボタン画面から押してもらえば解決すると思いますよね。
しかし残念ながら、ソリューション内で作成したボタンは、モバイルアプリではボタンが表示されないのです。(2021/07/14時点)
既知の制限としてマイクロソフト公式にも記載があります。
現在、Power Automate モバイル アプリは、ソリューションで作成されたフローはサポートしていません。
他にも子フローの実行アクションを使用する方法も考えられます。
しかし、クラウドフローでは[子フローの実行]アクションを使用できません。このアクションを使用できるのはソリューション内のフロー同士のみです。
子フローの実行という名前の新しい組み込みアクションが導入されました。 このアクションを開始するには、左側のナビゲーションでソリューションを選択した後、既存のソリューションを選択するか、ソリューションを作成します。
ソリューション内のフロー同士では結局ボタンはモバイルアプリに表示されないままです。
また、今回の案件では、フローを実行するユーザーがPower Automateに詳しくない非ITの方なので、「操作を極力少なくシンプルにしたい」という要件もありました。
パソコンのブラウザでPower Automateフローの一覧から直接起動してもらう方法や(使用したいデータが格納されたソリューションがある環境で)クラウドフローを作成する方法もありましたが、環境切り替え等の操作が増えます。
以上の理由から、HTTPアクションを使用する方法を採りました。
HTTPアクションを使用すると、ボタンを1つの環境に集約し、ボタン毎の環境切り替えが不要となります。
作成方法
クラウドフローと、ソリューション内のフローの2つのフローを作成します。
クラウドフロー モバイルアプリに表示させるFlowボタンを設定します。
ソリューション内のフロー ソリューション内にあるデータを操作するアクションを設定します。
今回はサンプルということで、メールを送信するだけのシンプルなアクションとします。
ソリューション内のフロー
先に、ソリューション内のフローを作成します。
ソリューション内のフローを先に作成するのは、トリガーのHTTP POST の URL欄のURLが後から作成するクラウドフローの作成に必要な為です。
ソリューション内のフローの全体図は下のようになります。
作成手順
作成したいソリューションで、画面左側のメニューからマイフローを選択し、新しいフロー自動を選択します。
トリガーはHTTP要求の受信時を選択して下さい。HTTP要求の受信時トリガーのHTTP POSTのURLがクラウドフローとの連携に必要になります。
「保存後にURLが生成されます」とあるので今すぐフローを保存したい所ですが、フローはトリガーだけでなく1つ以上アクションを設定しないと保存できません。
という訳で、+新しいステップボタンをクリックして後続のアクションを追加しましょう。ソリューション内のフロー、アクション追加1
今回はサンプルということで、メールを送信するだけのシンプルなアクションとします。
Office 365 Outlookのメールの送信(V2)を選択します。[メールの送信(V2)]アクションに、自分宛にメールが来るよう記入します。件名や本文もどんなメールかわかる程度に適宜入力しましょう。
(全体図のA枠を参照)フローを保存しましょう。フローの画面右上側にある[保存]ボタンをクリックします。
トリガーをクリックして展開します。HTTP要求の受信時トリガーのHTTP POST の URL欄にURLが生成されているので、コピーしておきましょう。
(全体図のB枠を参照)
ソリューション内のフローはこれで完成です。
参考:webブラウザからソリューションにアクセスする方法
Power Automateメニューを開き、環境を選択します。
画面左側のメニューからソリューションを選択し、ソリューションの名前をクリックします。
(Teamsアプリ上でビルドからアクセスできるソリューションは「Common Data Services Default Solution」という名前です)
クラウドフロー
次にクラウドフローを作成します。
クラウドフローでは、モバイルアプリにボタンを表示させ、ソリューション内のフローを起動させるためのアクションを設定します。
ボタンを表示させたい環境を選択しているか確認の上、作成に進んでください。
クラウドフローの全体図は下のようになります。
作成手順
フローを新規作成します。トリガーは手動でフローをトリガーしますを選択して下さい。
後続のアクション、[HTTP]アクションを選択します。
([組み込み]タブを選択すると、HTTPアクションを見つけやすくなります)方法のドロップダウンを開き、POSTを選択します。
[URI]には、先に作成したソリューション内のフローのトリガーで生成されたURLを貼り付けます。(全体図のC枠を参照)フローを保存します。
これでクラウドフローの方も完成しました。
テスト
作成したフローが希望通りに動くかテストしてみましょう。
モバイルアプリでクラウドフローのボタンをタップして、フローを実行します。
メールが届いたら成功です。
各フローの実行履歴からも結果の確認ができます。
フローの詳細画面下側にある[28 日間の実行履歴]に一覧表示されます。
開始時間のリンクをクリックすると詳しい実行結果を確認できます。
あとがき
今回はソリューション内のフローをモバイルアプリから呼び出す方法の一つとして、HTTPアクションを使用したフロー作成方法を紹介させていただきました。
Power AutomateやITに詳しくないユーザーでも、少ない操作でPower Automateフローを実行することができるようになります。
HTTPアクションは色々な応用が利き、今回紹介したようなフローの起動だけでなく、フロー内のパラメーターを渡すこともできます。
今後モバイルアプリでソリューション内のフローもサポートするようになれば、(ボタンを1つの環境に集約しなくてもよいのであれば)HTTPアクションを使わずソリューションのフロー1本だけで済むでしょう。
それまではこの回避方法で対応できるので、是非参考にして頂けたらと存じます。
本記事が皆様のPower Automate作成の一助になりましたら幸いです。
【こちらも合わせて読みたい】
地方自治体ローコード導入・運用支援サービス(Power Apps・Power Automate)
Microsoft社が提供するローコード技術であるPower Platformを用いて、自治体様のDX化を支援します。
X-SP | SharePoint デザイン・機能拡張サービス
デザイン×機能を兼ね備えたSharePointを提供いたします。
SharePointの利便性を向上し、操作性と視認性を兼ね備えたデザインでユーザーの業務効率化・ストレス低減を提供します。
内製化支援サービス | Power Platform(Power Apps・Power Automate)
Power Platform(Power Apps・Power Automate)開発や運用をスムーズに内製できるよう支援いたします。
DX人材育成プログラム | Power Apps・Power Automte 教育
Microsoft社が提供するローコード技術であるPower Platformを用いて、社内のDX化を推進するための人材を育成いたします。
Power Apps/Power Automateアプリ開発・導入支援サービス
Microsoft社が提供するPower Apps / Power Automateの導入支援として、高度なアプリも最速で作れる業務アプリ作成支援サービスを提供いたします。
SharePointモダン化コンサルティングサービス
従来のSharePoint から移行・モダン化したい方に向けて、事前調査からサイト作成・活用支援までトータルなコンサルティング・技術支援を提供いたします。
小鷹 枝里子
2016年12月、メーカーの事務兼CADオペレーターから未経験のIT業界に飛び込もうとアーティサンに入社。
今は主に Power Platform(Power Automate、Power Apps)とSharePointの技術支援や開発を担当しております。
山形県出身、神奈川県在住。何となく海に近い所に住むのが好きです。インドア派なので滅多に海行かないんですけどね。
趣味はゲームで、最近はのんびりスマホゲームや某狩りゲームをやってます。
推しのうまい棒は納豆味。