エンティティリストの使い方はおおよそご紹介しましたが、今回は応用的な使い方です。
エンティティリストをカレンダーで表示する
エンティティリストはビューを取り込んで一覧表示する方法がメインの使い方ですが、設定次第では何とカレンダーの表示もできるんです!
ただ、思った以上に設定がややこしく、罠に見事にハマってしまいましたので設定方法を書いていきたいと思います。
カレンダー表示のための準備
カレンダー表示のために、今回は標準の予定エンティティを使用します。
予定エンティティでなくても、開始日時や終了日時があればカスタムエンティティでも表示可能です。
今回は設定が面倒なのでそのまま予定エンティティを使用します。
予定のビューも使用します。
これはエンティティリストに取り込む用です。
無理に作らなくても標準のビューが入っているので、それを使ってもOK。
エンティティリストでの設定
まずは普通に予定の一覧を表示する感覚で、エンティティリストに予定のビューを取り込みます。
今回は検索条件を使用しないので、ビューを指定しておけばOKです。
続いてエンティティリストの[カレンダービュー]タブに移動し、「有効」にチェックを入れます。
その下に[エンティティ フィールドのマッピング]セクションでのマッピングがありますが、予定エンティティであればフィールド名は同じなので、「開始日フィールド名」であれば「開始日時」といった具合に項目をマッピングしていきます。
「開催者」はなぜかマッピングできないんですが、ブランクでも問題ないみたいです。
設定内容はこのようになります。
エンティティリストの設定はこれで終わり。
続いて、Webページにエンティティリストを取り込みます。
ここはいつも通りWebページのエンティティリストに指定してあげればOKです。
テンプレートは標準のフルページを指定しています。
あとはこのWebページに対するリンクや予定エンティティへのアクセス許可は適宜設定しておいてくださいね。
エンティティリスト+Webページ作成後はポータルユーザを出席者に加えて適当に予定を作りましょう。
ポータルで表示してみるが果たして
これでカレンダーが表示されるのかと期待しつつ、ポータルを表示させてみると。。。
アレッ、出ない!
何でカレンダービューにチェック入れているのに、一覧が表示されるの?
Microsoftのドキュメントにも具体的な設定は載っておらず、どハマりしてググりまくりました。
日本語ではなかったので、海外の人のページにたどり着きました。
Show Calendar and Maps on Dynamics 365 Online Portals
英語は完璧に読めなかったのですが、同じ悩みを抱えていたみたいなので必死に理解をしてみると、ページテンプレートにLIQUIDを使っているとカレンダーがうまく表示されないので、書き換えのテンプレートを使った方がいいよってことらしいです。
早速対応方法を実践。
まずは、ポータル管理の[ページテンプレート]で以下のようなテンプレートを作成します。
ポイントは「種類」に書き換えを選択することと、書き換えのURLに「~/Pages/FullPage.aspx」を指定すること。
エンティティ名などの設定は不要です。
作成したページテンプレートを使うようにします。
先ほど作成してWebページのページテンプレートを「フルページ」から「Legacy Full Page」に変更してください。
保存後、再度ポータルから確認してみましょう。
この通り見事なまでのカレンダー表示!
意外と表示がキレイでサクサク動いてくれるので驚いています。
カレンダーの機能
気になるカレンダーの機能なんですが、できることは参照のみで、カレンダー上から登録したり編集したりはできないようです。
そのため、手を加える場合は一覧表示と併用して使う必要性があるのかな。
予定を選択すれば、詳細を表示することができます。
でも、なぜか月の部分が漢字表記 (笑)
あと、画面の右上のアイコンからicsファイルをダウンロードすることができます。
icsファイルをダウンロードしてしまえばOutlookやGoogleカレンダーから予定をインポートして取り込むことができ流ので、自分で管理しているカレンダーに入れ込むことが可能です。
また、ここではDynamicsポータルで検証をしましたが、2019年11月現在はPowerAppsポータルではカレンダー表示ができない模様です。
こちらは今後改善を期待しましょう。
コメント