コルネの進捗や備忘録が記されたなにか

進捗や成果物や備忘録てきななにかを雑に更新していきます。

Power Appsを新規作成するとソリューションに含まれるようになりました


スポンサードリンク

はじめに

Power Platformには「優先するソリューション (プレビュー)」という機能があります。

こちらの"詳細"にあるリンクに飛ぶと「正常なALMについて」のドキュメントへ遷移します。

learn.microsoft.com

多分みたいのこれじゃないと思うな。

「優先するソリューション (プレビュー)」のドキュメントはこちらになります。

learn.microsoft.com

上記をみると、Power Platform管理センターにて「優先するソリューション」を「オン」に設定するとソリューション画面で、各ユーザー自身が選択したソリューションにアプリが追加される。との記載があります。

しかし、私が確認したかぎり3/2(土)時点ではソリューション画面にて以下のように優先するソリューションの設定が表示されていました。

これに伴い、現在Power Appsで新規作成したアプリは優先するソリューションで設定したソリューションに含まれるようになっています。

ドキュメントと動作が違う!と思いますね。

こういうときは英語(原文)のドキュメントを見てみましょう。

learn.microsoft.com

更新が2024/03/01になっています。

また前提条件のPower Platformの管理センターにまつわる記載もこちらでは消えていますね。

つまり日本語のドキュメントはまだ更新が間に合っていないだけ。ということで、そしてプレビューも現在では外れている。
ということですね。

Power Platform管理センターにあるあの設定項目も今ではハリボテです。

ちなみにこの変更により、既存のアプリとフローに対しては影響はありません。

影響を直接受けるのは新規作成のアプリだけですね。(この設定だけなら)

動作の検証(新規作成)

Power Appsを新規作成したとき

優先するソリューションをデフォルトの"Common Data Services Default Solution"にしてPower Appsで新規アプリを作成してみます。

名前とか中身はどうでもいいので適当に作成したアプリを新規作成して保存します。

保存後、ソリューションの中身をみてみます。

ソリューションに含まれていますね。

Power Automateを新規作成したとき

引き続き優先するソリューションを"Common Data Services Default Solution"に設定したまま、新規フローの作成を行います。

またもや適当にフローを新規作成して保存します。

保存後、ソリューションをみてみます。

ソリューションに含まれていないですね。

そもそもPower Automateのソリューションの画面では優先するソリューションの設定項目がありません。

ドキュメントをみてみると以下のように記載されています。

Prerequisites
We recommend that admins enable the Cloud flows environment setting in Power Platform. Enabling this feature ensures cloud flows are also stored in Dataverse and that they're added to the maker's preferred solution. More information: Create new canvas apps and cloud flows in a Dataverse solution

前提条件
Power Platformのクラウドフロー環境設定を有効にすることをお勧めします。この機能を有効にすることで、クラウドフローもDataverseに保存され、作成者の希望するソリューションに追加されます。詳細はこちら: Dataverseソリューションで新しいキャンバスアプリとクラウドフローを作成する

直接的には記載されていないものの、文章から察するにクラウドフローも優先するソリューションに含まれるようにしたい場合は別途設定しろ。みたいなこといっていますね。

こちらの設定については後程記載。

何が困る?

このままの設定ですと、ざっくり記載すると以下が困ることですかね。

開発者目線
* Power AppsとPower Automateの連携がこのままだとできず、もう1アクションが必要になる
* 一度ソリューションに追加したアプリ(フロー)を非ソリューション管理にすることはできない

管理者目線
* Dataverse環境のキャパシティ消費と関連コストが増加する可能性がある

Power AppsとPower Automateの連携

恐らくすぐに困ることになるのは、Power AppsとPower Automateの連携に関してですね。

Power AppsとPower Automateを連携する際、Power AppとPower Automateはお互い非ソリューション管理であるかソリューション管理である必要があります。

表にするとこんな関係になります。

従って、先ほど作成したアプリから先ほど作成したフローは連携できないということですね。

これは既存フロー(非ソリューション管理)を新規作成した保存前のアプリでも同様の事象です。

フローをソリューションに追加してアプリと連携できるようにする

先ほどの表でも示した通り、お互いに非ソリューション管理であるか、ソリューション管理であればアプリとフローの連携は行うことができます。

ただし、一度ソリューション化したアプリ(フロー)を非ソリューション管理に戻すことはできません。

従って、フローの方をソリューションに含めてあげます。

クラウドフローを追加したいソリューションを選択し、「既存を追加」 > 「自動化」 > 「クラウドフロー」を選択します。

その後、「Dataverse の外部」よりクラウドフローを選択して「追加」を行います。

これにより、クラウドフローもソリューションに含めることができたので、アプリとフローの連携ができるようになります。

注意点として、ソリューション化を行うとPower Automateのzipでのエクスポートができなくなります。
※Power Appsはできます。

一応裏ワザとして、フローの詳細画面からURLの "/details" を "/export" に変更してアクセスすると、zipエクスポートの画面に遷移することは可能ではあります。

詳細画面

ただしこの方法は公式から案内されている方法ではなく、現状こうすることでできるよ!という本当に裏ワザ程度の認識でいてください。
これによりなにか不都合が発生しても私含めて誰も責任は取れない。という理解のもとのご使用をおすすめします。

Power Appsの編集画面からPower Automateを作成する

Power AppsのPower Automateペインからフローを作成することもできますね。
これを行った場合の動作に関してです。

保存済みアプリからフローを作成する

上で作成したアプリにてPower Automateペインからフローを作成してみます。

このようなフローを作成し保存します。

その後アプリを保存してソリューションを確認してみます。

追加されてないですね。

ではどこに追加されたのか?というと「既定のソリューション」に追加されています。

「既定のソリューション」というソリューションに追加されているので、このフローは他新規アプリからも参照することが可能です。

未保存のアプリからフローを作成する

未保存のアプリ、つまりまだソリューションに含まれていないアプリからフローを作成してみます。

上記状態からフローを作成します。

このアプリを保存します。

アプリ、フローともに優先するソリューションで指定したソリューションに含まれていますねー

Power Automateも新規作成時にソリューションに含まれるようにする

優先するソリューションの機能が追加された後に作成されたPower AppsとPower Automateを連携する方法を上記で記載しましたが、一々フローをソリューションに追加するのはめんどくさいですよね。

ということでフローも優先するソリューションに含まれるようにしたいと思います。

上でも記載しましたが、「Dataverse ソリューションで新しいキャンバス アプリとクラウド フローを作成する (プレビュー)」をオンにすれば、フローも優先するソリューションに追加されるとドキュメントに記載されていましたので、これを試してみます。

learn.microsoft.com

ただし、これを行う前に以下前提条件および考慮事項を確認の上設定してください。

learn.microsoft.com

前提条件

learn.microsoft.com

考慮事項
既定でソリューションにキャンバス アプリとクラウド フローを作成することを決定する前に、次の考慮事項を考慮してください。

  • Dataverse 環境のキャパシティ消費と関連コストが増加する可能性があります。

  • キャンバス アプリに関連する既知のソリューション制限は、ソリューションで作成されたキャンバス アプリにも既定で適用されます。

  • この機能により、アプリのデータ ソースを追加するときに、環境変数が自動的に作成されます。

  • 既定では、この機能はすべてのキャンバス アプリを、Microsoft Dataverse の既定の発行者 が公開した既定のソリューションである、Common Data Services の既定のソリューション に保存します。 ただし、キャンバス アプリを別のソリューションに保存することをお勧めします。 既存のキャンバス アプリのソリューションへの追加に関する詳細情報

  • Power Platform 管理センターでキャンバス アプリとクラウド フローの機能をオンまたはオフにすると、組織テーブルの Dataverse プロパティ enablecanvasappsinsolutionsbydefaultenableFlowsInSolutionByDefault が更新されます。 次のサンプル ODATA スニペットを使用して、これらのプロパティの値を表示できます: [org URI]/api/data/v9.0/organizations。 詳細については、組織サービス参照 を参照してください。

  • ご利用の環境の既定の発行者またはソリューションの接頭辞を変更する予定がある場合は、ソリューション発行者の接頭辞ソリューション発行者の接頭辞の作成ソリューション発行者の接頭辞の変更 を参照してください。

  • 非ソリューション キャンバス アプリと非ソリューション クラウド フローをソリューションに追加して Dataverse に追加することはできますが、元に戻す方法はありません。

「Dataverse ソリューションで新しいキャンバス アプリとクラウド フローを作成する (プレビュー)」をオンにする

「Dataverse ソリューションで新しいキャンバス アプリとクラウド フローを作成する (プレビュー)」をオンにする場合は、Power Platformの管理センターより、「環境」 > 「<対象の環境>」 > 「設定」 > 「機能」にアクセスします。

その後「Dataverse ソリューションで新しいキャンバス アプリとクラウド フローを作成する (プレビュー)」より、「クラウド フロー(オフ)」となっている項目を「オン」にします。

なお、この機能をオンにしようとすると以下のようなメッセージが表示されます。

前提条件や考慮事項で記載されていた内容ですね。   問題なければ「はい」を選択します。

その後忘れずに、画面下部にある「保存」を選択して、変更を反映させましょう。

フローを新規作成してみる

上記設定を行ったうえで、フローを新規作成してみます。

保存を行うと詳細画面で以下のような設定を確認できます。

既定のソリューションに保存されてそうですね。

既定のソリューションを確認してみると、ソリューション内に先ほど作成したクラウドフローがいますね。

一応Power Apps側のソリューションで設定していた優先するソリューションの中をみてみると上記フローは存在していません。

そもそもPower Automateのソリューションの画面では優先するソリューションの設定はないですね。

これは「優先するソリューション (プレビュー)」をオンに設定していた場合でも同様です。

ソリューションにアプリが作成されないようにする

続いて反対にそもそも新規作成したアプリがソリューションに含まれないようにする方法です。

これを行うには、要は対象にユーザーがソリューションにアプリを追加できないようにすればよいです。

ソリューションにキャンバスアプリを追加するには"Canvas App"テーブルに対しての書き込み権限をなくせばよいです。

learn.microsoft.com

これによりそもそもソリューションにアプリを作成する権限がないので、非ソリューション管理のアプリしかユーザーは作れなくなります。

ただし、これは個別の環境のみ有効な対策です。

既定の環境については"Environment Maker"ロールを全ユーザーがもっており、このロールでは"Canvas App"テーブルに対しての書き込み権限を持っています。

そして既定の環境のこちらのロールは変更不可であり、またユーザーからこちらのロールを取り上げることはできません。(取り上げても少しすると自動で戻るかと思います。)

learn.microsoft.com

管理者目線でいうと、既定の環境こそブロックしたい気がするんですけどねー。。。
ただ、私はPower Platformの環境管理に関しては素人に毛が生えたレベルなので、私がしらないだけでなにかやり方があるのかもしれません。

詳しい方追加や訂正していただけると助かります。

おわりに

検証結果 + 私の知っている & 調査した限りの情報まとめでした。

記載内容に誤りや補足情報などありましたらご指摘いただけますと幸いです。


スポンサードリンク