変更要約: PL-400 第2章を新規作成(ドメイン: Power Apps の改善 + UX 拡張)。高度な canvas アプリ(複雑な Power Fx・コンポーネントライブラリ・canvas からのクラウドフロー・委任 delegation/委任警告・事前読み込み・Monitor)、クライアントスクリプティング(Client API object model formContext/executionContext・OnLoad/OnChange/OnSave・Dataverse Web API・コマンド/ボタン・navigateTo)、PCF コードコンポーネント(init/updateView/getOutputs/destroy・manifest・インターフェイス・package/deploy/consume・Device/Utility/Web API)。
2.3PCF コードコンポーネント
Power Apps component framework(PCF)のライフサイクルイベント、manifest、インターフェイス、package/deploy/consume、Device/Utility/Web API 機能を理解します。
PCF(Power Apps component framework) は TypeScript/JS で再利用可能なカスタム UI コントロール を作る仕組みです。決まった ライフサイクル に沿って実装します。
2.3.1ライフサイクルと manifest
PCF コントロールは ライフサイクルイベント に沿って動きます:init(初期化・コンテナ取得)、updateView(データ/コンテキスト変更時に再描画)、getOutputs(ホストへ値を返す)、destroy(後始末)。manifest(ControlManifest) でコントロール名・プロパティ・型・リソースを宣言します。init で1回、updateView で更新ごと、destroy で破棄、とタイミングを区別します。
2.3.2インターフェイスと配布
コンポーネントは StandardControl などのインターフェイス を実装し、Device/Utility/Web API の機能(カメラ/位置情報、リソース、Dataverse データ)をコンポーネントロジックから利用できます。完成したら package → deploy(ソリューションに含めてインポート)→ consume(フォーム/アプリで使用) の順で配布します。canvas/model-driven の両方で使えます。
決め手:「初期化・コンテナ取得(1回)」=init。「データ変更時に再描画」=updateView。「ホストへ値を返す」=getOutputs。「後始末」=destroy。「名前/プロパティ/型を宣言」=manifest。「カメラ/位置/Dataverse参照」=Device/Utility/Web API機能。配布は package→deploy→consume。
混同に注意:
①init(1回)とupdateView(更新ごと)を取り違えない。
②PCF(コードのカスタムコントロール)とcanvas component(ローコード再利用)は別。
③manifestの宣言とコードの実装は別物。
④配布はソリューションに含めてdeploy(直接コピーでない)。
2.3.3この節のまとめ
- ライフサイクル=init(1回)/updateView(更新)/getOutputs/destroy・manifestで宣言
- Device/Utility/Web API機能をコンポーネントから利用
- 配布はpackage→deploy(ソリューション)→consume・canvas/model両用
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. PCF コントロールで、コンテキストやデータが変更されたときに再描画するために呼ばれるライフサイクルメソッドはどれですか?
Q2. PCF コントロールの初期化(コンテナ取得など)で 1 回だけ呼ばれるメソッドはどれですか?
Q3. PCF コンポーネントの名前・プロパティ・型・リソースを宣言するファイルはどれですか?
Q4. 完成した PCF コードコンポーネントを環境へ配布する正しい流れはどれですか?
Q5. PCF コードコンポーネントと canvas component の違いとして正しいのはどれですか?

