このシリーズについて
フローとつながったキャンバスアプリを別環境へ移すときの管理方法を整理しています。第1部から第5部で運び方を決め、第6部からは実際に移して確かめた結果を書いています。本記事は第7部です。
- 第1部 フローとつながったアプリを別環境に移すなら、アプリのパッケージではなくソリューション
- 第2部 ソリューションを1本にするか、2本に分けるか
- 第3部 移行先の SharePoint との差は環境変数で吸収する
- 第4部 アプリからフローを呼ぶ参照は、環境変数では吸収できない
- 第5部 結局どう運ぶのがよかったか
- 第6部 環境変数で指したリストに、アプリからも読み書きできた
- 第7部 アプリの中では、リストの名前ではなく環境変数の名前が出てくる(この記事)
- 第8部 ソリューション方式は、壊れそうなときに止まってくれる
この記事は学習メモです。実際に検証できた範囲と、まだ推測にとどまる範囲を分けて書いています。間違いや不足に気づいたら随時更新します。
最終的なゴールは、アプリとフローを別テナント(先方環境)へ移すことです。現在は自分たちのテナント内にある開発環境と既定環境を使って検証している段階で、未検証の部分も残っています。ある程度方向性が定まってきたので、いったん整理しました。
この記事では、キャンバスアプリの「パッケージのエクスポート」で出力するものを「アプリのパッケージ」、Dataverse のソリューションとしてエクスポートするものを「ソリューション」と呼び分けています。
背景
第6部で、環境変数で指したリストにアプリから読み書きできることは確かめました。その過程で、環境変数まわりの画面の作りについていくつか分かったことがあります。事前に知っていれば迷わずに済んだ話なので、まとめておきます。
課題
第3部の検証では、移行先のリストを表示名も内部名も移行元と同じにして用意しました。ただ、それが必須なのかどうかは確かめていません。実務で先方のテナントに移すとなると、向こうのリスト名をこちらに合わせてもらう必要があるのかどうかは、早めに知っておきたいところです。
分かったこと
アプリ内のデータソース名は、環境変数の名前になる
環境変数経由でリストを追加すると、アプリの左側のデータのところに出てくるのは、リストの表示名ではなく環境変数の名前でした。式を書くときもその名前を使います。サイトの URL はデータセット名として裏側に入る形です。
ということは、環境変数の名前さえ揃っていれば、環境ごとにリスト名が違ってもアプリの式は書き換えずに済むはず。ただしこれは画面で見た挙動からの推測で、移行元と移行先で違うリストを指す形までは試していません。今回はどちらも同じリストを指して確認しています。
接続のダイアログは2段階で、どちらも「詳細設定」タブに入る
「SharePoint サイトに接続」で親であるサイトの環境変数を選び、続く「一覧の選択」で子であるリストの環境変数を選びます。どちらの画面も、そのままだと環境変数は出てきません。「詳細設定」タブに切り替えて初めて選べるようになります。ここは知らないと「環境変数が出てこない」と悩むところですね。
データソース型の環境変数は、それ自体が SharePoint 接続を必要とする
ソリューションのインポート画面で、フローが使う接続参照とは別枠に「データ ソース タイプの環境変数に必須です SharePoint」という行が並びます。接続の指定が2種類あるように見えて一瞬戸惑いましたが、フローのための接続と、環境変数がリストを解決するための接続は別物ということのようです。
環境変数の値は、ドロップダウンから選ぶ
移行先でフロー用ソリューションをインポートすると、環境変数の値を聞かれます。URL や GUID を手で打ち込むのではなく、サイトとリストをドロップダウンから選ぶ形でした。
一方、アプリ用ソリューションのインポートでは、環境変数も接続参照も聞かれずそのまま入りました。手間としてはかなり楽です。アプリ用ソリューションには環境変数の定義も接続参照も入れていないので、指定を求める対象がそもそもなかったということだと思います。
ここは真似するときに注意が必要だと思っていて、何も聞かれずに済むのは、先にフロー用ソリューションを入れて参照先がそろっている場合の話です。順番が逆だとインポート自体が通りません。これは第8部に書きます。
まとめ
環境変数経由でリストを追加すると、アプリの中ではリストの表示名ではなく環境変数の名前でデータソースが現れます。接続のダイアログはサイトとリストの2段階で、どちらも「詳細設定」タブに入らないと環境変数を選べません。インポート時には、フロー用の接続参照とは別に、環境変数のための SharePoint 接続も指定します。
移行元と移行先でリスト名を揃える必要があるかどうかは、式に出てくるのが環境変数名である以上、揃えなくてもよさそうに見えます。ただし違うリストを指す形は試していないので、ここは次の宿題です。
参考
- キャンバス アプリでデータ ソース環境変数を使用する
https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/environmentvariables-data-source-canvas-apps
前の記事:第6部 環境変数で指したリストに、アプリからも読み書きできた
https://qiita.com/Kanata177/items/a80fb9f77f0233841351
次の記事:第8部 ソリューション方式は、壊れそうなときに止まってくれる