今日から始めるPower Appsのコンポーネント開発

17K Views

May 06, 22

スライド概要

Microsoft 365 Virtual Marathon 2022 Japanese Track
Day2 (2022/05/06) の登壇資料です

■Connpass
https://connpass.com/event/243871/

■公式サイト
https://www.m365virtualmarathon.com

■DEMO動画
https://youtu.be/6lFfMvq9mBQ

profile-image

都内でITエンジニア頑張ってる人

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

MICROSOFT 365 VIRTUAL MARATHON 2022 MAY, 4 – 6, 2022 コルネ 今日から始めるPower Appsの コンポーネント開発

2.

MICROSOFT 365 VIRTUAL MARATHON 2022 SPONSORS M365VIRTUALMARATHON.COM #M365VM

3.

コルネ ▪ 都内のIT系会社でPower Platformをメインに戯れています ▪ Twitter: @koruneko32767 Blog: https://koruneko.hatenablog.com/ ▪ 💗Power Apps,💗Power Automate ▪ Power Appsでゲームを作成していたりしています M365VIRTUALMARATHON.COM #M365VM

4.

0. 注意事項 ▪ これからお話するPower Appsのコンポーネントライブラリの機能はプレビュー機 能です。 ▪ プレビュー機能は運用環境での使用を想定しておらず、機能が制限されている可能性があります。 これら の機能を公式リリースの前に使用できるようにすることで、顧客が一足先にアクセスし、そこからフィー ドバックを得ることができます。 ▪ これからお話する内容はプレリリース機能であり、変更されることがあります。 M365VIRTUALMARATHON.COM #M365VM

5.

私がこのセッションで伝えたいこと ▪ コンポーネントを活用することで開発工数の短縮ができるほかアイディアはあるが開発をするだけ の技術が足りないという市民開発者の開発の助けになります より多くの開発者が増えることで日々の業務が改善され、より質の高い成果を上げられるようにな ります ▪ Power Appsには多くの便利なコントロールや関数が備わっていますが、特定の業界に特化したようなコン トロールや関数はありません そのようなコントロールや関数をコンポーネントを用いて開発し、自社やCommunityで公開することでよ りPower Appsでの開発環境を一緒に豊かにしていきませんか? M365VIRTUALMARATHON.COM #M365VM

6.

Agenda 1. Power Appsのコンポーネントとは? 2. コンポーネントを作成するとなにが嬉しいの? 3. コンポーネントのサンプル 4. コンポーネントを作成してみよう! 5. コンポーネントをキャンバスアプリで利用する 6. コンポーネントを更新する 7. コンポーネントを組織内で共有する 8. コンポーネントを組織外で共有する 9. コンポーネントを含むアプリをテナント外で読み込む 10. 制限事項 11. さいごに 12. 補足資料 M365VIRTUALMARATHON.COM #M365VM

7.

1. Power Appsのコンポーネントとは? ▪ よく利用するコントロールや関数を組合わせて、アプリ内で使用可能な一つの再利用可能なコントロール や関数とした、カスタムコントロール及びカスタム関数 カスタム関数 カスタムコントロール コンポーネント 𝑓𝑥 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠 コンポーネント 𝑓𝑥 𝑓𝑥 𝑎, 𝑏 𝑓𝑥 ▪ 普段作成するアプリとは別のアプリ種別として扱われる キャンバスアプリなどのアプリはここ M365VIRTUALMARATHON.COM コンポーネントライブラリはここ #M365VM

8.

2. コンポーネントを作成するとなにが嬉しいの? コンポーネントを作成して、アプリで作成したコンポーネントを利用する 例) • ヘッダー/フッター • 会計計算式 M365VIRTUALMARATHON.COM #M365VM

9.

3. コンポーネントのサンプル( 1/4 ) koruneko/PowerApps-Custom-Functions M365VIRTUALMARATHON.COM #M365VM

10.

3. コンポーネントのサンプル( 2/4 ) Power Apps Community > Galleries Canvas Apps Components Samples M365VIRTUALMARATHON.COM #M365VM

11.

3. コンポーネントのサンプル( 3/4 ) koruneko/PowerApps-Custom-Functions M365VIRTUALMARATHON.COM #M365VM

12.

3. コンポーネントのサンプル( 4/4 ) pnp/powerfx-samples M365VIRTUALMARATHON.COM #M365VM

13.

4. コンポーネントを作成してみよう! ( 1/10 ) 1. 「新しいコンポーネント ライブラリ (プレビュー)」を選択します 2. コンポーネントの名前を設定して「作成」を選択します M365VIRTUALMARATHON.COM #M365VM

14.

4. コンポーネントを作成してみよう! ( 2/10 ) 3. 見慣れた画面が表示されますが、「画面」ではなく「コンポーネント」で作成を行います 4. 画面のサイズ、コンポーネントの名前などはキャンバスアプリと同様に変更できます M365VIRTUALMARATHON.COM #M365VM

15.

4. コンポーネントを作成してみよう! ( 3/10 ) 5. カスタムコントロールを作成します コンポーネント内にコントロールを配置します 今回はフッターを作成してみます 6. 左のラベルにはアプリ名を、右のラベルにはアプリ作成者を表示させるようにしたいと思います それぞれをキャンバスアプリから設定可能なようにカスタムプロパティを作成します 「カスタム プロパティ]より「新しいカスタム プロパティ」を選択します M365VIRTUALMARATHON.COM #M365VM

16.

4. コンポーネントを作成してみよう! ( 4/10 ) 7. 「カスタム プロパティ」を作成します プロパティの表示名を入力します ここで設定した値が「プロパティ」にて表示されます このプロパティで設定した値が数式内で参照するときに利用されます 例: `Parent.MyPropartyName` 混乱を避けるためにも「表示名」と同じにしておくとよいでしょう プロパティのヒントとして表示されます コンポーネント利用者が、このプロパティの目的を理解するために、 わかりやすい説明文を設定しましょう このプロパティがどういった役割を果たすのかを設定します [入力, 出力, 動作]のいずれかを選択可能です 今回はコンポーネント利用者の設定項目を作成したいので「入力」を 設定します このプロパティのデータ型を定義します テキストや数値、ブール値などがあります 今回はテキストを設定するので「テキスト」を選択します M365VIRTUALMARATHON.COM #M365VM

17.

4. コンポーネントを作成してみよう! ( 5/10 ) 8. 作成したカスタムプロパティは「プロパティ」にて確認することができます ここで設定した値がコンポーネントのデフォルトの値となります 9. カスタムプロパティをコンポーネント内に設定したコントロールから参照するようにします 今回ですと、Labelの `Text` に設定します 10. 右側のアプリ作成者も同様に設定します M365VIRTUALMARATHON.COM #M365VM

18.

4. コンポーネントを作成してみよう! ( 6/10 ) 11. ホームアイコンが押されたらコンポーネント利用者が設定した画面に遷移するようにしたいです この機能を実装するにはカスタムプロパティのデータの型で「動作」を設定します データの型で「動作」を設定するには「設定 > 近日公開の機能 > 実験段階」より「拡張コンポーネント のプロパティ」をオンにします M365VIRTUALMARATHON.COM #M365VM

19.

4. コンポーネントを作成してみよう! ( 7/10 ) 12. カスタムプロパティをコンポーネント内に設定したコントロールから参照するようにします ただし、「動作」の場合「入力」と設定の仕方が少し異なるので注意が必要です 「動作」の場合は[プロパティ名()]と「()」がプロパティ名の後ろに必要になります 13. コンポーネントを作成し終えたら、キャンバスアプリ同様保存をして公開します M365VIRTUALMARATHON.COM #M365VM

20.

4. コンポーネントを作成してみよう! ( 8/10 ) 5. カスタム関数を作成します 「新しいコンポーネント」を選択してコンポーネントを追加します * キャンバスアプリと同じイメージで「新しい画面」を選択してもコンポーネントは追加されませんので気をつけましょう 6. 売上総利益を計算する関数を作成します 「新しいカスタム プロパティ」を選択します M365VIRTUALMARATHON.COM #M365VM

21.

4. コンポーネントを作成してみよう! ( 9/10 ) 7. カスタムプロパティを作成します 8. 売上総利益は「売上高(Sales) - 売上原価(CostSales)」で算出します これらをコンポーネント利用者が式を呼び出した際にパラメーターとして設定できるようにします 「新しいパラメーター」を追加します * 「拡張コンポーネントのプロパティ」をオンにしていない場合は設定よりオンにしてください M365VIRTUALMARATHON.COM #M365VM

22.

4. コンポーネントを作成してみよう! ( 9/10 ) 9. パラメーターを作成します パラメーター名を入力します ここで設定した値が「プロパティ」にて設定できます * 英数のみ記載されていますが日本語も設定できます。(英数を登録しましょう) パラメーターのヒントとして利用されます この関数にパラメータを設定するとき、利用者がパラメーターの目的 を理解するために、わかりやすい説明文を設定しましょう このパラメーターのデータ型を定義します テキストや数値、ブール値などがあります 今回は通貨を扱うので「通貨」を選択します このパラメーターの設定が必須かどうかを定義します オプショナルにした場合、利用者がパラメーターの設定を行わなかっ た場合はデフォルトの値が利用されます 10. 売上原価のパラメーターも同様に作成します M365VIRTUALMARATHON.COM #M365VM

23.

4. コンポーネントを作成してみよう! ( 10/10 ) 11. パラメーターを利用して式を作成します 売上総利益 = 売上高 - 売上原価 となるようにプロパティを設定します 12. コンポーネントを作成し終えたら、キャンバスアプリ同様保存をして公開します M365VIRTUALMARATHON.COM #M365VM

24.

5. コンポーネントをキャンバスアプリで利用する( 1/2 ) ▪ 作成したコンポーネントをキャンバスアプリで利用するにはアプリ内にコンポーネントを追加する必要が あります 「挿入 > コンポーネントをさらに取得」よりインポートしたいコンポーネントをインポートします M365VIRTUALMARATHON.COM #M365VM

25.

5. コンポーネントをキャンバスアプリで利用する( 2/2 ) ▪ コンポーネントをインポートすると「ライブラリ コンポーネント」に追加されますので、コンポーネント を利用する場合はここから画面に追加します。 (関数を利用する場合も画面のどこかにコンポーネントを追加する必要があります) ▪ 追加したコンポーネント(カスタムコントロール)は他デフォルトで存在するコントロールと同じようにプ ロパティを編集することで利用できます カスタム関数は「[コンポーネント名].[プロパティ名]」で利用できます M365VIRTUALMARATHON.COM #M365VM

26.

6. コンポーネントを更新する( 1/3 ) ▪ コンポーネントの更新(編集)はコンポーネントライブラリから行います 「ライブラリコンポーネント」からの「コンポーネントの編集」からは行わないでください M365VIRTUALMARATHON.COM #M365VM

27.

6. コンポーネントを更新する( 2/3 ) ▪ コンポーネントを更新(編集)したら公開します ▪ コンポーネントを読み込んだアプリを開く(開きなおす)と更新の通知がでますので、「レビュー > 更新」 を行います M365VIRTUALMARATHON.COM #M365VM

28.

6. コンポーネントを更新する( 3/3 ) ▪ コンポーネントが更新されました! ▪ 注意!  更新前にアプリ内で設定した値/式は変更されません  コンポーネントを利用しているアプリを編集モードで開きなおすまでコンポーネントが更新され たことをコンポーネント利用者が知る術は現時点ではありません  現時点ではアプリでコンポーネントを更新すると高さの表示がおかしくなってしまいまうようです その際はアプリを保存して開きなおすか高さを再度設定しなおしてみてください M365VIRTUALMARATHON.COM #M365VM

29.

7. コンポーネントを組織内で共有する ▪ コンポーネントを組織内で共有する場合はキャンバスアプリを共有するときと同じようにコンポーネント の共有を行います M365VIRTUALMARATHON.COM × × 〇 〇 〇 × 〇 〇 〇 * コンポーネントの共有はコンポーネントライブラリごとに行うことが可能です #M365VM

30.

8. コンポーネントを組織外で共有する( 1/2 ) ▪ コンポーネントライブラリはキャンバスアプリのようにzip形式でのエクスポートはできません 「名前を付けて保存 > このコンピューター」でローカルにmsapp形式でファイルを保存しましょう エクスポート機能は提供されていない M365VIRTUALMARATHON.COM msapp形式でローカルに保存する #M365VM

31.

8. コンポーネントを組織外で共有する( 2/2 ) ▪ インポートを行う際は「開く > 参照」から別組織(別テナント)から共有されたmsappファイルを選択しま す ▪ この方法で開かれたファイルは開いた後忘れずに保存を行いましょう M365VIRTUALMARATHON.COM #M365VM

32.

8. コンポーネントを組織外で共有する【イベント後追加】( 1/4 ) ▪ セッション中にYoshida Taikiさんがチャットされたようにソリューションを用いての共有も可能です 1. 「ソリューション > 新しいソリューション」より新しいソリューションを作成します ソリューションの作成方法は公式docsをご確認ください ソリューションの作成 M365VIRTUALMARATHON.COM #M365VM

33.

8. コンポーネントを組織外で共有する【イベント後追加】( 2/4 ) 2. 「既存を追加 > その他 > コンポーネントライブラリ」よりコンポーネントライブラリを追加します このとき同時にアプリを追加することでアプリもソリューションに含めることができます M365VIRTUALMARATHON.COM #M365VM

34.

8. コンポーネントを組織外で共有する【イベント後追加】( 3/4 ) 3. ソリューションをエクスポートします アンマネージドとしてエクスポートします M365VIRTUALMARATHON.COM #M365VM

35.

8. コンポーネントを組織外で共有する【イベント後追加】( 4/4 ) 4. 共有先のテナントでソリューションのインポートを行います 5. 無事アプリ/コンポーネントともに移行されました (コンポーネントは同名のものが既に存在したのでタイムスタンプが付いています) M365VIRTUALMARATHON.COM #M365VM

36.

9. コンポーネントを含むアプリをテナント外で読み込む( 1/8 ) ▪ テナントAで作成したアプリをテナントBにコピーしたような場合を想定します Tenant-A Tenant-B コンポーネント アプリを移行 コンポーネントを利用してアプリを作成 M365VIRTUALMARATHON.COM #M365VM

37.

9. コンポーネントを含むアプリをテナント外で読み込む( 2/8 ) ▪ コンポーネントを含むアプリを移行しただけではアプリは問題なく移行される(アプリ内で利用しているコ ンポーネントも動作する)がコンポーネントライブラリは移行されない Tenant-A Tenant-B コンポーネント コンポーネント アプリを移行 コンポーネントを利用してアプリを作成 * アプリはTenant-Bでも問題なく動作しますので、Tenant-Bではアプリの編集は行わずTenant-Aで編集したアプリで上書くのでしたらこのままでよいです M365VIRTUALMARATHON.COM #M365VM

38.

9. コンポーネントを含むアプリをテナント外で読み込む( 3/8 ) ~余談~ Q なぜコンポーネントライブラリが移行されていないテナントでも特定のコンポーネントを利用したアプリ が動くのか? A アプリ内にコンポーネントで定義した情報がコピーされているからです コンポーネントをアプリ内にインポートしたときに、アプリ内にコンポーネントで定義した情報がそのま まコピーされます 起動時などで都度アプリがコンポーネントライブラリの定義を読み取って利用しているわけではない 内部定義のお話をすると、\pkgs\Components配下とComponentReferences.jsonにコンポーネントの情報 が定義されています M365VIRTUALMARATHON.COM #M365VM

39.

9. コンポーネントを含むアプリをテナント外で読み込む( 4/8 ) ▪ アプリとは別にコンポーネントも移行した場合 コンポーネントを移行 Tenant-A Tenant-B コンポーネント コンポーネント アプリを移行 コンポーネントを利用してアプリを作成 課題 ◆ Tenant-Bでコンポーネントを更新 ➢ Tenant-Bのアプリを開きなおしてもコ ンポーネントの更新が取得できない ◆ Tenant-BのアプリにTenant-Bのコンポーネントを追加 ➢ 既にアプリ内に同名のコンポーネントが存在するので追加不可 追加済みのコンポーネントを削除して再度コンポーネントを追加すればよいがそれだと設定されている式も消えてしまう ので行いたくない M365VIRTUALMARATHON.COM #M365VM

40.

9. コンポーネントを含むアプリをテナント外で読み込む( 5/8 ) ▪ アプリとコンポーネントが紐づいていないので更新を検知できてないようにみえる ▪ GUI上でアプリとコンポーネントの紐づけを定義するような設定や記載は見たらないのでコードを確認/変 更することにする 【HowTo】~Power Appsをコード管理する方法~ 1. msappファイルをローカルにダウンロードしてコード変換する microsoft/PowerApps-Language-Tooling 2. Power AppsをGitで管理する キャンバス アプリでの共同編集 (試験段階) M365VIRTUALMARATHON.COM #M365VM

41.

9. コンポーネントを含むアプリをテナント外で読み込む( 6/8 ) ▪ 「\ComponentReferences.json」と「\pkgs\Components\[コンポーネント名].json」のIDを各テナント毎の IDに変更する必要がある このIDはコンポーネントライブラリを編集モードで開き「設定 > サポート > セッション詳細」の「App ID」より取得する M365VIRTUALMARATHON.COM #M365VM

42.

9. コンポーネントを含むアプリをテナント外で読み込む( 7/8 ) ▪ 「\ComponentReferences.json」は「LibraryId」を 「\pkgs\Components\[コンポーネント名].json」は「SourceLibraryId」を 取得した「App ID」に置き換える \ComponentReferences.json M365VIRTUALMARATHON.COM \pkgs\Components\[コンポーネント名].json #M365VM

43.

9. コンポーネントを含むアプリをテナント外で読み込む( 8/8 ) 要約 ▪ コンポーネントを利用したアプリを他テナントに移行する場合は 1. コンポーネントライブラリを移行 2. コンポーネントライブラリの「App ID」を取得 3. キャンバスアプリをコード変換してLibraryIdを書き換え 4. キャンバスアプリを移行 以上の手順で行いましょう ▪ コンポーネントを用いたアプリを公開する場合はアプリだけでなくコンポーネントも一緒に公開してあげ ましょう M365VIRTUALMARATHON.COM #M365VM

44.

10. 制限事項 ▪ コンポーネントはギャラリーやフォーム内には配置できません PCFであればコード弄ったりコンテナ利用したりすればギャラリーやフォーム内にも配置可能です 参考: 【MoreBeerMorePower】Power Appsでコンポーネントをギャラリーやフォームに追加する裏技 ▪ コンポーネントライブラリ内でPower Automateを追加して実行させることはできません コネクタ(例えばOffice365ユーザー コネクタなど)を追加して利用することは可能です その場合、コンポーネントをアプリでインポート時にそのコネクタがアプリに追加されることになります ▪ データソース、フォーム、データテーブルをコンポーネントで保存することはできません ▪ コンポーネントは UpdateContext 関数をサポートしていませんが、Set 関数を使用してコンポーネント内に変数を作成 および更新することができます これらの変数のスコープはコンポーネント内に限定されますが、カスタム出力プロパティを通じてコンポーネントの外 側からアクセスすることができます ▪ キャンバスアプリからコンポーネント内のコントロールの値を参照することはできません M365VIRTUALMARATHON.COM #M365VM

45.

11. さいごに ▪ コンポーネントを開発するときはコンポーネントライブラリで行いましょう ▪ コンポーネントを活用することで開発工数の短縮ができるほかアイディアはあるが開発をするだけ の技術が足りないという市民開発者の開発の助けになります より多くの開発者が増えることで日々の業務が改善され、より質の高い成果を上げられるようにな ります ▪ Power Appsには多くの便利なコントロールや関数が備わっていますが、特定の業界に特化したようなコン トロールや関数はありません そのようなコントロールや関数をコンポーネントを用いて開発し、自社やCommunityで公開することでよ りPower Appsでの開発環境を一緒に豊かにしていきませんか? M365VIRTUALMARATHON.COM #M365VM

46.

12. 補足資料 -プロパティの型- アプリからコンポーネントに対して値を 渡したい場合に利用します 〇 × × 設定可 コンポーネントからアプリに対して値を 渡したい場合に利用します 〇 〇 〇 設定不可 アプリからコンポーネント内の動作、例 えばボタンを押したときの動作をアプリ 側で定義したい場合に利用します 〇 × × 設定不可 M365VIRTUALMARATHON.COM #M365VM

47.
[beta]
12. 補足資料 -データ型Unicodeテキスト文字列
浮動小数点数
trueまたはfalse
条件式で直接利用可能
アプリのユーザのタイムゾーンでの時刻ありの
日付
アプリ内の画面

データ値のレコード

レコードが複数集合したもの

"テキスト"
100
true

Now()
App.ActiveScreen
{SampleStringField: "SampleText",
SampleNumberField: 10,
SampleBooleanField: true}

アプリからレコードに値を設定する場合、コン
ポーネントで定義したフィールドが過不足なく
含まれている必要があります

Table({SampleStringField: "SampleText",
SampleNumberField: 10,
SampleBooleanField: true})

アプリからテーブルに値を設定する場合、コン
ポーネントで定義したフィールドが過不足なく
含まれている必要があります

Web画像形式へのURI文字列
(,jpeg, .png, .svg, .gif 他一般的なWeb画像形式)

SampleImage

ビデオまたはオーディオ録音へのURIテキスト
文字列

SampleAudio

アルファチャネルを含む色の指定

浮動小数点数に格納される通貨

M365VIRTUALMARATHON.COM

プロパティの型に動作を設定した場合自動で選
択されます

RGBA(0, 0, 0, 1)
100
* プロパティの型で「動作」を設定した場合は「戻りデータの種類」となります

#M365VM

48.

12. 補足資料 -値が変更されたときにOnReset実行▪ この設定はプロパティの型「入力」の場合のみ設定可能です ▪ この設定をオンにした場合、プロパティの値が変更されたときコンポーネントの「OnReset」が実行され ます ~使用例~ ▪ アプリから渡された入力値を加工して、変数に格納したい場合 Component.OnReset = Set(value, Self.Input) ▪ アプリから渡される入力値が変化した場合、コンポーネント内のコントロールをリセットしたい場合 Component.OnReset = Reset(TextInput); Reset(Timer) M365VIRTUALMARATHON.COM #M365VM

49.

12. 補足資料 -パラメータ▪ パラメータはプロパティ単位に設定可能です ▪ パラメータは定義したプロパティ内でのみ利用可能です ▪ パラメータの型で「入力」「出力」「動作」いずれを設定した場合でもパラメータはコンポーネント内の コントロールの値を参照可能です ▪ パラメータの型で「入力」「動作」を設定した場合はアプリからコンポーネントで定義したパラメータ値 を参照可能です ただしアプリからパラメータに値を渡すことはできません ▪ パラメータの型で「出力」を設定した場合はアプリからパラメータに値を渡すことが可能です ただしアプリからコンポーネントで定義したパラメータ値を参照することはできません M365VIRTUALMARATHON.COM #M365VM

50.
[beta]
12. 補足資料 -パラメータの必須オプション▪ コンポーネントのオプションに設定したパラメータはPower Automateや他コネクタ(代表例だとOffice365
ユーザー)でのオプションパラメータの設定方法と異なるので注意が必要です
Office365ユーザー.SearchUserV2({top: 999})
Component.Property(Required, Optional)

▪ アプリからパラメータを設定する際の優先度は 必須 > オプション となります
例)以下順序でパラメータを設定
1.
2.
3.
4.

オプション項目: Optional1
必須項目
: Required1
オプション項目: Optional2
必須項目
: Required2

を設定
を設定
を設定
を設定

上記カスタム関数をアプリで呼び出す場合は以下順序でパラメータを設定することになります
Component.Property(Required1, Required2, Optional1, Optional2)

▪ 上記のように設定した場合、Optional2はOptional1が設定されていないと設定できません
M365VIRTUALMARATHON.COM

#M365VM

51.
[beta]
12. 補足資料 -パラメータの必須オプション▪ コンポーネントのオプションに設定したパラメータはPower Automateや他コネクタ(代表例だとOffice365
ユーザー)でのオプションパラメータの設定方法と異なるので注意が必要です
Office365ユーザー.SearchUserV2({top: 999})
Component.Property(Required, Optional)

▪ アプリからパラメータを設定する際の優先度は 必須 > オプション となります
例)以下順序でパラメータを設定
1.
2.
3.
4.

オプション項目: Optional1
必須項目
: Required1
オプション項目: Optional2
必須項目
: Required2

を設定
を設定
を設定
を設定

上記カスタム関数をアプリで呼び出す場合は以下順序でパラメータを設定することになります
Component.Property(Required1, Required2, Optional1, Optional2)

▪ 上記のように設定した場合、Optional2はOptional1が設定されていないと設定できません
M365VIRTUALMARATHON.COM

#M365VM

52.

12. 補足資料 -管理・運用- * こちらは実績に基づいたものや公式で提唱されているベストプラクティスではなく 所謂「僕の考えた最強の〇〇」です こういう考えもあるんだな程度にみてください ▪ コンポーネントの作成 ➢ コンポーネントの作成は全ユーザが行えるようにします ✓ コンポーネント開発はより多くのユーザが行うことにより、よりアプリ開発の幅が広がるので全ユーザが作成できるようにしま す ➢ 同一種類のコンポーネントは同じコンポーネントライブラリに纏める ✓ コンポーネントライブラリが多く作成されてしまうと目当てのコンポーネントを探すのが困難となるので同一種類のコンポーネ ントは同じコンポーネントライブラリに纏めるようにしましょう(編集権限共有の問題があります) ▪ コンポーネントの共有方法 ➢ コンポーネントの共有は「everyone」(もしくはPower Appsの利用を許可しているグループ)でテナントの全ユーザ が利用可能な状態にする(テストで作成したものなどは除く) ✓ コンポーネントを利用する利点の一つとして開発時間の短縮が挙げられます 開発したコンポーネントを全ユーザが利用可能な状態にすることでユーザ間で作業が重複する問題を避けられます ➢ 既存コンポーネントの編集は承認制とします(コンポーネントライブラリへのコンポーネント追加は要検討) ✓ コンポーネントは多くのアプリが利用している可能性があります そのためコンポーネントを編集するユーザは制限した方がよいでしょう ただし、同一種類のコンポーネントをコンポーネントライブラリに纏める場合の編集権限の要求は、既存コンポーネントは編集 しないというルールを理解してもらったうえで編集権限を渡します(システム的には絞れないのでユーザの性善性を信頼します) M365VIRTUALMARATHON.COM #M365VM

53.

12. 補足資料 -管理・運用- * こちらは実績に基づいたものや公式で提唱されているベストプラクティスではなく 所謂「僕の考えた最強の〇〇」です こういう考えもあるんだな程度にみてください ▪ コンポーネントの共有方法 ➢ 共有中のコンポーネント一覧を検索可能な状態で公開しましょう ✓ Power Appsのアプリすべてにいえることですが、現時点ではアプリにタグやカテゴリを付与することでアプリを検索しやすくす るような機能はありません コンポーネントはアプリとは異なり、より多くのユーザがコンポーネントを検索できる状態とする必要があります またコンポーネントの更新をコンポーネント利用者はアプリを編集モードで開くまで知ることができません よって以下情報を含んだリストなどを用意してあげると生産性があがるでしょう [コンポーネントライブラリ名, コンポーネント名, カテゴリー, タグ, 簡単な解説, 作成者, 最終更新日] ▪ コンポーネントの設定 ➢ コンポーネントは複数人で編集できるようにしましょう(Preview機能) ✓ アプリをGit連携することにより複数人でのアプリ同時編集が可能となります(Preview機能) ▪ コンポーネントの更新ルール ➢ 公開したコンポーネントの大幅改修は避けましょう(不具合除く) ✓ 公開したコンポーネントの大幅改修 例えば必須入力項目を減らすや出力内容を変更するなどはコンポーネント利用アプリへの影響がでかいので避けましょう 更新が必要な場合はV2などのようにバージョンを上げて新規で作成します M365VIRTUALMARATHON.COM #M365VM

54.

12. 補足資料 -確認している動作不良▪ アプリでコンポーネントを更新した場合、アプリ内に既存で追加されていたコンポーネントの高さの描画が想定とは異 なる表示となっている場合があります 設定値には問題はないようなので、アプリを保存して開きなおすか高さを再度設定してみてください ▪ コンポーネント内に設定したラベルのAutoHeightが正しく動作しない場合があります 例えばコンポーネントの表示/非表示を動的に変更させるとAutoHeightの挙動がおかしくなることを確認しています ▪ コンポーネントの設定より「拡張コンポーネントのプロパティ」をオンに設定したにも関わらずカスタムプロパティ作 成時にプロパティの型で「動作」が選択肢にでてこなかったりパラメータが設定できない場合があります 発生する条件としては編集中のコンポーネントとは別にアプリやコンポーネントを開いており、それが「拡張コンポー ネントのプロパティ」をオフに設定されている場合に発生するようです 対策としては、その開いているアプリでも「拡張コンポーネントのプロパティ」をオンに設定するか一度開きなおして みてください なお「拡張コンポーネントのプロパティ」をオンにすることで設定可能な項目が追加されている場合は「拡張コンポー ネントのプロパティ」をオフに設定することはできません この事象が発生した際は「拡張コンポーネントのプロパティ」をオンにすることで設定可能となった項目は弄らないほ うがよいでしょう M365VIRTUALMARATHON.COM #M365VM

55.

MICROSOFT 365 VIRTUAL MARATHON 2022 アンケートにご協力ください スピーカーおよびイベント への感想やご意見 https://forms.office.com/r/qCXhcZZUgU MAY, 4. – 6. 2022

56.

MICROSOFT 365 VIRTUAL MARATHON 2022 MAY, 4. – 6. 2022