次の方法で共有


クライアント API フォーム コンテキスト

クライアント API フォーム コンテキスト (formContext) は、フォームまたは、現在のコードが実行される、簡易表示コントロールまたは編集可能グリッドの列などの、フォーム上のアイテムへの参照を提供します。

先に、 Xrm.Page のグローバル オブジェクトがフォームまたはフォームのアイテムを示すのに使用されます。 最新バージョンで、Xrm.Page オブジェクトが 廃止 され、適切なフォームまたはフォームのアイテムに参照を返す実行コンテキスト オブジェクトに渡される getFormContext メソッドを使用する必要があります。

重要

Deprecated はモデル駆動型アプリの将来の主要なリリースからフィーチャまたは機能が削除されることを意味します。フィーチャまたは機能は正式に削除されるまでの間、引き続き機能して完全にサポートされます。 公表は、この文書、公式ブログ、および他の多くの場所で、削除の少なくとも 6 ヶ月前に行われます。

プライマリ フォームのコンテンツへの静的なアクセスとして Xrm.Page オブジェクトを使用することにより、既存のスクリプトとの下位互換性の維持は依然としてサポートされ、他の一部のクライアント API メソッドがクライアント API の非推奨 セクションに一覧表示されても直ぐに削除されません。 マイクロソフトは、使用可能な限り対象になるバージョン 9.0 または以降で、コードではXrm.Pageオブジェクトの代わりに新しいformContextオブジェクトの使用を強く推奨します。 さらにformContextオブジェクトを使用すると、コールされる場所に応じてフォーム上または編集可能グリッド上のいずれかで操作することができる、共通イベント ハンドラーの作成が可能になります。 詳細については、getFormContext (クライアント API 参照)を参照してください。

リボン アクションでの JavaScript 関数用 formContext オブジェクトの取得は、フォーム スクリプト内での取得方法とは異なります。 詳細については、リボン アクションのフォームとグリッドのコンテキストを参照してください。

注意

フォーム コンテキストは、渡されたイベント中にのみ有効です。 実行コンテキストと同じ制限が適用されます

Xrm.Pageオブジェクトの代わりに、formContextオブジェクトを使用する

Xrm.Page の既存のコードを容易に変換して、新しい formContext オブジェクトを使用することができます。 たとえば、 Xrm.Page オブジェクトを使用する次のスクリプトを考えてみてください:

function displayName()
{
   var firstName = Xrm.Page.getAttribute("firstname").getValue();
   var lastName = Xrm.Page.getAttribute("lastname").getValue();
   console.log(firstName + " " + lastName);
}

以下は、静的な Xrm.Page オブジェクトを使用する代わりに、渡された実行コンテキストを使用して formContext オブジェクトを取得する更新されたスクリプトです。

function displayName(executionContext)
{
   var formContext = executionContext.getFormContext(); // get formContext

   // use formContext instead of Xrm.Page   
   var firstName = formContext.getAttribute("firstname").getValue(); 
   var lastName = formContext.getAttribute("lastname").getValue();
   console.log(firstName + " " + lastName);
}

重要

formContext オブジェクトを使用してイベント ハンドラーを定義するときは、ハンドラーのプロパティダイアログの実行コンテキストを最初のパラメーターとして渡すオプションを選択する必要があります。 詳細については、「クライアント API 実行コンテキスト」を参照してください。

formContext オブジェクト モデル

モデル駆動型アプリのデータおよびユーザー インターフェイス要素をプログラムで処理するために、formContext オブジェクトの下でデータおよび ui オブジェクトを使用します。

formContext オブジェクト モデル。

データ オブジェクト

テーブル データやビジネス プロセス フロー コントロールのデータなど、フォーム上のデータを扱うプロパティとメソッドを提供します。 以下のオブジェクトを含みます:

Object Description
attributes フォーム上のテーブル以外のデータのコレクションです。 このコレクション内の項目は列コレクションと同じタイプですが、フォーム テーブルの列ではありません。
詳細: コレクション
entity ページに表示されるレコード、save メソッド、フォームに含まれるすべての列のコレクションに固有の情報を取得するためのプロパティとメソッドを提供します。 列データは、フォーム上に表示されている列に限定されています。
詳細: formContext.data.entity
process フォームの業務プロセス フローのデータを操作するためのオブジェクトおよびメソッドを提供します。
詳細: formContext.data.process

また、テーブルに縛られないコントロールへのアクセスに使用する属性のコレクションも用意されています。 この記事の後半の formContextオブジェクト モデルのコレクション セクションを参照してください。

詳細: formContext.data

UI オブジェクト

ユーザー インターフェイスに関する情報を取得するメソッド、およびフォームまたはグリッドのいくつかのサブ コンポーネントのコレクションを提供します。 以下のオブジェクトを含みます:

Object Description
formSelector 現在のユーザーが利用できるフォームを問い合わせる機能を提供するアイテムコレクションを提供します。 現在のフォームを閉じ、別のフォームを開くには、操作メソッドを使用します。
navigation メソッドが含まれていません。 アイテムのコレクションによってナビゲーション アイテムへのアクセスを提供します。 詳細については、コレクションの次のセクションを参照してください。
process フォームのビジネス プロセス フローのコントロールを操作するためのメソッドを提供します。

詳細: formContext.ui

formContextオブジェクト モデルのコレクション

次の表に、 Xrm オブジェクト モデルのコレクションを示します。 一般にコレクションに使用できるメソッドの詳細については、「 コレクション (クライアント API 参照)」を参照してください。

コレクション 説明
attributes 2つのオブジェクトには列のコレクションが含まれています:

- formContext.data.attributes コレクションでは、テーブル バインドされていない列にアクセスできます。

- formContext.data.entity.attributesコレクションは、フォームで使用可能な各テーブル列へのアクセスを提供します。 フォームに追加された列のみを使用できます。
controls 次の 3 つのオブジェクトに、controls コレクションが含まれます。

- formContext.ui.controls: フォームに存在する各コントロールへのアクセスを提供します。

- formContext.data.entity.attribute.controls: フォーム上の列には複数のコントロールが存在する可能性があるため、このコレクションは各コントロールへのアクセスを提供します。 フォームに列のコントロールが複数追加されていない限り、このコレクションには1つの項目のみが含まれます。

- formContext.ui.tabs.sections.controls: このコレクションには、セクションで見つかるコントロールしか含まれません。
formContext.data.process.ステージ および formContext.data.process.ステップ 業務プロセス フロー内のステージおよびステップコレクションへのアクセスを提供します。 また、これらにより、コレクションからアイテムの追加および削除ができます。
formContext.ui.formSelector.項目 1 つのテーブルに複数のフォームが用意されている場合、各フォームにセキュリティ ロールを関連付けることができます。 ユーザーに関連付けられているセキュリティ ロールによって、ユーザーに複数のフォームを表示できる場合、 formContext.ui.formSelector.items コレクションはそのユーザーが利用できる各フォーム定義へのアクセスを提供します。
formContext.ui.navigation.アイテム formContext.ui.navigation.items コレクションは、フォーム エディターのナビゲーション領域を使用して定義されているナビゲーション アイテムへのアクセスを提供します。 コマンド バーを使用して、これらに移動します。
formContext.ui.quickForms フォーム上のすべてのクイック ビュー コントロールとその構成コントロールにアクセスするためのメソッドを提供します。
formContext.ui.tabs 1 つ以上のタブを使用して、各フォームを整理できます。 このコレクションは、これらの各タブへのアクセスを提供します。
formContext.ui タブ。セクション 1 つ以上のセクションを使用して、各フォーム タブを整理できます。 タブセクションコレクションは、これらの各セクションへのアクセスを提供します。 目的のセクションを含むタブを定義するか、各タブを反復処理して関連するセクションを見つける必要があります。

getFormContext メソッド
getGlobalContext メソッド
getAttribute メソッド
getControl メソッド
実行コンテキストのメソッド

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。