ミムチ

Power Automateの「備品購入申請システム開発」シリーズの第4回目ですぞ!

パワ実

第4回目の今回は、開発に入る前の準備として、「開発環境を整備する」ところをやっていきます。

第3回目では、現状の業務の課題整理から、要件定義、フローのアルゴリズム設計、テーブル設計まで、システム開発の「上流工程」を一気にやっていきました。

【Power Automate入門】備品購入申請システム#3 ~要件定義とフローの設計をしよう!~このシリーズでは、Power AutomateとPower Appsを使って、申請・承認フローを一から作っていきます。 第3回目の今回は、その知識を使って、現状の業務の課題整理から、要件定義、フローのアルゴリズム設計、テーブル設計まで、システム開発の「上流工程」を一気にやっていきます。...

第4回目の今回は、フローを作り始める前に必要な「環境」「ソリューション」「接続参照」「環境変数」という4つの仕組みを理解し、実際に作りながら、開発の土台を整えていきましょう!

この記事でわかること
  1. なぜ開発環境と本番環境を分けるのか
  2. ソリューションとは何かとALMの考え方
  3. 接続参照と環境変数の仕組み

Power Automateについて詳しく学びたい方は、ぜひパワ実のPower Automate入門書もご覧ください!

Power Automate入門書を出版しました! パワ実 ついに、私のPower Automate入門書も出版されました! ミムチ 「ゼロから学ぶ」シリーズの第2弾ですぞ! ...

YouTube動画で見たい方は、こちらからどうぞ!

今回実施するところ

このシリーズでは、Power AutomateとPower Appsを使って、申請・承認フローを一から作っていきます。

第4回となる今回は、③のシステム開発に入る前の準備として、開発の「環境」を整えます!

フローの開発に入る前に、環境やソリューションなどを決めておく必要があります。

さらに、事前に必要な接続参照や環境変数を洗い出しておくことで、スムーズに開発を進めることができます。

ミムチ

今回作る環境やソリューションは、⑤のリリース・運用のステップで、本番環境へ持っていくときに、そのまま使いますぞ!

なぜ開発環境と本番環境を分けるのか

環境とは?

「環境」とは、組織のデータ・アプリ・フローを、保存・管理・共有する場所のことです。

A社というテナント、つまり1つの組織の中には、複数の環境を作ることができます。

最初から「既定の環境」が1つ用意されていて、開発用の環境や本番用の環境を、あとから追加で作ることができます。

環境の中には、このあと説明する「ソリューション」という箱があり、その中にアプリやフロー、データベースが入っています。

パワ実

開発用環境で作ったソリューションを、本番用環境に「デプロイ」(配置)するという流れを、今回のシリーズで体験します。

環境の種類

環境には、6つの種類があります。

環境の種類
  • 実稼働:実運用を行う本番環境
  • 既定(Default):テナントに必ず1つある特別な環境。すべてのユーザーがアクセス可能で、検証や軽量なアプリの試用開発向け
  • サンドボックス:開発や、本番運用前のテスト・検証に使う環境
  • 試用版:短期間の個人検証・新機能の評価用。30日後に自動削除
  • 開発者:開発者プランのライセンスを持つ人が、自分専用に作れる環境
  • Dataverse for Teams:Teamsのチームに1対1で紐づく環境

既定の環境は、すべてのユーザーがアクセスできてしまうので、本番運用に使うことは推奨されていません。

今回のシリーズでは、開発用にサンドボックス環境を作り、リリース時は、本番用に実稼働環境を使う、という形で進めます。

サンドボックスや実稼働の環境を作るには、テナントにDataverseの空き容量が1GB以上必要になります。

動いているフローを直接修正するリスク

では、なぜ開発環境と本番環境を分けるのでしょうか?

理由は、「動いているフローを直接いじる」ことに、リスクがあるからです。

本番環境で直接修正する主なリスク
  1. システムが止まる
    修正の途中でフローがエラーになると、その間に申請された分が課長や部長に届かなくなる
  2. 本番データを壊す
    テストのつもりで実行したら、本番環境のSharePointリストを更新・削除してしまう
  3. 修正を元に戻せない
    「昨日までは動いていたのに…」となっても、修正前の状態が残っていないと戻せない

どれも、本番環境で直接改修作業などをしていると、発生しうることです。

ミムチ

既に稼働しているフローを直接修正したくないですぞ…

これを防ぐために、「開発環境」と「本番環境」を分けておく必要があります。

開発環境と本番環境を分ける

今回は、2つの環境に分けます。

そして、開発環境で確認できたフローを、本番環境へ「移す」作業は、リリース回でやっていきます。

開発環境を作成する

では、実際に開発環境を作っていきます。

環境は、「Power Platform 管理センター」画面から作ります。

今回作る開発用環境
  • 名前:PA入門_開発
  • 種類:サンドボックス
  • 地域:日本
  • Dataverseを追加:はい
  • セキュリティグループ:なし(後から設定可)

1.Power Platform 管理センターの左の「管理」から「環境」を開くと、このテナントにある環境が一覧で表示されます。

上の「新規」を押すと、右側に作成の画面が出てくるので、上記の設定で作成します。

2.以下のように入力し、「次へ」をクリックします。

「Dataverseデータストアを追加しますか」は、必ず「はい」にしてください。

ソリューションはDataverseの機能なので、これがないとソリューションが使えません。

3.セキュリティグループは、なしにして、「保存」します。

4.保存すると環境の作成が始まり、一覧に「PA入門_開発」が「準備中」で追加されます。数分待って「準備完了」に変わればOKです。

5.Power Automateの画面の右上の「環境」というところに、いまいる環境の名前が表示されます。

ここをクリックすると環境を切り替えられるので、「PA入門_開発」を選びます。

パワ実

マイフローを開くと、まだ何のフローもない状態です。既定の環境とは、完全に分かれているということですね。

フローを作る前には、必ず正しい環境にいるかを確認しましょう!

ソリューションとは?

ソリューションとは

ソリューションとは、Power Appsアプリ、Power Automateフロー、Copilot Studioエージェント、Dataverseのテーブル、接続参照などを、1つのパッケージとしてまとめて置けるものです。

1つの環境の中に、ソリューションAやソリューションBといった箱があって、それぞれの中にアプリやフローが入っている、というイメージです。

ソリューションには、2つの種類があります。

アンマネージドソリューションとマネージドソリューション

アンマネージドソリューション
  • 開発中の「編集できる箱」
  • 開発環境で使い、中身を自由に編集できる
マネージドソリューション
  • 配布用の「編集できない箱」
  • 開発が終わったあとのテスト環境や、本番環境で使う
  • 中身は直接編集できない。修正したいときは、開発環境で直して、もう一度インポートし直す

本番で直接編集できない、というのは、さっきの「直接修正するリスク」の話と、つながっています。

ミムチ

「本番では直接いじらない」という仕組みとして強制してくれるのが、マネージドソリューションですな!

今回作るのは、開発環境のため、アンマネージドソリューションです。リリース時は、これをマネージドソリューションとしてエクスポートして、本番環境にインポートします。

ALMを考えた環境の設計

ここで、「ALM」という言葉を説明しておきます。

ALMは、アプリケーションライフサイクル管理の略で、アプリケーションの開発から、リリース・運用・更新までを、一貫して管理する考え方のことです。

「すなわち、開発から本番までの流れを、環境とソリューションで管理すること」と考えてよいと思います。

開発、テスト、本番リリースの流れを前提にすると、一般的にはこのような環境設計になります。

ALMを考えた環境設計(例)
  1. サンドボックス環境①(開発用):アンマネージドソリューションで、フローやアプリを作る
  2. サンドボックス環境②(テスト用):マネージドソリューションを入れて、本番と同じ条件で確認する
  3. 実稼働環境(本番用):マネージドソリューションとしてリリースする

「環境」は場所を分ける仕組みで、「ソリューション」は部品をまとめて運ぶパッケージです。

今回のシリーズは、シンプルにするため、テスト環境は省略して、開発・テスト用のサンドボックス環境と、本番用の実稼働環境の、2段階で進めます。

パワ実

小規模なシステムでは、このように開発とテストをまとめるケースもあります。ALMという言葉も、ぜひこの機会に覚えておいてください!

ソリューションを作成する

では、ソリューションを作っていきます。

今回作るソリューション
  • 表示名:PA入門_申請承認フロー
  • 名前:PAIntro_PurchaseApproval
  • 発行元:PA入門(プレフィックス:pai)
  • バージョン:1.0.0.0

まず、右上の環境が「PA入門_開発」になっているか確認します。

ここが既定の環境のままだと、既定の環境にソリューションができてしまうので、必ず確認しましょう。

1.左のメニューから「ソリューション」を開き、「新しいソリューション」をクリックし、上記の設定に沿って入力します。

2.発行元は、「新しい発行元」から新しく作ります。

表示名は「PA入門」、名前は「PAIntro」、プレフィックスは「pai」にします。

このプレフィックスが、このあと作る部品の内部名の頭に、自動でつきます。

たとえば、「SharePointサイトURL」という環境変数を作ると、内部名は「pai_SharePointSiteURL」になります。

3.バージョンはそのまま1.0.0.0で、「作成」を押します。

パワ実

ソリューションができました。このソリューションの中に、これから接続参照、環境変数、フロー、アプリを作っていきます。

接続参照とは?

「接続」とは

まず、第2回で学んだ「コネクタ」を思い出してください。SharePointやTeamsといったサービスとつなぐための部品が、コネクタでした。

そのコネクタは、「誰のアカウントでつなぐか」という情報を持っていて、これを「接続」といいます。

画面で見ると、このように、SharePointコネクタは、パワ実のアカウントで接続している、という形です。

ここで、困ることがあります。

開発環境では自分のアカウントで動かしたいけれど、本番環境では運用担当のアカウントで動かしたい、というように、環境によって接続を切り替えたいことがあります。

ところが、ソリューション外で作ったフローでは、接続がフローの中に直接埋め込まれているため、修正したい場合、フローを1つずつ開いて直すことになります。

接続参照の仕組み

そこで、接続参照を使います。

接続参照は、接続をフローに直接埋め込まず、「参照先」として一段かませる仕組みです。

フローは、「SharePoint用の接続参照」を見に行きます。

そして、実際に「誰のアカウントでつなぐか」は、接続参照が持っています。

開発環境ではパワ実の接続、本番環境では運用担当の接続、というふうに、接続参照の中身だけを差し替えれば、それを見ている、すべてのフローの接続が、一度に切り替わります。

接続参照は基本的に、コネクタごとに1つ作ります。

接続参照は、フローやアプリの開発前に作成しておき、実装でそれぞれの接続参照を設定します。

接続参照を作成する

では、接続参照を作っていきましょう!

今回作る接続参照
  • SharePoint接続:SharePointコネクタ
  • Teams接続:Microsoft Teamsコネクタ
  • Approvals接続:Approvalsコネクタ

1.ソリューションの中で、「新規」から「その他」、「接続参照」を選びます。

2.表示名は「SharePoint接続」、件名は「SharePoint」を設定し、コネクタは「SharePoint」を選択します。

まだ接続がない場合は、ここで「新しい接続」を作り、「作成」します。

同じ手順で、Teams、Approvalsの接続参照も作ります。

確認のために、ソリューションの中に試しのフローを1本作ってみます。

手動トリガーのフローを作り、SharePointのアクションを追加して、アクションの接続のところを見てみましょう。

さっき作った「SharePoint接続」の接続参照が、自動で選ばれています。

ソリューションの中でフローを作ると、このように、接続参照を経由して接続する形になります。

環境変数とは?

「変数」との違い

第2回で「変数」を学びましたが、環境変数は、名前が似ているだけで、まったく別のものです。

変数
  • フローの中にあって、実行中の一時的な値を入れておく箱(保存先のフォルダパス、カウンタなど)
  • フローが実行されるたびに値が決まり、フローの処理の中で値が変わる
環境変数
  • ソリューションの中、つまりフローの外にある
  • 「環境ごとに変わる設定値」を設定する(SharePointのサイトURL、SharePointリスト、通知先など)
  • 環境ごとに1回決めておいて、変えるときは、管理者がフローを直さずに値だけを変える
ミムチ

「フローの中の一時的な値」が変数、「フローの外の、環境ごとの設定値」が環境変数ですな!

何を環境変数にするか

では、今回のシステムで、何を環境変数にするかを決めます。

判断基準はシンプルで、「開発環境と本番環境で、値が変わるかどうか」です。

一方、承認のしきい値、30万円は、開発環境でも本番環境でも同じです。

そのため、今回は、しきい値はフローの中に直接書くことにします。

パワ実

ですが、たとえば「このシステムをパッケージとして、複数の他社にも提供する」というケースでは、

しきい値をあえて環境変数にしておいて、「導入するときに、値だけ設定してもらう」という作り方をする場合もあります。

環境変数を作成する

では、環境変数を作っていきましょう。

今回作る環境変数
  • SharePointサイトURL:データソース型/既定値:テスト用サイト
  • 申請一覧リスト名:データソース型/既定値:テスト用リスト
  • 通知先アドレス:テキスト型/既定値:自分のメールアドレス

1.ソリューションの中で、「新規」から「その他」、「環境変数」を選びます。

2.1つ目は「SharePointサイトURL」です。データ型は「データソース」、コネクタはSharePoint、接続は自分の接続、パラメーターの種類は「サイト」にします。

「データソース」型は、SharePointのサイトやリストを、一覧から選べる便利な型です。

こうすると、既定値のところで、サイトを一覧から選べるようになりますので、テスト用のサイトを選びます。

※SharePointサイトを作っていない場合、適当に選択しておきます

3.「申請一覧リスト名」と、「通知先アドレス」の環境変数も同様の手順で作成します。

パワ実

開発中は、通知が全部自分に届くようにしておく、ということですね。

作ったら、試しフローで確認してみます。

SharePointアクションのサイトのアドレスのところをクリックして、「カスタム値の入力」を選んで、動的なコンテンツを開きます。

「パラメーター」という欄に、いま作った3つの環境変数が並んでいます。「SharePointサイトURL」を選ぶと、サイトのアドレスに環境変数が入ります。URLを直接書くのではなく、環境変数を参照する形です。

これで、開発環境と本番環境で、フローを直さずに、環境変数の値を変えるだけで、参照先のサイトとリストを切り替えられるようになります。

実際のフローでは、次回以降、この形で作っていきます。

接続参照と環境変数の一覧

最後に、今回作った接続参照と環境変数を、一覧で確認します。

種類表示名内部名開発環境の値本番環境の値
接続参照SharePoint接続pai_SharePointパワ実の接続リリース時に設定
接続参照Teams接続pai_Teamsパワ実の接続リリース時に設定
接続参照Approvals接続pai_Approvalsパワ実の接続リリース時に設定
環境変数SharePointサイトURLpai_SharePointSiteURLテスト用サイトリリース時に設定
環境変数申請一覧リスト名pai_RequestListテスト用リストリリース時に設定
環境変数通知先アドレスpai_NotifyAddressパワ実のアドレスリリース時に設定

開発環境では、テスト用の値が入っています。本番環境の値は、リリース時、ソリューションをインポートするときに設定します。

この一覧があると、「本番に持っていくときに、何を変えればいいか」が、一目で分かります。

ミムチ

この一覧は、実装前の設計段階で決めておく必要がありますぞ!実務でやるときは、この一覧も設計書に入れておくのがおすすめですな。

さいごに

この記事は、Power Automate入門の「申請・承認フロー開発シリーズ」の4回目で、開発に入る前の準備として、「環境」「ソリューション」「接続参照」「環境変数」の4つを学びました。

おさらいすると、以下のようになります。

  1. 開発環境と本番環境を分けて、「開発する場所」と「本番運用の場所」を切り離す
  2. ソリューションは、フロー、アプリ、接続参照、環境変数などをまとめる「パッケージ」
  3. 接続参照と環境変数は、環境ごとに値を変えることができるので、本番に移すときは、この2つを差し替えるだけで済む
パワ実

「マイフロー」に直接フローを作っている方は、ぜひソリューションの中で作る習慣をつけてみてください。

ミムチ

次回は、いよいよ実装ですぞ!今回作ったソリューションの中に、申請・承認フローの骨格を作っていきますぞ!

ABOUT ME
パワ実(元Microsoft MVP)
2021年からPower Platformの勉強中。 2023年にIT系・コンサルタントに転職し、仕事でPower Platformを活用したコンサルを行っています。 2025年にMicrosoft MVP for Business Applications 受賞。Power Platformを使っていく中で、知りえた情報をブログ、Youtube、Xで発信しています。 2025年8月~現在は、フリーランスとして、Power Platform系ITコンサルタントとして活動中。 Power Platformに関するご相談は以下のページからお願いします! https://www.powerplatformknowledge.com/contact/