151.4K Views
August 06, 22
スライド概要
Power Apps オンライン勉強会 ~つまづきポイント対策会 2回目~ にて登壇した際の登壇資料です。
Power AppsとPower Automateの連携にて躓きやすい点について纏めています。
レコーディング内容はこちら:https://youtu.be/ZmMjdr5Vri0
https://powerapps.connpass.com/event/254383/
Japan Power Apps User Group Power AppsとPower Automateの 連携でのつまずきポイント 2022/08/06(土) コルネ #JPAUG
自己紹介 Name コルネ Twitter @koruneko32767 Blog コルネの進捗や備忘録が記されたなにか YouTube Korune Ch. コルネ - YouTube 2
Agenda はじめに • これまでの連携方法と最近の連携方法 • Power Automateペインを有効化するには 技術的なつまずきポイント • アプリと連携可能なフローの条件 • アプリにフローを追加するには • アプリからフローを呼び出す • アプリからフローに値を渡す • フローからアプリに値を渡す • 必須パラメータとオプションパラメータ 運用方法や権限などによるつまづきポイント • アプリに追加したフローの更新方法と更新が必要なタイミング • アプリからフローを実行した場合の実行権限 • アプリの開発者とフローの開発者が異なる場合 3
これまでの連携方法と最近の連携方法 これまで 最近 Power Automateペ インが追加されました! 今日はこちらの方法についておはなし 4
Power Automateペインを有効化するには 設定 > 近日公開の機能 > プレビュー > Power Automateペインの有効化 をオンに設定 5
Power Appsにはどんな Power Automateでも、 連携することができるの? 6
アプリと連携可能なフローの条件 Power Appsと連携可能なPower Automateを作成するには... トリガーにPower Appsを設定する必要があります Power AppsとPower Apps(V2) どちらを利用してもOK! * 特別な理由がなければV2の利用を推奨します 7
アプリからフローを呼び出す にはどうすればいいの? 8
アプリにフローを追加するには このフローをアプリに追加したい 検索も可能 Power Automateペインからフローの追加 (もしくは新規作成)を行うことができる 9
アプリにフローを呼び出す 追加したフローをアプリから呼び出す場合は... [フロー名].Run() というような式をアプリ内の動作のプロパティ(OnSelectやOnVisibleなどOn…)に設定してあげる必要があります ボタンが押されたときにフローが実行! * これはパラメータを設定していない場合の例 パラメータに関しては次で説明 10
アプリ⇆フロー間でデータや 値を相互に連携するにはど うすればいいの? 11
アプリからフローに値を渡す アプリからフローに対して値を渡す場合、フロー側でパラメータを作成する必要があります 作成可能なパラメータの種類(型)は以下6つ! パラメータを作成したら、動的な値からフロー内で値を利用可能に 12
アプリからフローに値を渡す アプリからフローに値を渡す場合は... [フロー名].Run([Parameter1] [, Parameter2...]) のように、数式を設定する必要があります。 先ほどのフローをアプリから呼び出す 場合はこのような式になる * これはパラメータを必須に設定した場合の例 パラメータの必須/オプションについては後程 13
フローからアプリに値を渡す フローからアプリに値を渡すときに利用するのは、このアクション! 設定できる出力の種類(型)は全部で6つ! アプリに渡したい値の型を選び、出力の名前とパラメータを設定します。 フローからアプリに値を返したい場合は 「PowerAppsまたはFlowに応答する」 アクションを利用しよう! 14
フローからアプリに値を渡す アプリ側でアプリに値を返すフローを設定すると、このようにフローからの返り値のパラメータを見ることができます。 上記のようなかき方では、メッセージのリンクを画面に表示する。というのが難しいのでフローを変数に入れてあげましょう。 このように設定した場合でもアプリからフローは問題なく呼び出され、フローからの返り値が変数にセットされます! 今回はパラメータを絞らなかったので、このようにレコード形式で変数にはセットされていますね。 変数に割り当てる値のパラメータにてフローを 呼び出してあげればフローからの返り値を変数 として取得できるよ! 15
フローからアプリに値を渡す~余談~ フローからアプリに値を返すアクションを追加せずに、アプリ内でフローの呼び出しを変数にセットした場合、True or FalseのBoolean値を取得することができます。 ここでよく勘違いするのですが、これはフローの実行結果の成否ではなく、アプリからフローの呼び出しが成功したかの成 否です! フローの実行が成功したか失敗したかまで判定したいのであれば、実行成否をフローに返すようにしましょう。 「実行条件の構成」を活用しよう! 他キーワードは「スコープ」と「終了」アクション 16
パラメータの「必須」と「オプ ション」ってなに?どうやって 設定するの? 17
必須パラメータとオプションパラメータ Power Apps(V2)アクションに設定するパラメータは必須(Required)とオプション(Optional)属性を設定すること が可能です。 パラメータはデフォルトでは必須パラメータとして作成されます。 オプションに変更したい場合は、対象のパラメータの三点リーダーから「フィールドをオプションにします」を選択します。 パラメータの必須/オプションの変更は対象 のパラメータの設定からお手軽に! 注意点! 現時点では、対象のパラメータが必須かどうかをぱっと見ですぐ見分けることができないです。 見分ける方法は2つ! 1. 三点リーダーを選択して、必須に設定するとでるかオプション設定するとでるかで見分ける 2. 「コードビュー」から「required」の中身を確認する いつかUX改善してもらえると助かりますねー 18
必須パラメータとオプションパラメータ パラメータをオプションに設定した場合はフロー内でそのパラメータを扱うときに注意が必要です! オプションに設定したパラメータは... アプリから値が渡されない そもそもパラメータが作成されない! ということを考慮する必要があります。 もし特になにも考慮せずにオプションのパラメータを利用した場合... パラメータがみつからないとのエラーが出る! 19
必須パラメータとオプションパラメータ オプションパラメータをフロー内で扱う場合は、そのパラメータが存在しているか?をまずはチェックする必要があります。 判定は以下のような式で行えますね。 オプションに設定したパラメータをフロー内で扱う場合は empty()で対象のパラメータが存在するか判定してから パラメータを利用するようにしよう! 20
必須パラメータとオプションパラメータ アプリからフローを呼び出す場合オプションパラメータはもちろん省略可能です。 オプションパラメータを設定する場合は必須パラメータのときと設定方法が異なるので注意が必要です。 このように、オプションパラメータはレコードを宣言するように設定してあげる必要があります。 オプションをアプリからフローに渡す場合は... [フロー名].Run([Required1] [, Require2...] [,{OptionParam1: Option1...}]) 21
必須パラメータとオプションパラメータ~余談~ アプリからフローに値を渡す場合は、 必須 → オプション の順番で設定する必要があります。 フローのパラメータ定義 パラメータ名 属性 Required1 必須 Required2 必須 Optional1 オプション Required3 必須 Optional2 オプション アプリ上での設定式 (Required1, Required2, Required3, {Optional1, Optional2}) 必須 → オプション の順番で設定し、 • 必須項目は設定した順番通りに設定し、省略不可 • オプションは順不同で設定可能し、省略可能 22
アプリ内に追加したフローの 更新タイミングはいつで、どう やって更新すればいいの? 23
アプリに追加したフローの更新方法と更新が必要なタイミング フロー側を編集して更新をした場合、アプリに追加したフローを更新してあげる必要がある場合があります。 アプリに追加したフローを更新したい場合は、Power Automateペインより更新したいフローの三点リーダーを選択し て、「最新の情報に更新」を選択します。 アプリに追加済みのフローを更新する必要がある場合は Power Automateペインから最新の情報に更新! 24
アプリに追加したフローの更新方法と更新が必要なタイミング アプリに追加したフローを後から変更した場合、アプリ側でフローを最新の情報に更新してあげる必要があるのは、だい だい以下のパターンです • Power Apps(V2)のパラメータを追加・変更した場合 • 新しい接続情報を用いたアクションをフロー内に追加した場合 これらの更新をフロー側で行ったのにアプリ側でフローの更新を行わずフローを呼び出した場合... アプリ側では以下のようなエラーが表示され、フロー側はそもそもフローが実行されない。 というような動作になります。 このことを知っていればApps側のエラーメッセージをみればエラー原因を理解しそこから 対処することも可能かもしれないですが、初見だとわかりにくいですね。。。 25
アプリに追加したフローの更新方法と更新が必要なタイミング~余談~ 先ほどの説明でPower Apps(V2)のパラメータを追加・変更した場合、アプリに追加したフローの更新が必要だと説 明しましたが、実はパラメータの属性を必須⇆オプションに変更した場合だとアプリ内のフローを更新せずともエラーが発 生することなく実行自体はできてしまいます。(* だからといって更新しなくていいというわけではないよ!) フローのパラメータ パラメータ名 アプリの式 型 属性 Param1 Text 必須 Param2 Text 必須 Flow.Run(“Param1”, “Param2”) Param2をオプションに変更 フローのパラメータ パラメータ名 アプリの式 型 属性 Param1 Text 必須 Param2 Text オプション 上の記載方法は本来は正しくないのに エラーにならずにフローが実行できてしまう Flow.Run(“Param1”, “Param2”) Flow.Run(“Param1”, {text: “Param2”}) * 実際に動確した人が戸惑わないように追加した資料です よくわからない人はとりあえずパラメータ更新したらフローも更新してくださいね 26
アプリに追加したフローの更新方法と更新が必要なタイミング~余談~ フローのパラメータの必須⇆オプションを更新したのにも関わらず、アプリ内に追加したフローを更新しないと • あとからアプリを確認したときにそのパラメータの属性を勘違いしてしまい、バグの要因となる • アプリを他の環境に移したときにエラーが発生する というような問題があります。 なので、「今とりあえず動いているからいいや」とはせずに、きちんとフローの更新を行ってあげましょう! • Power Apps(V2)のパラメータを追加・変更した場合 • 新しい接続情報を用いたアクションをフロー内に追加した場合 はフローの更新を行う! * 実際に動確した人が戸惑わないように追加した資料です よくわからない人はとりあえずパラメータ更新したらフローも更新してくださいね 27
アプリからフローを実行した 場合、誰の実行権限でフ ローは実行されるの? 28
アプリからフローを実行した場合の実行権限 アプリからフローを呼び出した場合デフォルトではフローを実行したユーザの権限で動きます。 ただし、フローの設定を変更した場合は、特定の権限でアクションを実行させることが可能です。 フローの詳細画面から、「実行のみのユーザ」で「編集」を選択すると、「実行専用アクセス許可を管理」というポップアッ プが表示されますので、その中の「仕様する接続」を固定の接続にすればその接続でそのアクションは実行されます。 実行専用のユーザーによって提供 - フロー実行者の権限 この接続を使用する - 特定の実行者の権限 フローがアプリから実行される権限はフローの設定によって異なる! 実行権限はアクション単位に設定可能なので要件に合わせてカスタマイズしよう。 29
アプリの開発者とフローの開 発者が異なる場合に気を 付けることは? 30
アプリの開発者とフローの開発者が異なる場合 アプリ開発者とフロー開発者が異なる場合で、フロー内で接続情報が必要なアクション(TeamsやOutlookなど)を利 用している場合は注意が必要です。 ★フロー内で接続情報を用いるアクションを利用していない場合 フローをアプリ開発者のユーザに共有してあげるだけでアプリ内にフローを追加可能 ★フロー内で接続情報を用いるアクションを利用している場合 フローをアプリ開発者のユーザに共有してあげるだけではアプリ内にフローを追加できない アプリ開発者がフローを追加できるようにするにはさらにフロー内で利用している接続情報も 共有する必要があります ただし接続情報の共有は影響範囲が大きすぎるので、 1. フローをアプリに追加する作業だけはフロー開発者が実施 2. フロー内の接続情報をアプリ開発者の接続情報に変更 のいずれかを実施することを推奨します。(1が多分いいと思います) 31
宣伝タイム🎉
8/20(土) 14:00~17:00 JPPGB #2 を開催します! 本来業務アプリを作成するはずのPower Platformを用いてゲームを作成してみるイベントです! 今回はたなさんとMiyakeさんのお二方に メインスピーカーを務めていただきます! イベント当日LT枠で登壇してくれる方 募集中! 登壇初心者の方も歓迎!!! https://jppgb.connpass.com/event/254216/ 33