【Power Apps / Power Automate】環境変数を活用する(前編)

こんにちは。DXソリューション営業本部の吾妻です。
通常、キャンバスアプリ/クラウドフローの動作を変更するためには、その都度アプリスタジオやフローデザイナーから編集する必要がありますが、Power Platformに用意されている「環境変数」を活用することで、アプリやフローを編集することなく、それらに入力するパラメーターを更新し、動作も変更することができるようになります。
自分自身で作成、利用するだけのアプリであれば、環境変数を利用しなくても実装できてしまうことが多いですが、アプリを他部署に展開するために複製したり、アプリをソリューションにまとめて ALM (アプリケーション・ライフサイクル・マネジメント)に基づいて管理したりする場合には、環境変数を利用しないと実現できないシナリオが出てきます。
前編となるこの記事では、環境変数の考え方や、Power Platformのどこで利用できる機能なのかについて、簡単にご紹介したいと思います。
環境変数とは?
「(Power Platformで提供されている)環境変数」は、そもそも Windows や Mac といった OS で提供されている「環境変数」を、Dataverseで再現したものです。
PCに何かアプリケーションをインストールする際に、「Path」や「JAVA_HOME」、「APP_ENV」といった環境変数を設定したことがある方もいるかと思います。これらの環境変数は、複数の箇所で共通の定数を参照させたい場合や、アプリケーション自体を編集することなく、ファイルの読込み先や処理内容、ログの出力先といったプログラムの動作を変更する場合に利用されています。また、APIの認証キーや、個人情報といった、プログラムのソースコードと一緒に管理できない(漏洩させられない)データをプログラムに受け渡す際にも利用されています。
設定値の格納方法としては、環境変数以外にも、設定ファイルをストレージに配置したり、データベースに用意したマスタテーブルで管理したりすることも考えられますが、それらと比較した環境変数の利点として、以下のようなものがあります。
- バージョン管理システムでソースコードを管理する際に、誤ってコミットして情報漏洩してしまうリスクを防ぐことができる
- 大きいサイズのデータを格納するための機能ではないので、多量のトランザクションデータを格納することはなく、少数の設定値だけを格納する意識が働く
- シンプルなKey-Valueデータを格納するので、設定ファイルのフォーマットを独自に定義したり、解析したりする必要がない
このように、アプリケーションのロジックとデータを分離するために活用される「環境変数」と同じ考え方で、Power Platformの各サービスに対して、アプリやフローを編集しなくても、動作を変更するために利用されるのが、「(Power Platformで提供されている)環境変数」です。
環境変数を利用できる場所は?
Power Platformでは、以下の場所で、環境変数を利用することができます。
Power Platform製品 | 場所 | 備考 |
Power Apps | ①メーカーポータル | ソリューションコンポーネントとして環境変数を追加/編集/削除したり、ソリューションパッケージをインポートする際に環境変数を更新したりできる |
②データソース | データソースを接続する際に既存の環境変数を選択する | |
③数式 | LookUp関数を用いて、Environment Variable Valuesテーブルからレコードを取得する | |
Power Automate | ④動的なコンテンツ | 動的なコンテンツから選択することで、アクションのパラメーターや数式で利用できる |
カスタムコネクタ | ⑤URL・認証設定 |
@environmentVariables("環境変数名")
のような構文を記述することで利用できる |
この中で、Power Appsキャンバスアプリの数式から参照する場合だけは例外で、「環境変数を参照する機能」が用意されているわけではなく、通常のDataverseテーブルと同様に、「レコードを参照する機能」を用いて実現します。
具体的なUIの例
それでは、それぞれの製品で環境変数を利用するための機能を詳しく見ていきましょう。
①メーカーポータルで環境変数を編集する際のUIを示します。
名前(論理名)とデータ型については、作成時のみ指定することができ、後から変更することはできません。また、既定値や現在値に設定できる文字数の上限は、2000文字となっているようです。
②データソースにSharePointリストを指定するために、Power Appsキャンバスアプリで環境変数を利用する例を示します。
データソース環境変数にSharePointの情報を格納する場合、SharePoint サイト の情報を格納するための環境変数と、SharePoint リスト の情報を格納するための環境変数の2種類を用意する必要があります。ちなみに、「Dataverse」コネクタの「データソース型」環境変数の場合は、これとは異なり、接続先の「環境(Power Platform環境)」を格納することができるようになっています。
③Power Appsキャンバスアプリの数式で環境変数を参照する例を示します。
Power Platformの環境変数は、Dataverseテーブル「Environment Variable Definition(定義)」と「Environment Variable Values(値)」の2テーブルに分かれて格納されています。この2テーブルの間にはリレーションが張られているので、図中の数式のように記述することで、環境変数の値を取得することができます。
④Power Automateクラウドフローの動的なコンテンツで、環境変数を選択するUIを示します。
Power Appsキャンバスアプリの場合とは異なり、リストから環境変数名(表示名+括弧内に論理名)を選択するだけで、環境変数の値を取得することができます。
⑤カスタムコネクタでホスト名を指定する際に、環境変数を利用する例を示します。
これまでのUIと比較すると若干違和感がありますが、プレーンテキストを入力する「ホスト」「ベースURL」などの入力欄に対して、図中のような記述を行うことで、環境変数の値を反映させることができます。
このように、メーカーポータルで環境変数を一度定義してしまえば、Power AppsやPower Automate、カスタムコネクタなどの様々な場所から設定値を参照することができるように、それぞれの製品で機能が用意されています。
まとめ
今回は、Power Platformで用意されている、環境変数の概要と、Power Platformでの利用箇所についてご紹介しました。
次回の記事では、Power Platformの「ALM」の考え方と関連付けて、実際のシステムで環境変数をどのように利用すべきかをご説明したいと思います。QES では Power Platform の開発支援、QAサポート、開発者教育、ガバナンス整備など、組織で Power Platform を活用するためのサポートを包括的にご提供しています。Power Platform 活用についてご興味がある/利用中だが課題を感じていらっしゃるお客様はまずはお気軽にお問い合わせください。
このブログで参照されている、Microsoft、Windows、その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。