30.2K Views
October 20, 22
スライド概要
Power Platform やってます
2022 使ってないなんて勿体ない! Power Apps モデル駆動型アプリの 魅力をデモでご紹介!
増田 雄一・まっすー Yuichi Masuda 日本マイクロソフト株式会社 テクニカルスペシャリスト Power Platform 趣味:卓球🏓 サウナ♨ Twitter: @yuichi_masuda App in a Day @Home ― お家で Power Apps ハンズオン! ひとカラ🎤 今日作りました(笑) システム管理者に送る!Power Platform のガ バナンスとセキュリティ概要 2
セッションの背景とゴール 背景 Power Apps のアプリ開発パターンの一つであるモデル駆動型アプリ まだまだキャンバスアプリと比べると知名度が低い シナリオによってはキャンバスアプリの1/10レベルの工数で使いやすく 高品質なものが出来上がる 使えれば解決できる課題が大幅にスケールできるのに・・・ ゴール モデル駆動型アプリすごい、、、思ったより難しくなさそう、、、 まずは触ってみたい!と思ってもらう 3
おさらい Microsoft Dataverse とは? ビジネスアプリ用データプラットフォーム Power Platform・Dynamics 365 で提供される、 市民開発者からプロ開発者まで利用できるデータ基盤 RDBをベースとしながら、非構造化データも統合管理 本格的なデータベースをローコードで GUI上で、SQL等の専門知識を必要とせず データベースの作成からモデリングがすぐに可能 エンタープライズシステム用途のリッチなインフラとセキュリティ 負荷分散やスケーリング、インデックス、バックアップなど クラウドが自動で提供 様々なビジネスニーズに対応する堅牢なセキュリティ機能を提供 Microsoft Dataverse Dataverse の内部構成 (役職・職階層ベースのセキュリティ、行・列単位のセキュリティ等) 複雑な業務用途にも対応する拡張性 Web APIやSDKも提供している為、Power Platform以外との 連携も可能 Elastic Database Pools Azure Cosmos DB Blob Storage データ、ファイル、ログ領域を Azure 基盤上で多重管理、 パフォーマンスチューニング、インデックス、インフラセキュリティ を Azure 基盤上で自動管理 4
Dataverseが提供するデータ基盤機能 データベースとしての機能以外にも、業務アプリ開発に必要とされる 豊富な機能をプラットフォームとして提供 イベントハブ リレーショナル データベース サービスハブ カタログ および検出 データ 検証 ログ ファイル Webhook ジョブ 計算およびロールア ップ フィールド モデリング レポート 半構造化 データ ビジネス ルール SQLエクスポート モバイル オフライン 複製 検出 検索および データの発見 データ 検証 プラグイン ワークフロー 共通データ モデル データエクスポート データ レイク
データベースはできたけど、、、 実際にそれを使うためにはアプリ(UI)が必要ですよね? 6
Power Apps ではアプリ(UI)のパターンを複数用意 用途や場面にあったアプリ開発パターンを選択・組み合わせることで開発生産性が最大化 7
複雑な業務でも高速開発を実現するモデル駆動型アプリ キャンバスアプリ ピクセル単位で、デザイン自由度、操作感優先(特に タブレット、スマホでのタッチ操作) 現場向け:特定の役割の特定の業務 モデル駆動アプリ データモデル優先、管理優先、情報量優先、大量データの扱 い(入力、検索)、印刷の考慮、多言語、可視化 オフィスワーカ/業務管理者向け 8
キャンバスアプリは直感的だけど・・・これ作るの結構辛くないですか?その1 データを様々な角度でフィルター・ソートが必要なシナリオ 企業名で検索とソートをできるよう にしてほしいなあ Filter関数とSort関数を使えばできそ うだ! 全部の列で検索とソートが必要なん だよね。あとできれば、AND条件と OR条件両方で! パターンが多すぎる、複雑すぎて 無理だ、、、 ・・・ キャンバスアプリで簡単 キャンバスアプリだと辛い 9
キャンバスアプリは直感的だけど・・・これ作るの結構辛くないですか?その2 アプリで扱うテーブル数が多いパターン 問い合わせと製品、それから顧客と その契約一覧、技術ナレッジ、他に 計10テーブルを管理したい!もちろ んそれぞれでフィルターできるよう にね! 問い合わせを管理するアプリを作り たいんだけど 一体何個同じよう画面を作れば、、、 しかも画面数が多くてアプリも もっさりしてきたような、、、 一覧、新規作成、編集、削除、詳細 画面とテンプレートから簡単にでき たぞ! 一覧 一覧 新規 新規 ×1 テーブル 詳細 編集・削除 キャンバスアプリで簡単 ×10 テーブル 詳細 編集・削除 キャンバスアプリだと辛い 10
キャンバスアプリは直感的だけど・・・これ作るの結構辛くないですか?その3 • • • • • • Excelに近いUIの作成 アプリ上でのExcelインポート・エクスポート 複数ワードでのフリーワード検索 モバイル・PC両対応のレスポンシブデザイン 数万件~規模データの一括操作・管理 ・・・ 11
そのお悩み モデル駆動型アプリが解決します 12
モデル駆動型アプリの基本 13
モデル駆動型アプリの全体像 モデル駆動型アプリとは・・・ Dataverseのデータの操作・管理を目的としたアプリタイプ Dataverse のテーブルの構成要素とテーブル間のリレーションをベースにアプリが半自動で 構成される = モデル(データベース)に連動してアプリが作られる = モデル駆動型アプリ リレーション リレーション 14
モデル駆動型アプリの構成要素 以下の構成要素をアプリ毎ではなく、テーブル毎に設定、カスタマイズをする →アプリで扱いたいテーブルを選択するだけで自動的にアプリが作成される その為、Dataverseのデータを横断的に扱うアプリはキャンバスアプリ以上の高速開発が可能 15
モデル駆動型アプリ アプリデザイナー モデル駆動型アプリではアプリデザイナーで主に下記を設定 • • • • アプリで扱いたいテーブル ナビゲーションの構成 アプリ独自のダッシュボード テーブルが所有する構成要素の内、ど れを利用するか(標準ではすべて) → 個別要素の設定はアプリ毎の作り込み ではなく、テーブル内で行う 16
ビュー Dataverseのレコードを一覧表示する仕組み データの抽出条件(クエリ)を設定可能 ビューを複数用意することで、様々な切り口で素早くデータの閲覧が可能 例:「優先度高の案件一覧」、「自分の商談一覧」、「ステータスが対応中のインシデント一覧」 作成したビューはキャンバスアプリ上でも、フィルター条件として利用可能 ビューを使うことで複雑な検索条件もキャンバスアプリで利用可能 17
フォーム レコードの新規作成・編集・閲覧に利用 1テーブル内に複数のフォームを作成可能 例:マネージャーと営業とで見せる情報を変更できる 18
フォームの種類 4種類のフォーム 19
グラフ Dataverseのデータを可視化 レコードのフィルターとしても利用可能 20
ダッシュボード テーブルの持つグラフや、Power BI 、ビュー、Webリソースなどを配置してダッシュボードが作成 可能 21
ビジネスプロセスフロー 業務の流れをステージに分け、そのステージで期待される入力やアクションを定義し、ガイドす る仕組み →社員の経験によらず業務品質を平準化することが可能 各ステージの滞在時間や、プロセス全体の完了時間を計測している為、 業務プロセスのそのものの分析・改善が可能 コンポーネント 内容 データステップ フィールドへの入力 ワークフロー Dataverseに定義されて いる ワークフローを実行 アクションステップ Dataverseに定義されて いる アクションを実行 フローステップ (プレビュー機能) Power Automateの ワークフローを実行 22
Dataverse 検索 • 検索エンジンライクにDataverse内のデータをテーブル横断で高速に検索をかけることが 標準で可能 • Dataverseに保存されている添付ファイル内の文字列も検索対象(Officeドキュメント やPDF等) • 柔軟な検索条件を設定可能 あいまい検索、AND・OR条件、完全一致、前方後方ワイルドカード • 裏側はAzure Searchの仕組みを採用 23
モバイル標準対応 • モデル駆動型アプリは標準でレスポンシブデザインに対応している為、1つのアプリで あらゆるデバイスサイズに対応 • Power Apps モバイルアプリでは最適化されて利用可能 24
モデル駆動型アプリが向いているシナリオの例 こだわったUI表現よりかはデータ・ステータス管理が中心のシナリオ 例:台帳管理アプリ、Accessで作っていたDB 特定機能が必要なエンドユーザーと、全ての機能・データ管理が必要な管理者や承認者に分 けられるシナリオ(キャンバスアプリとモデル駆動型アプリを組み合わせるパターン) 例:故障報告・修理プロセス管理アプリ、問い合わせ管理アプリ、チケット管理アプリ、キャンバスアプリの管理 者用アプリ、Power Pagesの管理者用アプリ 様々な角度からデータ抽出・検索・管理が求められるシナリオ 例:ナレッジ管理アプリ、案件管理アプリ、ヒヤリハット管理アプリ 複数テーブルを横断しながら、関連付けを多用するシナリオ 例:タレント管理アプリ、CRM(顧客管理アプリ) 【パッケージ利用もされているモデル駆動型アプリ】 MSが提供するCRMのDynamics 365もモデル駆 動型アプリの上に作られ、SaaSとして提供 ☆実際にはキャンバスアプリとモデル駆動型アプリ両方を組み合わせている事例が多い 25
DEMO① 分かれば難しくない! モデル駆動型アプリで超高速でアプリを作成 26
問い合わせ管理アプリを10分で作成 起票番号 問い合わせ内容 カテゴリー 対応ステータス ITH-1000 PCが動かない ハードウェア クローズ ITH-1001 勤怠システムにアク セスできない ソフトウェア 対応中 ・ ・ ・ 27
更に便利に高機能に モデル駆動型アプリの拡張機能 28
Excel / Word 連携 テンプレートを作成しておくことで、Dataverseのデータを挿入してドキュメントの自動生成が可 能 レコード一覧画面 Excel テンプレートによる月次報告書 1レコード画面 Word テンプレートによる要人情報詳細書 29
Excel を使ったデータ操作 DataverseのデータをExcelを使って一括で追加・編集・抽出が可能 SQLなどの知識がなくてもデータベースのデータを活用可能 モデル駆動型アプリではアプリ上で直接Excel Onlineの立ち上げが可能 ExcelのクライアントアプリでもアドインによりDataverseへの接続が可能 30
SharePoint 連携 モデル駆動型アプリではレコードに関連するドキュメントの保存先としてSharePointと連携が可能 Dataverseのファイル容量を節約 SharePoint のドキュメント管理機能の恩恵を受けることが可能 例:アクセス権限、チェックイン、チェックアウト、検索 31
キャンバスアプリの埋め込み フォームにキャンバスアプリを埋め込むことで、柔軟なUI表現やDataverse以外の データソースとの連携を実現 埋め込んだキャンバスアプリから当該レコードの操作だけでなく、フォーム自体への操作が可能 例:フォームのリフレッシュ、フォームの保存、ビューへ画面遷移 モデル駆動型フォーム上にキャンバス アプリを埋め込む - Power Apps | Microsoft Learn 32
カスタムページ モデル駆動型アプリの任意のペー ジをキャンバスアプリライクにローコー ドでカスタム作成が可能 キャンバスアプリ埋め込みより、更 にモデル駆動型アプリとシームレス に連携した操作性を実現 33
コマンドデザイナー モデル駆動型アプリのコマンドバーをローコードにカスタマイズが可能 Power Fx(キャンバスアプリの関数)を利用することが可能 34
PCF – Power Apps Component Framework PCFとは・・・ Power Appsの標準では提供されていないカスタムの コントロールを開発するための開発フレームワーク モデル駆動型アプリのUI拡張にPCFが利用可能 HTML/CSS/TypeScriptといった一般的なWeb開 発の言語に開発可能 Home | PCF Gallery クリエーター キット - 概要 (プレビュー) - Power Platform | Microsoft Learn 35
ロジックの拡張 モデル駆動型アプリ(Dataverse)では業務ロジックを拡張する為の様々なアプローチを提供 計算列・ロールアップ列 (ノーコード) Dataverseの列として、 列同士での自動計算や、 関連レコードの集計等の 計算ロジックを設定可能 ビジネスルール (ノーコード) プラグイン (プロ開発向き) GUI上で、値の自動設定や フォームの表示変更等の 業務ロジックを設定可能 .NETを使用し、ローコードで は表現できないサーバーサイ ドの高度な業務ロジックを Dataverse内に開発が可能 クライアントスクリプト (プロ開発向き) JavaScriptをモデル駆動型 アプリ内で実行ができ、UI上 でのカスタムロジックの適用 が可能 36
Power Automate 連携 Dataverse のレコードに対してモデル駆動型アプリ上からオンデマンドにPower Automate のワークフローを実行することが可能 例:選択したレコードの情報をTeamsに投稿 37
Power BI 連携 Power BI レポートをダッシュボードやフォーム内に埋め込み モデル駆動型アプリで利用しているDataverseのデータを その場で、Power BIで分析・可視化(プレビュー機能) 38
Team チャット連携 (今後リリース予定のロードマップ) モデル駆動型アプリ内でTeamsチャットを 立ち上げ、アプリを離れずに同僚と会話 が可能 会話の履歴が、Dataverseのレコードと 紐づくため、業務データと会話データの両 方を後から追うことが可能 アプリで Teams を使用して他のユーザーとチャットする | Microsoft Learn 39
DEMO② 日本マイクロソフトでリアルで使っている ナレッジ管理アプリを紹介 40
QA対応や提案資料探し これまでとこれから Hi ! お答え ください。 知識を横断検索! お客様 回答準備作業 Microsoft Search Teamsで検索 👂営業に聞く 👂技術に聞く 技術サポート ライセンス窓口 ①横断的に調べたい。 ②このナレッジ古い? ③製品名ではなく課題から提案資料を検索したい。 41
セッションまとめ モデル駆動型アプリはPower Apps のアプリ開発パターンの一つ Dataverseのデータの扱いに関してモデル駆動型アプリの右に出る ソリューションはない 用途や場面にあったアプリ開発パターンの「選択」と「組み合わせ」で Power Apps での開発生産性が最大化 キャンバスアプリだけ、モデル駆動型アプリだけ、Power Pagesだけは勿体ない! まずは開発者プランでトライしてみては! Power Apps 開発者向けプラン | Microsoft Power Apps 42
2022
2022