Xrm.Page オブジェクト モデルの使用

 

公開日: 2016年11月

対象: Dynamics CRM 2015

フォーム スクリプトの記述する際、次の操作を行うために Xrm.Page 名前空間のオブジェクトと対話します。

  • 属性値を取得または設定します。

  • ユーザー インターフェイス要素の表示および非表示。

  • 属性ごとに複数のコントロールを参照します。

  • エンティティごとに複数のフォームをアクセスします。

  • フォーム ナビゲーション アイテムの操作。

  • 業務プロセス フローのコントロールとやり取りします。

この例では、フォーム スクリプトの簡易参照を参照してください。

このトピックの内容

Xrm.Page オブジェクト階層

実行コンテキスト

コレクション

オブジェクトの説明

  • attribute

  • コンテキスト

  • コントロール

  • エンティティ

  • formSelector

  • ナビゲーション

  • プロセス

  • セクション

  • ステージ

  • ステップ

  • タブ

Xrm.Page オブジェクト階層

下の図に示すように、Xrm.Page では次の表で説明する 3 つのオブジェクトに名前空間コンテナーが提供されます。

オブジェクト

説明

context

クエリ文字列のフォームに渡された組織、ユーザー、またはパラメーターに固有の情報を取得するためのメソッドを提供します。

data

業務プロセス フローのコントロールに加えて、エンティティのデータへのアクセスと、フォーム内のデータを管理するメソッドを提供します。

ui

ユーザー インターフェイスに関する情報を取得するメソッド、およびフォームのいくつかのサブ コンポーネントのコレクションが含まれます。

Xrm.Page オブジェクト モデル

実行コンテキスト

イベント ハンドラー用に関数を登録する場合、その関数の最初のパラメーターとして実行コンテキストのオブジェクトを渡すことを選択できます。 このオブジェクトには、他のイベント ハンドラーおよび保存イベントと共有する変数を管理できるようにするメソッドが含まれます。 詳細については、「実行コンテキスト (クライアント側の参照)」および「イベント引数の保存(クライアント側を参照)」を参照してください。

コレクション

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

集荷

説明

attributes

Xrm.Page.data.entity.attributes コレクションは、フォームで利用できる各エンティティ属性へのアクセスを提供します。 フォームに追加されるフィールドに対応する属性のみを利用できます。

controls

次の 3 つのオブジェクトに、controls コレクションが含まれます。

ui.controls

Xrm.Page.ui.controls コレクションは、フォームに存在する各コントロールへのアクセスを提供します。

attribute.controls

属性がフォーム上のコントロールを複数持つ場合があるため、このコレクションは各コントロールへのアクセスを提供します。 属性のコントロールがフォームに複数追加されている場合を除き、このコレクションにはアイテムが 1 つしか含まれません。

section.controls

このコレクションには、セクションで見つかるコントロールしか含まれません。

navigation.items

Xrm.Page.ui.navigation.items コレクションは、フォーム エディターのナビゲーション領域を使用して定義されているナビゲーション アイテムへのアクセスを提供します。TechNet: 更新フォームを使用している場合、コマンド バーを使用して、これらに移動します。TechNet: 従来のフォームでは、これらはフォームの左端にあります。

formSelector.items

複数のフォームが 1 つのエンティティに提供されている場合、各フォームをセキュリティ ロールに関連付けることができます。 ユーザーに関連付けられているセキュリティ ロールによって、ユーザーに複数のフォームを表示できる場合、Xrm.Page.ui.formSelector.itemsコレクションはそのユーザーが利用できる各フォーム定義へのアクセスを提供します。

tabs

1 つ以上のタブを使用して、各フォームを整理できます。Xrm.Page.ui.tabs コレクションは、これらの各タブへのアクセスを提供します。

sections

1 つ以上のセクションを使用して、各フォーム タブを整理できます。 タブ sections コレクションは、これらの各セクションへのアクセスを提供します。

業務プロセス フローのコレクション

Xrm.Page.data.process 内のステージとステップのコレクションは、同じコレクション構造に基づいていますが、コレクションのアイテムを追加または削除することができます。

プロセス.getStages メソッドを使用して、ステージのコレクションにアクセスします。ステージ.getSteps メソッドを使用して、ステップのコレクションにアクセスします。

オブジェクトの説明

各オブジェクトは、データの取得、オブジェクトのプロパティの取得や設定、またはアクションの実行を行ういくつかのメソッドを持っています。

attribute

各属性は、フィールドとしてフォームに追加されたエンティティ属性に対応します。 一般的に、フィールドとしてフォームに追加されたエンティティ属性のみを利用できます。 フィールドの各インスタンスは、コントロールです。 フィールドは複数回フォームに追加でき、それにより同じ属性を参照するコントロールが複数作成されます。

注意

複合属性には特別な動作があります。詳細:複合の属性のスクリプトを記述する

属性は、種類によって分類されます。getAttributeType メソッドを使用すると、属性の種類を判別できます。

すべての属性が共有する共通のメソッドがいくつかありますが、特定の種類の属性でのみ利用できるメソッドもあります。 詳細については、「Xrm.Page.data.entity 属性 (クライアント側の参照)」を参照してください。

注意

属性の種類の情報は、フォーム内の属性の動作を表します。 この情報は、アプリケーションで定義されるフィールドの種類や、AttributeMetadata の種類に必ずしも対応するというわけではありません。 特定の種類のフィールドの属性は、書式設定の方法に応じて動作が異なる場合があります。

次の表では、属性のスキーマの種類および書式設定のオプションごとに取りうる属性の種類の文字列の値をリストします。

アプリケーションのフィールドの種類

書式設定のオプション

属性の種類

通貨

なし

money

日付と時間

日付と時間、日付のみ

datetime

10 進数

なし

decimal

浮動小数点数

なし

double

ルックアップ

なし

lookup

複数行テキスト

なし

memo

オプション セット

なし

optionset

1 行テキスト

電子メール、テキスト、株式銘柄コード、URL、携帯電話

string

1 行テキスト

テキスト領域

memo

ステータス

なし

optionset

ステータス

なし

optionset

2 つのオプション

2 つのラジオ ボタン、チェック ボックス、リスト

boolean

整数

なし、期間

integer

整数

言語、タイム ゾーン

optionset

コンテキスト

Xrm.Page.context は、クエリ文字列のフォームに渡された組織、ユーザー、またはパラメーターに固有の情報を取得するためのメソッドを提供します。 詳細については、「クライアント側コンテキスト(クライアント側の参照)」を参照してください。

コントロール

フォームに表示される HTML 要素を表します。 コントロールには特定の属性にバインドされるものもありますが、IFRAME、Web リソース、またはフォームに追加されたサブグリッドなど、バインドされないコントロールを表すものもあります。

IFrame、Web リソース、およびサブグリッドのコントロールについては、コードで特定のコントロール名を使用します。 これらのコントロールは、属性にバインドされません。 コントロールが属性にバインドされるときは、コードに特定のコントロール名を含めなでください。 複数のコントロールが属性にバインドされるとき、コントロール名は実行時に決定され、フォームでのコントロールの場所に応じて変わる場合があります。

属性にバインドされるコントロールに関連するほとんどのタスクでは、属性のコントロールのコレクションを使用するか、またはセクションのコントロールのコレクションを使用してコントロールにアクセスします。 コントロールを名前で参照するのではなく、コレクションのコンテキストに基づいて参照します。 この場合、名前は重要ではありません。 特定の属性にバインドされたコントロールすべてでアクションを実行する関数を作成する方法については、属性 controls の例を参照してください。

注意

複合属性には特別な動作があります。詳細:複合の属性のスクリプトを記述する.

注意

Microsoft Dynamics 365 を使用しないスクリプトの開発作業のほとんどで、開発者は document.getElementById メソッドを使用してページ要素を参照するのに慣れています。Microsoft Dynamics 365 のフォーム スクリプトでは、このメソッドはサポートされていません。 属性がデータを保存するのであり、コントロールはフォームでの属性の表示にすぎないことを認識しておく必要があります。 属性にバインドされたコントロールでは、フォームでのデータへのアクセスで使用していた方法を調整しなければならない場合があります。

コントロールは、種類によって分類されます。getControlType メソッドを使用すると、コントロールの種類を判別できます。 特定のコントロールのメソッドは、特定の種類のコントロールでのみ利用できます。 たとえば、addOption メソッドは、オプション セットとして表示されるコントロールでのみ利用できます。 詳細については、「Xrm.Page.ui コントロール (クライアント側の参照)」を参照してください。

エンティティ

Xrm.Page.data.entity は、ページに表示されるレコードに固有の情報を取得するメソッド、save メソッド、およびフォームに含まれるすべての属性のコレクションを提供します。 詳細については、「Xrm.Page.data.entity (クライアント側の参照)」を参照してください。

formSelector

[Xrm.Page.ui.formSelector] は、現在のユーザーが利用できるフォームをクエリする機能を提供するアイテム コレクションを格納します。 現在のフォームを閉じ、別のフォームを開くには、navigate メソッドを使用します。 詳細については、「Xrm.Page.ui.formSelector アイテム (クライアント側の参照)」を参照してください。

ナビゲーション

メソッドを含みません。 アイテムのコレクションによってナビゲーション アイテムへのアクセスを提供します。

プロセス

業務プロセス フローのプロパティを取得するメソッドを含みます。詳細:プロセス メソッド

セクション

セクションには、表示方法、およびセクションを含むタブへのアクセスを管理するメソッドが含まれます。 また、セクションは、コントロールのコレクションを使用したセクション内のコントロールへのアクセスも提供します。詳細:Xrm.Page.ui セクション (クライアント側の参照)

ステージ

各プロセスには、プロセスの getStages メソッドを使用してアクセスできるステージのコレクションがあります。

1 つのステージがアクティブ ステージです。詳細:業務プロセス フローの構造

ステップ

ステップは、ステージで収集される個々のデータ アイテムを表します。 各ステージには、ステージの getSteps メソッドを使用してアクセスできるステップのコレクションがあります。詳細:業務プロセス フローの構造

特別な接頭辞 “header_process_<コントロール名>” を付けてコントロール名を参照すると、業務プロセス フローのコントロールのアクティブ ステージ内にあるステップ コントロールにアクセスできます。 たとえば、purchaseprocess 属性を表すステップを非表示にするには、以下を使用します。

Xrm.Page.getControl("header_process_purchaseprocess").setVisible(false);

タブ

タブは、ページ上のセクションのグループです。 タブの表示を変更するメソッドが含まれます。 セクションのコレクションを使用して、タブのセクションにアクセスします。 詳細については、「Xrm.Page.ui タブ (クライアント側の参照)」を参照してください。

関連項目

フォーム スクリプトの簡易参照
タブレット PC 用 CRM でのスクリプトの記述およびデバッグ
Microsoft Dynamics CRM 2015 フォームのコードを記述する
複合の属性のスクリプトを記述する
業務プロセス フローのスクリプトを作成する
Microsoft Dynamics CRM 2015 での JavaScript の使用
サンプル: 依存オプション セット (候補リスト) の作成
クライアント側のプログラミング リファレンス
クライアント側のプログラミング リファレンス
Microsoft Dynamics CRM 2015 用 JavaScript ライブラリの使用
エンティティ フォームのカスタマイズ

© 2017 Microsoft. All rights reserved. 著作権