#ProjectOakdale アプリが管理されている場所を調べる！


前々回は「Project Oakdale」の概要。と言いますか、当方の当方による当方のタメのメモ。
前回は「CDS Project Oakdale」の裏ワザ（？）と言いますか、ビジュアルエディター上で選択できないデータ形式を利用する手段を発見しました。

※Project Oakdale は「Dataverse for Teams」として一般公開されました → [参考情報](https://qiita.com/yamad365/items/a8d8ac6b4f46de8f2e32)

■関連記事
　- [Project Oakdale に関する私的メモ](https://qiita.com/yamad365/items/eb9c96dbebf6ae770648)
　- [CDS #ProjectOakdale の裏技？ #PowerApps](https://qiita.com/yamad365/items/2799a158c275bcd714dd)

今回は「Project Oakdale」で作成したアプリたちが”ドコで管理されているか？”の謎に迫りたいと思います。我々は、Microsoft Teams の奥地へと旅立った・・・。

# 諸注意
Project Oakdale は記事投稿時点でプレビューです。今後の更新によって大幅な変更が発生する可能性があります。また、当記事の著者は製品開発関係者ではありません。そのため、質問等をいただいても回答できない場合があります。（※その場合「わかりません」の返信も実施しない場合がありますのでご了承ください。）また、コンテンツのご利用により、万一、何らかの不都合や損害が発生したとしても当方は何らの責任を負うものではありません。
(´ω`)。○○（記事を読んでくださる方は、皆さんオトナだと信じてるけど念のため…）

# 結論：ソリューションで管理されている
調査した限りでは Project Oakdale で作成した Power Apps アプリや、テーブル（エンティティ）は全てソリューションで管理されているようです。”ソリューション”とは何ぞや？という方は Docs をご確認ください。

　[ソリューションの概念](https://docs.microsoft.com/ja-jp/power-platform/alm/solution-concepts-alm?WT.mc_id=BA-MVP-5004053)

間違いを恐れずにザックリと説明すると「Power Apps アプリや Automate フロー等をひとまとめにする仕組み」 ＝ ”ソリューション” です。

アプリやフローは、バラバラで個別に作成も可能ですが、それを「管理したい単位」で１つにまとめられるスグレモノですね。「ある目的のために作成されたアプリやフローを”１つのカタマリ”として管理できる」という概念であり、仕組みである、と個人的に捉えています。前回の記事で、Teams上の Power Apps 画面「ビルド」タブから遷移可能な詳細画面で”ソリューションのような画面”と案内しておりました。今回はその裏付け、といった内容です。

# チームに Project Oakdale 環境が無い状態
では、実際に調査した結果をまとめていきます。
まずは”おーくでーる環境”を作成していない状態の確認から実施します。下記の動画を確認いただくとわかるのですが、既にいくつかの Project Oakdale 環境、アプリを作成しています。新たに「Sample01」というチームを作成した直後の状態です。チーム作成直後で、Oakdale 環境を追加していないため「Sample01」という環境は見当たらないコトがわかります。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/PowerApps?src=hash&amp;ref_src=twsrc%5Etfw">#PowerApps</a> <a href="https://twitter.com/hashtag/ProjectOakdale?src=hash&amp;ref_src=twsrc%5Etfw">#ProjectOakdale</a> 「Sample01」環境作成「前」 <a href="https://t.co/CUK5r5N9db">pic.twitter.com/CUK5r5N9db</a></p>&mdash; やま (Yama) (@yamad365) <a href="https://twitter.com/yamad365/status/1315284172122988545?ref_src=twsrc%5Etfw">October 11, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# チームに Project Oakdale 環境を追加
次に、新規作成した「Sample01」チームに Oakdale 環境を追加します。「1分ほどお待ちください」画面になった後に、Power Apps と Power Automate 各々の状態を確認してみました。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/PowerApps?src=hash&amp;ref_src=twsrc%5Etfw">#PowerApps</a> <a href="https://twitter.com/hashtag/ProjectOakdale?src=hash&amp;ref_src=twsrc%5Etfw">#ProjectOakdale</a> 「Sample01」環境作成「後」 <a href="https://t.co/iAEp6qNne5">pic.twitter.com/iAEp6qNne5</a></p>&mdash; やま (Yama) (@yamad365) <a href="https://twitter.com/yamad365/status/1315284391711567873?ref_src=twsrc%5Etfw">October 11, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

まず、Power Apps（make.powerapps.com）ですが、既定の環境しか見当たりません。

次に Power Automate（japan.flow.microsoft.com）です。こちらは、Oakdale環境を確認することができます。新規追加された「Sample01」環境を指定します。
[マイフロー]には当然ながら何もありません。Oakdale 環境を作成した直後ですから、フローは1つも追加していません。その状態で[ソリューション]を確認します。
![スクリーンショット 2020-10-12 002052.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/5a966d1c-bb92-a97a-8e75-b7d9184c16dd.png)
おぉ！4つもソリューションが作成されていますね。
このなかで「Common Data Services Default Solution」を選択すると、先ほど Teams 上で作成した”アプリ”（Power Apps のアプリ ＝ Oakdale 初期のアレ）が確認することができます。つまり、この「Common Data Services Default Solution」が Project Oakdale 環境におけるアプリの格納先である、とわかります。

# ソリューション画面でアプリ編集したら？
本当に表示された”アプリ”が Oakdale 環境のモノと同一か？を確認してみましょう。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/PowerApps?src=hash&amp;ref_src=twsrc%5Etfw">#PowerApps</a> <a href="https://twitter.com/hashtag/ProjectOakdale?src=hash&amp;ref_src=twsrc%5Etfw">#ProjectOakdale</a> 「Sample01」環境 <a href="https://twitter.com/hashtag/PowerAutomate?src=hash&amp;ref_src=twsrc%5Etfw">#PowerAutomate</a> ソリューション と おーくでーるアプリ関連性 <a href="https://t.co/SQXe6el59u">pic.twitter.com/SQXe6el59u</a></p>&mdash; やま (Yama) (@yamad365) <a href="https://twitter.com/yamad365/status/1315285856320540672?ref_src=twsrc%5Etfw">October 11, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

ラベルコントロールを１つ画面左下へ追加して、背景色を変更しています。
Teams 上の Power Apps アプリ編集画面で確認 → Power Automate ソリューション画面からアプリを編集 → ラベルコントロールの背景色変更 → 保存 → 再度 Teams 上の Power Apps 編集画面で確認（操作したラベルの背景色が変わっているコトが把握可能）、という流れです。
操作の途中で、オーバライドを確認するメッセージが表示されるコトからも、該当アプリが Teams 上のモノと、 Power Automate のソリューション画面とで同一であると示しています。

# まとめ
上記の調査結果から「Project Oakdale で作成された環境配下のアプリは自動で作成されるソリューション配下で管理される」と個人的に結論付けています。

## Teams と Project Oakdale 環境の関連性
Microsoft Teams の「1つのチーム」＝「1つの Project Oakdale 環境」（＝１おーくでーる）＝「1つのソリューション」というイメージで良いかと現時点では考えています。
![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/c60c78f1-0f36-9ab4-fe9f-d1b6b7de2c0c.png)
Power Automate 画面を確認すると合計4つのソリューションが作られているので、厳密には”4”なのかもしれません。調べた限りでは「Common Data Services Default Solution」に注目していれば良いと考えています。その理由は・・・

![図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/9d44799b-4863-e96b-2026-77151f20f2ff.png)
長くなってきたので、今回はここまで。このソリューションの存在を把握できると、様々なコトができそうですよね！しかし、Power Apps 側にも同様のソリューション表示がされないのは解せぬ・・・と思いつつ、プレビューですしね！今後の進化を一緒に楽しみましょう！

それでは、皆さま、素晴らしい Power Platform Life を！