Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

PowerApps Portals(Preview)ことはじめ。初期構成&関連情報まとめ

個人的待望の PowerApps Portals のプレビューがリリースされましたねー。

powerapps.microsoft.com

Dynamics 365 Portal(遡れば ADX Studio)をベースにしたこの新機能、以前はかなり触っていたので、こっちもちょこちょこ触ってみました。今回は基本的な構成方法と各画面周りをざっくり見渡してみたいと思います。

PowerApps Portal とは?

上記リリースでも触れられていますが、モデル駆動型アプリケーションをWeb経由で外部ユーザーとのコミュニケーションハブとして活用できるWebベースのサービスです。

PowerApps らしく、ローコードでWebページをカスタマイズ可能です。

f:id:sugimomoto:20190730232633p:plain

単純なランディングページの作成にも使えますし、モデル駆動アプリケーションと連動させて、問い合わせフォームやビジネスパートナー向けのページを作成する、申込みサイトの作成などにも活用できるでしょう。

なお、前述の通り、もともとは Dynamics 365 Portals として、Dynamics 365 のアドオン的立ち位置でリリースされていました。以前私が Dynamics 365 Portalsを検証した時の記事がいくつかあります。

Dynamics 365 for Customer Engagement のポータル機能での Web 契約経験の提供

【Dynamics CRM】【CRMポータル】CRMポータルを触ってみた その1

一応リファレンスベースでは「Dynamics 365 Portalの全機能は、PowerAppの内部で完全にスタンドアロンで使用できるようになりました。」と記載がありますが、

What is PowerApps Portals?

ただ、今のところ、若干これには語弊があるかなとも思います。

ざっと触ってみた感じアーキテクチャは一緒ですが、Dynamics 365 はそのビジネスロジックとデータモデルをベースとして、カスタマー向けセルフサービスポータルや、パートナー(代理店)向けポータルなどのテンプレートおよびフォーラムやブログ、ナレッジ検索などの組み込み機能がいくつか提供されていました。

今後どこまでPowerApps Portalで利用できる機能になるかはわかりませんが、最終的にCustomer Support・Salesforce Automationなどを目的として、Portalを利用したいなどのイメージがある場合は、Dynamics 365 ベースを使うのが効率的ではないかなと思います。

例えば、パートナー向けポータルとして、商談を社内営業メンバーとも共有して行いたいといったユースケースはやはり Dynamics 365 + Portals 向きでしょう。

PowerApps Portals 環境の構成

それでは実際に「Power Apps Portals」の環境を構成していきます。なお「PowerApps Portals」にはあらかじめCDSの環境が必要になるので、構成しておきます。

f:id:sugimomoto:20190730232643p:plain

CDSを構成すると、以下のように「一から作成するポータル(プレビュー)」が追加されていることがわかります。ここからPowerApps Portalが構成できます。

Dynamics 365 ではアドオン的な立ち位置でしたが、PowerApps はこのように、キャンパスアプリ・モデル駆動アプリと同列で扱われているのが個人的に感慨深いです。

f:id:sugimomoto:20190730232653p:plain

「一から作成するポータル(プレビュー)」をクリックすると、ポータルサイトの名前、URL、言語設定を決めて、作成を行えます。

f:id:sugimomoto:20190730232706p:plain

環境構成にかかる時間はまちまちらしいですが、私の環境では30分ほど放置していたら、構成がし終わっていました。いつまで経っても終わらない場合は、サポートセンターに連絡するのがいいでしょう。

以下のように構成されると、アプリ名をクリックすることでポータルサイトにアクセスができるようになります。

f:id:sugimomoto:20190730232712p:plain

初期状態では静的ページがいくつかとログイン機能・検索機能がついた状態のポータルサイトが構成されます。

f:id:sugimomoto:20190730232720p:plain

ログイン画面はこんな感じ。デフォルトでAzure ADログインが有効化されています。

なお、FacebookログインやOpenId Connect Providerと連携した外部ログインもカスタマイズすることで実現可能です。

f:id:sugimomoto:20190730232732p:plain

試しにログインしてみると、以下のようにプロファイルページに移動します。詳しくは後述しますが、CDSの取引先担当者をベースに構成されています。

f:id:sugimomoto:20190730232741p:plain

ポータルデザイナー画面

PowerApps Portals はキャンパスアプリのようにデザイナー画面が提供されています。アプリの一覧から「変種(プレビュー)」をクリックすることで移動できます。

f:id:sugimomoto:20190730232749p:plain

こんな感じの画面でカスタマイズできます。

f:id:sugimomoto:20190730232813p:plain

左側のナビゲーションでは、Portal全体のページ構成やユーティリティページを確認できます。

f:id:sugimomoto:20190730232828p:plain

新しいページを追加したい場合は、以下のようにいくつかあるテンプレートをベースに追加することが可能になっています。このテンプレートもHTML+Liquidという言語を使ってカスタマイズできます。

f:id:sugimomoto:20190730234251p:plain

コンポーネントでは、各ページに埋め込み可能なセクションやテキスト・画像といったコンテンツ、もしくはモデル駆動アプリのエンティティと連動したフォームや一覧取得といった要素が確認できます。

f:id:sugimomoto:20190730232836p:plain

試しに、Accountの一覧を作成してみると、以下のように表示されます。

f:id:sugimomoto:20190730232902p:plain

フォームは直接ページとして表示することもできますし、以下のように一覧画面からモーダル形式で呼び出すことも可能です。

f:id:sugimomoto:20190730232926p:plain

ポータル管理画面

次にポータルの各種設定を行う、ポータル管理画面を見てみます。

ポータル管理には、ポータルを初期構成したときに追加されるモデル駆動アプリをクリックすることで移動できます。

f:id:sugimomoto:20190730232937p:plain

ポータルサイトの各要素(ページやテンプレート、設定値などなど)はすべてのこのモデル駆動アプリで管理されており、デザイナー画面を使わなくても、これを使うだけでもカスタマイズすることは可能です。

まあ、ちょっと大変かもですが、ページデザイン構成が決まっていれば、こっちでカスタマイズするほうが楽かもしれないです。

f:id:sugimomoto:20190730232944p:plain

ざっとそれぞれの要素を見てみますと、例えば作成したページは「Webページ」が実体。

f:id:sugimomoto:20190730232951p:plain

f:id:sugimomoto:20190730233003p:plain

以下のように、上記HTMLが埋め込まれて、ページデザインを構成していることが読み取れます。

f:id:sugimomoto:20190730233012p:plain

ログインユーザーは取引先担当者として管理されます。

f:id:sugimomoto:20190730233024p:plain

ユーザーにはWebロールを紐付けて、アクセスできるコンテンツをコントロール可能になっていて、例えばこのユーザーにはこのレコードを絞り込んで表示するとかも可能ですね。

PowerApps 公式リファレンスはなかったので、Dynamics365 のリファレンスを見るのが良さげ。(だけど、ここは CDS SecurityRoleとまた違った難しさがある。)

Configure a contact for use on a portal

f:id:sugimomoto:20190730233046p:plain

それ以外にもたくさんありますが、とりあえずここまで。

PowerApps Portals 管理センター

最後に PowerApps Portals 管理センターを見てみます。

ここでは、PortalのWeb構成などを行っている根幹部分の構成管理が実施できます。先程のポータル管理はあくまでWebサイトのデザインやコンテンツの管理(CMS的立ち位置)でしたが、こっちはポータルの再起動やドメインの変更などが実施できる、システム管理者が使用するイメージの管理センターとなります。

PowerApps Portals admin center

こちらの管理センターにはポータルアプリの「設定」から

f:id:sugimomoto:20190730233101p:plain

以下の「管理」リンクをクリックすることで移動できます。

f:id:sugimomoto:20190730233119p:plain

ここがPowerApps Portals 管理センターです。ポータルのURLやアプリケーションIDが表示されるので、SRなどをリクエストする場合は、この辺の情報が必要になると思います。

f:id:sugimomoto:20190730233212p:plain

「ポータル アクション」タブでは、ポータルの再起動(IIS再起動と思われる)やポータルURLの変更、診断ログの出力設定などが行なえます。また、実際にリリースされた際には、独自ドメインも利用できるようになるとのこと。

f:id:sugimomoto:20190730233402p:plain

PowerBI 統合を利用して、ポータルにPowerBI ビジュアルを埋め込んだり

f:id:sugimomoto:20190730233635p:plain

アクセス元のIPアドレス制御などもできます。

f:id:sugimomoto:20190730233715p:plain

おわりに

ざっと見てきましたが、ポータルはDynamics 365 (遡ればADX Studio)時代から、めちゃくちゃ機能が豊富なので、しっかりやろうとすると結構飲み込むまで時間がかかると思います。特に外部にも公開するので、ログイン制御周り、データのアクセス権限のことを考え出すと、結構慎重に構成する必要がありますね。

あんまり触れすぎると、Blogがいくらあっても足りないので、一旦今回はここまで。

次回は、「問い合わせフォーム」を作るというシナリオベースで PowerApps Portalのカスタマイズをしてみたいと思います。

参考サイト

ノンコーディングでポータルサイト作成!PowerAppsの新機能「PowerApps Portal」とは?

What is PowerApps Portals?

Deliver web engagement experience with portal capabilities for Dynamics 365 for Customer Engagement

ライセンス概要はここがとりあえず良さげ?

New licensing options for PowerApps and Microsoft Flow standalone paid plans

内部構造の理解のためなら Dynamics 365 Portals のほうが学習としてはおすすめな感がありますね。

さらっと見た感じ、「Get started with Dynamics 365 Portals」はデータ構造の話やパーミッションの話にも触れていたので、とりあえず触ってみた方にはおすすめ感。

Get started with Dynamics 365 Portals

Extend Dynamics 365 portals

Work with portals in Dynamics 365