Instiq
第2章 · Power Apps の改善と UX 拡張·v1.0.0·更新 2026/6/29·読了目安 約13分

変更要約: 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.2クライアントスクリプティング

この節の要点

JavaScript Client API object model、イベントハンドラー登録、Dataverse Web API のクライアント呼び出し、コマンド/ボタン、カスタムページへのナビゲーションを理解します。

model-driven のフォームを コードで拡張 するのがクライアントスクリプティングです。Client API object model を正しく使うのが要点です。

2.2.1Client API object model とイベント

JavaScript Client API object model はフォームを操作する API で、formContext(フォーム/属性/コントロールへのアクセス)と executionContext(イベント情報)を使います。スクリプトは イベントハンドラー登録OnLoad/OnSave/OnChange などに結びつけます。OnLoad はフォーム読込時、OnChange は項目変更時、OnSave は保存時、と発火タイミングが異なります。

2.2.2Dataverse Web API とコマンド

クライアントから Dataverse のデータを読み書きするには Dataverse Web API(Xrm.WebApi)を呼び出します。リボンの コマンドとボタンPower Fx または JavaScript で動作や表示条件を構成します。Client API(Xrm.Navigation/navigateTo)カスタムページへ遷移させ、リッチな UX を作ります。「サーバーサイドの実行」=plug-in に対し、これらは クライアント側 の拡張です。

試験ポイント

決め手:「フォーム/属性/コントロール操作」=formContext。「イベント情報」=executionContext。「読込時/変更時/保存時」=OnLoad/OnChange/OnSave。「クライアントからDataverse読み書き」=Dataverse Web API(Xrm.WebApi)。「カスタムページ遷移」=Client APIのnavigateTo。クライアント拡張=client scripting、サーバー=plug-in。

注意

混同に注意:
①client scripting(クライアント/UX)とplug-in(サーバー/Dataverseイベント)を取り違えない。
②formContext(フォーム操作)とexecutionContext(イベント情報)は別。
③OnLoad/OnChange/OnSaveの発火タイミングを区別。
④Client API(クライアントのWeb API呼出)とサーバーのOrganization serviceは別。

JavaScript Client API object modelでformContext(フォーム/属性/コントロール操作)とexecutionContext(イベント情報)を使い、OnLoad/OnChange/OnSaveにイベントハンドラーを登録。Dataverse Web API(Xrm.WebApi)でクライアントから読み書き、コマンド/ボタンをPower Fx+JavaScriptで構成、navigateToでカスタムページへ遷移する図(plug-inのサーバー実行と区別)。
クライアントで拡張

2.2.3この節のまとめ

  • Client API object model=formContext/executionContext・OnLoad/OnChange/OnSaveで登録
  • クライアントからDataverse Web API(Xrm.WebApi)で読み書き
  • コマンド/ボタンはPower Fx+JS・navigateToでカスタムページ遷移

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. model-driven フォームで、属性やコントロールにアクセスして値を設定/表示制御するために使うオブジェクトはどれですか?

Q2. 項目(フィールド)の値が変更されたタイミングでスクリプトを実行したい。登録すべきイベントはどれですか?

Q3. クライアントスクリプトから Dataverse のレコードを読み書きしたい。最適な API はどれですか?

Q4. リボンのボタンを選択したときにカスタムページへ遷移させたい。最適な手段はどれですか?

Q5. client scripting と plug-in の違いとして正しいのはどれですか?

理解度を確認第2章「Power Apps の改善と UX 拡張」の問題を解く