#はじめに
今年の5月にはじめて、PowerAppsポータルの存在を知り作成したポータルサイトは、まだ2つですが、作成での気づき等をまとめておきます。
#作ってみての感想
- 意外とポータルの機能だけ(ローコードだけ)でも作れるが、「やっぱり痒い所に手が届かない」
- 細かい要望をされると、JqueryとかLiquidとかで、細工していかないと実装できない。
- テーブル(エンティティ)のフォームとクイックビューがもう少しうまく使えると、ローコードでできる範囲が増える。
- まだ知らない機能が沢山あると思うので、もっとDocsやMSLearnのポータルコンテンツを充実させてほしい。
##1つ目のサイト
###概要
- 契約情報等を顧客にPDFで送っていたものを、WEBにて参照・承認することで、仕組みを電子化するための仕組みの中の1つとしてポータルを作成。
- 2020年5月にはじめて、PowerAppsポータルの存在をしり、手探りで作成。
- PowerAppsに取り組んでみるお試しとして作成。
- 作成時の要求事項は、PowerAppsの可能性を知りたいので、できるだけPowerAppsの標準機能のみで作成してほしい。
- 仕様確定者も初めての取込みなのでポータルでできそうなこと、出来なそうなことを選定し要求してくれた。
要求事項と対応
- ポータルの表示を普通のテーブルようにしたい
- 画面上部のヘッダにあるホームなどのリンクを消してほしい
- 送信するボタンの名称を変更したい
- 送信するボタンの表示をカスタムしたい
- ラジオボタンの選択肢の表示を大きくしたい
- 背景色を変更したい
- データのステータスにより、画面に注意メッセージを表示したい
- データのステータスにより、送信ボタンの表示非表示を制御したい
- ポータルでの更新だけを検知して、メールを送信したい
- ページを直接参照できるリンクをメールで送りたい
ポータル管理での設定およびCSSで概ね対応可能でした。後は、簡単なJqueryと、PowerAutomateを利用して実装。
##2つ目のサイト
###概要
- 特定顧客への消耗品の注文WEBサイト
- ポータルで作成ということを意識せず、普通のWEBサイトのようにやれることをそのまま要求された。
要求事項と対応
- ユーザ毎に権限を与えて表示するデータを切り替えたい
- リスト表示の項目名を変更したい
- 自ページの場所を示すリンクを表示したい
- 送信完了時のメッセージを変更したい
- 管理者のみが表示できるポータル画面を作成してほしい
- ログインをID/パスワードのみにして、外部ログインとかの表示を消してほしい
- ログインしていない場合に、ログインページに飛ぶボタンを用意したい
- 別のページに飛ぶボタンを用意したい
- リンク先のデータが登録されているときにだけ、送信ボタンを表示したい。それ以外はアラートメッセージを表示したい
- 一定の条件の時に、リンクボタンを表示したい
- EXCELのように、単票が連なった表を表現したい
- 条件により、テーブルの行を表示しない
- 短行テキスト項目を、折り返し表示としたい
- 必須とラベル箇所に赤字で表示したい
- 同一商品で価格が違うページを作したい
- PowerAutomateにて非同期に更新されるデータの最新を参照したい
ポータル管理での設定、CSS、Jquery、PowerAutomateを利用して実装。
また、データによって動作を変えるものは、Liquidを利用しての実装。
一番下の「PowerAutomateにて非同期に更新されるデータの最新を参照したい」は、Microsoftのサポートに問い合わせましたが、PowerAppsの仕様上「最大15分間はかかる、同期は保証できない」とのことで、実装できませんでした。
#参考にさせていただいたリンク
####アクセス関連
- PowerApps Portals で問い合わせページを作る ③ エンティティ・ページアクセス許可の設定
→ こちらのサイトアクセス権について、非常にわかりやすく大変参考になりました。
https://kageura.hatenadiary.jp/entry/powerappsportals04 - Power Apps ポータルでのユーザー登録
https://docs.microsoft.com/ja-jp/learn/modules/authentication-user-management/3-user-registration - Power Apps Portals Entity Lists and Record Level Permissions
→この方のYoutubeシリーズも勉強になり色々と参照させていただきました。
https://www.youtube.com/watch?v=lOPKwAWhwTU
####liquid/FetchXML
- 高度なポータルのカスタマイズ
https://docs.microsoft.com/ja-jp/powerapps/maker/portals/liquid/liquid-overview - FetchXML の使用によるクエリの作成
https://docs.microsoft.com/ja-jp/powerapps/developer/common-data-service/use-fetchxml-construct-query - Power Apps Portals: fetchxml Liquid Tag and Entity Permissions
http://www.ariclevin.com/Blog/Post/fetchxml-portal-entity-permissions - Fetch Xml Portal page with Entity Permissions
http://www.ariclevin.com/Blog/Post/fetchxml-portal-entity-permissions - Liquid Code Tips(Code-snippets) for Dynamics Portal
https://sank8sinha.wordpress.com/2020/07/27/liquid-code-tipscode-snippets-for-dynamics-portal/
####その他
要望があったけど実装しなかったポータル上でのファイル管理
- SharePoint ドキュメントの管理
https://docs.microsoft.com/ja-jp/powerapps/maker/portals/manage-sharepoint-documents?#step-1-enable-document-management-functionality-in-model-driven-apps-in-dynamics-365 - Power Apps Portals Tips
→ ポータルの勉強になりました
https://www.youtube.com/playlist?list=PL5dtzuEgjWgm0Xlk5IfDr4D3-4D9KWYc1
上記要望への対応詳細については、別途記述して投稿予定です。