技術情報ブログ
Power Platform
2021.08.13

Power Automate:クラウドフローからソリューション内のフローを呼び出す

Power Automate:クラウドフローからソリューション内のフローを呼び出す

はじめに

こんにちは。アーティサンの小鷹(こたか)と申します。

以前はSharePoint関係のお仕事を担当させて頂く事が多かったのですが、Power Platformの勢いが高まるに連れ、Power Automateの技術支援や構築といったお仕事もよく担当させていただいております。

今回は、ソリューション内に作成したフローを外部(クラウドフロー)から呼び出す方法をご紹介します。

筆者が業務の中で、非ITのユーザーにモバイルアプリのボタンで起動してもらうタイプのPower Automateフローを作成しようとして引っかかったので、その回避策を紹介することで同じ部分で悩んでいる方の助けになればと思い記事にしました。

フローの全体図はこのようになります。親子関係にある複数のフロー同士を、HTTPアクションで連動させるというものです。

Power Automate:連携フロー概要図

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 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

    ソリューション内のフロー、アクション追加1

  • 今回はサンプルということで、メールを送信するだけのシンプルなアクションとします。
    Office 365 Outlookメールの送信(V2)を選択します。

  • [メールの送信(V2)]アクションに、自分宛にメールが来るよう記入します。件名や本文もどんなメールかわかる程度に適宜入力しましょう。
    (全体図のA枠を参照)

  • フローを保存しましょう。フローの画面右上側にある[保存]ボタンをクリックします。

  • トリガーをクリックして展開します。HTTP要求の受信時トリガーのHTTP POST の URL欄にURLが生成されているので、コピーしておきましょう。
    (全体図のB枠を参照)

ソリューション内のフローはこれで完成です。

 

参考:webブラウザからソリューションにアクセスする方法

Power Automateメニューを開き、環境を選択します。

webブラウザでソリューションにアクセスする - Power Automateメニュー

画面左側のメニューからソリューションを選択し、ソリューションの名前をクリックします。

(Teamsアプリ上でビルドからアクセスできるソリューションは「Common Data Services Default Solution」という名前です)

webブラウザでソリューションにアクセスする - ソリューション一覧

 

クラウドフロー

次にクラウドフローを作成します。

クラウドフローでは、モバイルアプリにボタンを表示させ、ソリューション内のフローを起動させるためのアクションを設定します。

ボタンを表示させたい環境を選択しているか確認の上、作成に進んでください。

クラウドフローの全体図は下のようになります。

クラウドフロー - 全体図

 

作成手順

  • フローを新規作成します。トリガーは手動でフローをトリガーしますを選択して下さい。

  • 後続のアクション、[HTTP]アクションを選択します。
    ([組み込み]タブを選択すると、HTTPアクションを見つけやすくなります)

  • 方法のドロップダウンを開き、POSTを選択します。
    [URI]には、先に作成したソリューション内のフローのトリガーで生成されたURLを貼り付けます。(全体図のC枠を参照)

  • フローを保存します。

これでクラウドフローの方も完成しました。

 

テスト

作成したフローが希望通りに動くかテストしてみましょう。

モバイルアプリでクラウドフローのボタンをタップして、フローを実行します。

テスト フロー実行

メールが届いたら成功です。

各フローの実行履歴からも結果の確認ができます。

フローの詳細画面下側にある[28 日間の実行履歴]に一覧表示されます。

テスト 実行履歴

開始時間のリンクをクリックすると詳しい実行結果を確認できます。

テスト 実行結果詳細

 

あとがき

今回はソリューション内のフローをモバイルアプリから呼び出す方法の一つとして、HTTPアクションを使用したフロー作成方法を紹介させていただきました。

Power AutomateやITに詳しくないユーザーでも、少ない操作でPower Automateフローを実行することができるようになります。

HTTPアクションは色々な応用が利き、今回紹介したようなフローの起動だけでなく、フロー内のパラメーターを渡すこともできます。

今後モバイルアプリでソリューション内のフローもサポートするようになれば、(ボタンを1つの環境に集約しなくてもよいのであれば)HTTPアクションを使わずソリューションのフロー1本だけで済むでしょう。

それまではこの回避方法で対応できるので、是非参考にして頂けたらと存じます。

本記事が皆様のPower Automate作成の一助になりましたら幸いです。

 

 Power Platform(Power Automate、Power Apps)とSharePointの技術支援や開発を担当の小鷹枝里子

小鷹 枝里子

2016年12月、メーカーの事務兼CADオペレーターから未経験のIT業界に飛び込もうとアーティサンに入社。

今は主に Power Platform(Power Automate、Power Apps)とSharePointの技術支援や開発を担当しております。

山形県出身、神奈川県在住。何となく海に近い所に住むのが好きです。インドア派なので滅多に海行かないんですけどね。

趣味はゲームで、最近はのんびりスマホゲームや某狩りゲームをやってます。

推しのうまい棒は納豆味。

シェアする
記事カテゴリ
最新記事
2024.03.27

Power Automateのベストプラクティス・アンチパターン(5)【Apply to each×コンカレンシー×変数の設定はNG】

2024.03.20

Power Apps×Teams:Teams上からPower Appsを実行する方法

2024.03.13

Power Apps:SharePointリストと連携したカレンダーアプリを自作してみよう

2024.03.06

SharePointのあったらいいなを集めました(X-SPのご紹介)

2024.02.28

【2024年2月更新】Power Apps の実践的なノウハウ まとめ

モデル駆動型アプリPower AppsPower PlatformSharePointExcelPower AutomateC#attributevalidationローコードAngularAccessInfoPathMatTableAngular Materialデータ構造SortByColumns関数TypeScriptHTMLEF CoreマイグレーションFramework CoreAttribute directivesO/Rマッパーazure sql databaseCase式HTTP RequestCSSxUnit.Net Core 3.1VSCode.Net Core Test ExplorerDataverse for Teamsitem関数Google MapsMarker ClustererRANK()関数Dynamics 365 SalesMicrosoft TranslatorマーカークラスタリングライブラリtailwindcssマルチテナントドロップダウンメニューBreakpointObserverメディアクエリスマホPCレスポンシブ入門初心者中級者キャンバスアプリDatePickerDropdownviewビューアクセス制限承認リマインドSetForAllUpdateContextロードマップ技術It情報技術メッセージIDメールfirst()関数nest入れ子動的リストcollectionコレクション複数の添付ファイル承認フローformエクスポートインポートカスタマイズcomponentダイアログコンポーネントdialogTips新機能変数検索Microsoft 365グループセキュリティグループ送信元メールの送信差出人インスタントクラウドフロー自動化したクラウドフロー委任VBAエラーエクセルerror復元restorePower BI個人列ユーザー列SharePoint Onlineリスト非表示アプリ[市民開発者構築自動化したクラウド フローフローの種類インスタント クラウド フロースケジュール済みクラウド フローレスポンシブ レイアウトresponsive layoutデータ行の制限引き継ぎ退職所有者を変更異動LoopMicrosoftdesignJSONデザインtemplateテンプレート運用選択肢列参照列ChatGPTOpenAIオープンAIチャットGPTgalleryギャラリースクロールコンテナショートカットキーshortcut keyconcat関数文字制限フロー実行開発環境環境本番環境ライセンス環境構築手順pipelineCI/CDパイプラインDevOpsMicrosoft 365簡易在庫管理時間外通知ファイルフィルター クエリドキュメント ライブラリfilter querysortソートmultiple item複数項目シェアポイント便利機能カレンダーCalendarTeams
PageTop
ページトップに戻る