Xrm.Page.data.entity 属性 (クライアント側の参照)

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

属性にはフォームのデータが含まれます。Xrm.Page.data.entity.fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_entityattributes コレクションまたは Xrm.Page.getAttribute ショートカット メソッドを使用して、属性のコレクションにアクセスします。 詳細については、「コレクション (クライアント側の参照)」を参照してください。

属性のプロパティとメソッド

  • ブール値および OptionSet 属性メソッド
    getInitialValue、getOption、getOptions、getSelectedOption、および getText メソッドには、ブール値または OptionSet 属性に関する情報を取得する方法が用意されています。

  • controls
    属性に関連付けられているアクセス コントロール。

  • getAttributeType
    属性の種類を取得します。

  • getFormat
    属性の表示形式を取得します。

  • getIsDirty
    最後に保存されてから属性の値が変更されているかどうかを判断します。

  • getIsPartyList
    検索属性が関係者リスト検索を表すかどうかを判断します。

  • getMaxLength
    文字列データを格納する属性に使用できる文字列の最大長を取得します。

  • getName
    属性名を取得します。

  • getParent
    すべての属性の親である Xrm.Page.data.entity オブジェクトへの参照を取得します。

  • getUserPrivilege
    ユーザーがフィールド レベルのセキュリティをフィールドで使用できる特権を判断します。

  • 数属性メソッド
    getMax、getMin、および getPrecision メソッドを使用して、数属性のプロパティに関する情報にアクセスします。

  • OnChange イベント
    addOnChange、removeOnChange、および fireOnChange メソッドを使用し、OnChange イベント用イベント ハンドラーを管理します。

  • RequiredLevel
    setRequiredLevel および getRequiredLevel メソッドを使用して、レコードを保存するために属性に値が必要であるかどうかコントロールします。

  • SubmitMode
    setSubmitMode および getSubmitMode メソッドを使用して、レコードが保存されるときに属性の値が送信されるかどうかコントロールします。


  • getValue および setValue メソッドを使用して、属性の値セットを判断し、その値を変更します。

ブール値および OptionSet 属性メソッド

getInitialValue、getOption、getOptions、getSelectedOption、および getText メソッドには、Boolean または OptionSet 属性に関する情報を取得する方法が用意されています。

getInitialValue

フォームが開かれた時のOptionSetまたはBoolean属性の値セットを示す値を返します。

属性の種類: オプション セットおよびブール値

Xrm.Page.getAttribute(arg).getInitialValue()
  • 戻り値
    種類: 番号。 属性の初期値。

getOption

メソッドに引数として渡された値と一致する値を持つオプション オブジェクトを返します。

属性の種類: オプション セット

Xrm.Page.getAttribute(arg).getOption(value)
  • 引数
    文字列または数値

  • 戻り値
    種類:text および value プロパティを持つオプション オブジェクト。

getOptions

オプション セット属性の有効なオプションを表す、オプション オブジェクトの配列を返します。

属性の種類: オプション セット

Xrm.Page.getAttribute(arg).getOptions()
  • 戻り値
    種類: オプション オブジェクトの配列。

getSelectedOption

オプション セット属性で選択されたオプション オブジェクトを返します。

属性の種類: オプション セット

Xrm.Page.getAttribute(arg).getSelectedOption()
  • 戻り値
    種類:text および value プロパティを持つオプション オブジェクト。

getText

オプション セット属性に現在選択ているオプション用テキストの文字列値を取得します。

属性の種類: オプション セット

Xrm.Page.getAttribute(arg).getText()
  • 戻り値
    種類: 文字列。 選択したオプションの text 値。

    注意

    オプションが選択されていない場合は、getText は空の文字列値を返します。

controls

コレクションで表示されるメソッドの詳細は、コレクション (クライアント側の参照)を参照してください。

各属性はページに 1 回以上表示される場合があるため、コントロールのコレクションにはその属性表示のすべてのコントロールへのアクセスが用意されています。 属性がページの 1 つのフィールドのみを示す場合、このコレクションの長さは 1 です。 コントロール 51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getName メソッドを使用するとき、最初のコントロールの名前は属性の名前と同じになります。 その属性のコントロールの 2 番目のインスタンスは ‘<attributeName>1’ となります。 <attributeName>+N のパターンにより、特定の属性用フォームに追加された、各追加コントロールが指定されます。

フォームのヘッダーに業務プロセス フローのコントロールが表示される場合、業務プロセス フローに表示される各属性のために、さらにコントロールが追加されます。 これらのコントロールは、header_process_<attribute name> などの、一意の名前があります。

属性に関連付けられたコントロール上でアクションを実行するときは、そのコントロールがそのページ上に 1 回以上含まれる可能性があり、一般的に、属性の各コントロールのために同じアクションを実行する必要があることを考慮します。 これは、属性コントロールのコレクションを繰り返し、各コントロール上でアクションを実行することにより実行できます。

次の例は、コントロールを非表示または表示する属性コントロール コレクションを使用する、2 つの再生可能機能を持つ JavaScript ライブラリを表しています。

  • SDK.Sample.hideAllAttributeControls: 属性のすべてのコントロールが非表示です。

  • SDK.Sample.showAllAttributeControls: 属性のすべてのコントロールが表示されます。

if (typeof (SDK) == "undefined")
{SDK = { __namespace: true }; }
SDK.Sample = { __namespace: true };
SDK.Sample.hideAllAttributeControls = function (attributeLogicalName) {
    /// <summary>
    /// Hides all controls for the attribute.
    /// </summary>
    /// <param name="attributeLogicalName" type="String" mayBeNull="false" optional="false" >
    /// The logical name of an attribute.
    /// </param>
    if ((typeof attributeLogicalName != "string") ||
        (attributeLogicalName.length <= 3))
    { throw new Error("SDK.Sample.hideAllAttributeControls attributeLogicalName parameter must be a string at least 4 characters long."); }
    Xrm.Page.getAttribute(attributeLogicalName).controls.forEach(
        function (control, i) {
            control.setVisible(false);
            }
        );
}
SDK.Sample.showAllAttributeControls = function (attributeLogicalName) {
    /// <summary>
    /// Shows all controls for the attribute.
    /// </summary>
    /// <param name="attributeLogicalName" type="String" mayBeNull="false" optional="false" >
    /// The logical name of an attribute.
    /// </param>
    if ((typeof attributeLogicalName != "string") ||
        (attributeLogicalName.length <= 3))
    { throw new Error("SDK.Sample.showAllAttributeControls attributeLogicalName parameter must be a string at least 4 characters long."); }
    Xrm.Page.getAttribute(attributeLogicalName).controls.forEach(
        function (control, i) {
            control.setVisible(true);
            }
        );
}

これらの機能を使用するには、以下に示すように属性の論理名を渡します。

//Hide the controls for the subject attribute.
SDK.Sample.hideAllAttributeControls("subject");
//Show the controls for the subject attribute.
SDK.Sample.showAllAttributeControls("subject");

getAttributeType

属性の種類を表す文字列値を返します。

属性の種類: すべて

Xrm.Page.getAttribute(arg).getAttributeType()
  • 戻り値
    種類: 文字列

    このメソッドは、次の文字列値のいずれかを返します。

    • boolean

    • datetime

    • decimal

    • double

    • integer

    • lookup

    • memo

    • money

    • optionset

    • string

getFormat

属性のフォーマット オプションを表す文字列値を返します。

属性の種類: すべて

Xrm.Page.getAttribute(arg).getFormat()
  • 戻り値
    種類: 文字列

    このメソッドは、次の文字列値のいずれかまたは null を返します。

    • date

    • datetime

    • duration

    • email

    • language

    • none

    • phone

    • text

    • textarea

    • tickersymbol

    • timezone

    • url

注意

この形式情報は、一般的に、アプリケーション フィールドの形式オプションを表します。 ブール値フィールドの形式オプションは用意されていません。

次の表では、属性のスキーマの種類および書式設定の各オプションのために予期される、書式形式の文字列の値をリストします。

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

書式設定のオプション

属性の種類

書式設定値

日付と時間

日付のみ

datetime

日付

日付と時間

日付と時間

datetime

datetime

整数

期間

integer

期間

1 行テキスト

電子メール

string

電子メール

整数

言語

optionset

言語

整数

なし​​

integer

なし

1 行テキスト

テキスト領域

string

textarea

1 行テキスト

テキスト

string

テキスト

1 行テキスト

株式銘柄コード

string

tickersymbol

1 行テキスト

電話番号

string

電話

整数

タイム ゾーン

optionset

timezone

1 行テキスト

URL

string

url

getIsDirty

属性値に対する変更内容が保存されていないことを示すブール値を返します。

属性の種類: すべて

Xrm.Page.getAttribute(arg).getIsDirty()
  • 戻り値
    種類: ブール値。 保存されていない変更がある場合は true、それ以外の場合は false。

getIsPartyList

検索が関係者リスト検索かどうかを示すブール値を返します。 関係者リスト検索を使用すると、[宛先]: 電子メール エンティティ レコードのフィールドなど、複数のレコードを設定できます。

属性の種類: 検索

Xrm.Page.getAttribute(arg).getIsPartyList()
  • 戻り値
    種類: ブール値。 検索属性が関係者リストの場合は true、それ以外の場合は false。

  • 備考
    このメソッドは、41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties でのみ使用できます。

getMaxLength

文字列属性またはメモ属性の最大長を示す数を返します。

属性の種類: 文字列、メモ

Xrm.Page.getAttribute(arg).getMaxLength()
  • 戻り値
    種類: 番号。 この属性の文字列の最大長さです。

    注意

    電子メール フォーム description 属性はメモ属性ですが、getMaxLength メソッドがありません。

getName

属性の論理名を表す文字列を返します。

属性の種類: すべて

Xrm.Page.getAttribute(arg).getName()
  • 戻り値
    種類: 文字列。 属性の論理名。

getParent

すべての属性の親である Xrm.Page.data.entity オブジェクトを返します。

この関数は、他のオブジェクトと一貫性のあるインターフェイスを提供するために用意されました。 このサポート案件の場合、すべての属性が同じオブジェクトを返すため、役立つ状況は多くありません。

属性の種類: すべて

Xrm.Page.getAttribute(arg).getParent()
  • 戻り値
    種類:Xrm.Page.data.entity オブジェクト。

getUserPrivilege

ユーザーが属性のデータ値を作成、読み取り、または更新することができるか示す特権に対応する、3 つのブール値のプロパティを持つオブジェクトを返します。 この機能は、フィールド レベル セキュリティにより、ユーザーの特定の属性に対する特権が変更されるときに使用することを目的としています。 詳細については、「Microsoft Dynamics 365 で、フィールド セキュリティを使用してフィールド値へのアクセスを制御する方法」を参照してください。

属性の種類: すべて

Xrm.Page.getAttribute(arg).getUserPrivilege()
  • 戻り値
    種類: オブジェクト

    オブジェクトには次の 3 つのブール値プロパティがあります。

    • canRead

    • canUpdate

    • canCreate

数属性メソッド

getMax、getMin、および getPrecision メソッドを使用して、数属性のプロパティに関する情報にアクセスします。

getMax

属性で使用できる最大値を示す数を返します。

属性の種類: 通貨、少数、整数、倍精度浮動小数点

Xrm.Page.getAttribute(arg).getMax()
  • 戻り値
    種類: 番号。 属性の最大値。

getMin

属性で使用できる最小値を示す数を返します。

属性の種類: 通貨、少数、整数、倍精度浮動小数点

Xrm.Page.getAttribute(arg).getMin()
  • 戻り値
    種類: 番号。 属性の最小値。

getPrecision

小数点以下の桁数を返します。

属性の種類: 通貨、少数、倍精度浮動小数点、および整数

Xrm.Page.getAttribute(arg).getPrecision()
  • 戻り値
    種類: 番号。 小数点以下の桁数。

OnChange イベント

属性の OnChange イベントを操作できる次の 3 つのメソッドがあります。

  • addOnChange

  • removeOnChange

  • fireOnChange

addOnChange

属性値が変更されたときに呼び出される関数を設定します。

Xrm.Page.getAttribute(arg).addOnChange([function reference])
  • パラメーター
    種類: 関数ポインター

    注意: その機能はイベント ハンドラー パイプラインの一番下に追加されます。 実行コンテキストは、イベント ハンドラーに渡す最初のパラメーターとして自動的に設定されます。 詳細については、「実行コンテキスト (クライアント側の参照)」を参照してください。

    例:この例では、JScript のライブラリには 2 つの関数があります。 フォーム OnLOad イベントに addMessageToOnChange関数を追加すると、フォーム内の最初の属性の OnChange イベントのハンドラーとして displayMessage 関数が追加されます。

    function addMessageToOnChange() 
    { 
       Xrm.Page.data.entity.attributes.get(0).addOnChange(displayOrgName);
    }
    function displayOrgName(execContext) 
    { 
       Xrm.Utility.alertDialog(execContext.getContext().getOrgUniqueName()); 
    }
    

removeOnChange

属性の OnChange イベント ハンドラーから関数を削除します。

Xrm.Page.getAttribute(arg).removeOnChange([function reference])
  • パラメーター
    種類: 関数参照

    例:この例では、JScript のライブラリには 2 つの関数があります。 他のフォーム イベントに removeMessageFromOnChange関数を追加すると、フォーム上の最初の属性の OnChange イベントのハンドラーとして displayOrgName 関数が削除されます。

    function removeMessageFromOnChange() 
    {
       Xrm.Page.data.entity.attributes.get(0).removeOnChange(displayOrgName);
    }
    function displayOrgName(execContext) 
    { 
       Xrm.Utility.alertDialog(execContext.getContext().getOrgUniqueName()); 
    }
    

fireOnChange

OnChange イベントが属性上で発生するため、そのイベントに関連付けられたすべてのスクリプトを実行ですます。

属性の種類: すべて

Xrm.Page.getAttribute(arg).fireOnChange()

RequiredLevel

アプリケーションがレコードを保存する前にフィールドにデータが含まれている必要があるかどうか、コントロールできます。 この要求を調整するには、getRequiredLevel および setRequiredLevel メソッドを使用します。

getRequiredLevel

属性の値が必要または推奨かどうかを示す値を文字列を返します。

属性の種類: すべて

Xrm.Page.getAttribute(arg).getRequiredLevel()
  • 戻り値
    種類: 文字列

    次の 3 種類のいずれかの値を返します。

    • none

    • required

    • recommended

setRequiredLevel

レコードを保存するために、属性のデータが必須であるかまたは推奨であるか設定します。

重要

属性の要求レベルを減らすと、ページの保存時にエラーが発生することがあります。 サーバーが属性を必要とする場合、属性の値がないとエラーが発生します。

このメソッドは、フォームのフィールドでのみサポートされます。 このメソッドは、業務プロセス フローのステップで要件レベルを設定するために、ビジネス プロセスのコントロールに表示される属性と共に使用することはできません。 業務プロセス フローのステップで使用できるクライアント側のメソッドにについては、ステップ メソッド を参照してください。

属性の種類: すべて

Xrm.Page.getAttribute(arg).setRequiredLevel(requirementLevel)
  • 引数
    種類: 文字列

    次のいずれかの値です。

    • none

    • required

    • recommended

SubmitMode

レコードの作成時や保存時に、属性のデータがいつ送信されるか制御できます。 たとえば、フォーム内の論理のコントロールを目的とした、フォーム上のフィールドがあるとします。 内部データの取得は考慮しません。 データが保存されないように設定するとします。 または、常に含まれている値に応じて登録されるプラグインを持つ場合もあります。 属性が常に含まれるように設定するかもしれません。createdby などのようレコードを、初期保存後に属性が更新されないように設定し、保存時に送信されないようにします。 属性値が変更されたかどうかの送信を強制するには、モード パラメーターを "always" に設定して setSubmitMode 関数を使用します。

setSubmitMode を使用するとき、次の 3 つのオプションがあります。

  • always: 値は常に送信されます。

  • never: 値は送信されません。 このオプションを設定するとき、この属性のフォーム内のどのフィールドでも、データを編集できません。

  • dirty (既定): 値が "null" でない場合は作成時にデータが送信され、変更時にのみ保存されます。

getSubmitMode を使用して現在の設定を判断します。

getSubmitMode

レコードの保存時に、いつ属性からデータが送信されるか示す文字列を返します。

属性の種類: すべて

Xrm.Page.getAttribute(arg).getSubmitMode()
  • 戻り値
    種類: 文字列

    次の 3 種類のいずれかの値を返します。

    • always

    • never

    • dirty

    編集できるフィールドの既定値は "dirty" です。これは、データ値が変更されるときにのみ、その値がサーバーに送信されることを意味します。

setSubmitMode

レコードを保存する際に属性からデータが送信されるかどうか設定します。

属性の種類: すべて

Xrm.Page.getAttribute(arg).setSubmitMode()
  • 引数
    種類: 文字列

    次のいずれかの値です。

    • always: データは保存時に常に送信されます。

    • never: データは保存時に送信されません。 これが使用されるとき、この属性のフォーム内のフィールは編集できません。

    • dirty: 既定の動作。 データの変更時に保存されて送信されます。

属性の値にアクセスするかどうか設定することは、フォーム スクリプトで最も一般的に実行される操作です。

getValue

属性のデータ値を取得します。

属性の種類: すべて

Xrm.Page.getAttribute(arg).getValue()
  • 戻り値
    種類: 属性の種類によって異なります。

    属性の種類

    返り値の種類

    boolean

    ブール値

    datetime

    日付

    Microsoft Dynamics 365 ユーザー ロケール設定を使用してデータの文字列バージョンを取得するには、format および localeFormat メソッドを使用します。 その他のメソッドは、ユーザーの Microsoft Dynamics 365 ロケール設定を使用する代わりに、オペレーティング システムを使用して日付の書式を設定します。

    小数

    番号

    Double

    番号

    integer

    番号

    lookup

    Array

    検索オブジェクトの配列。

    注意

    特定の検索を使用すると、[宛先]: 電子メール エンティティ レコードのフィールドなど、複数のレコードを検索と関連付けることができます。 したがって、1 つ以上のレコード参照を追加することを検索属性がサポートしていない場合でも、すべての検索データ値は検索オブジェクトの配列を使用します。

    各検索には以下のプロパティがあります。

    entityType

    文字列: 検索に表示されているエンティティの名前

    ID

    文字列: 検索に表示されたコードの GUID 値を示す文字列です。

    名前

    文字列: 検索に表示するレコードを表すテキストです。

    memo

    文字列

    金額

    番号

    optionset

    番号

    文字列

    文字列

setValue

属性のデータ値を設定します。

属性の種類: すべて

Xrm.Page.getAttribute(arg).setValue()
  • 引数
    属性の種類によって異なります。

    属性の種類

    引数の種類

    boolean

    ブール値

    datetime

    日付

    小数

    番号

    double

    番号

    Integer

    番号

    lookup

    Array

    検索オブジェクトの配列。

    注意

    「関係者リスト」検索と呼ばれる特定の検索を使用すると、[宛先]: 電子メール エンティティ レコードのフィールドなど、複数のレコードを検索と関連付けることができます。 したがって、1 つ以上のレコード参照を追加することを検索属性がサポートしていない場合でも、すべての検索データ値は検索オブジェクトの配列を使用します。

    各検索の値には以下のプロパティがあります。

    entityType

    文字列: 検索が表すエンティティの論理名です。

    ID

    文字列: 検索に表示されたコードの GUID 値を示す文字列です。 値は、{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} の形式と一致する必要があります。

    名前

    文字列: 検索に表示するレコードを表すテキストです。 通常、エンティティのプライマリ属性です。

    単純な検索属性を設定するために作成できるヘルパー関数の例は、検索属性値の設定を参照してください。

    memo

    文字列

    金額

    番号

    optionset

    番号

    注意

    getOptions メソッドはオプション値を文字列として返します。 これらの値を使用してオプション セット属性の値を設定する前に、parseInt を使用して、これらを数値に変換する必要があります。

    有効な statuscode (ステータス) オプションはレコードの現在の状態コードにより異なります。statecode (ステータス) フィールドはフォーム スクリプトで設定できません。 どの statecode 値が有効であるかを理解するため、属性のメタデータを参照してください。 システム エンティティの既定値のリストは、TechNet: 既定のステータスおよびステータス値を参照してください。 ユーザー定義エンティティの場合、組織のメタデータの参照で説明されるエンティティ メタデータ ブラウザーを使用します。 最後に、フィールドに適用済みのカスタム状態の遷移を検討してください。詳細:TechNet: ステータスの遷移の定義 を参照してください。

    文字列

    文字列

    注意

    電子メール形式の文字列フィールドでは、有効な電子メール アドレスを示す文字列が必要です。

注意

  • setValue を使用して属性を更新しても、OnChange イベント ハンドラーは実行されません。OnChange イベント ハンドラーを実行するには、fireOnChange を setValue と共に使用する必要があります。

  • タブレット PC 用 Microsoft Dynamics 365 が setValue サーバーに接続されていないときは使用できません。

  • 合成属性の値は設定できません。詳細:複合の属性のスクリプトを記述する.

検索属性値の設定

次の例は、単純な検索属性の値を設定する setSimpleLookupValue ヘルパー関数の定義を示します。

function setSimpleLookupValue(LookupId, Type, Id, Name) {
   /// <summary>
   /// Sets the value for lookup attributes that accept only a single entity reference.
   /// Use of this function to set lookups that allow for multiple references, 
   /// a.k.a 'partylist' lookups, will remove any other existing references and 
   /// replace it with just the single reference specified.
   /// </summary>
   /// <param name="LookupId" type="String" mayBeNull="false" optional="false" >
   /// The lookup attribute logical name
   /// </param>
   /// <param name="Type" type="String" mayBeNull="false" optional="false" >
   /// The logical name of the entity being set.
   /// </param>
   /// <param name="Id" type="String" mayBeNull="false" optional="false" >
   /// A string representation of the GUID value for the record being set.
   /// The expected format is "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}".
   /// </param>
   /// <param name="Name" type="String" mayBeNull="false" optional="false" >
   /// The text to be displayed in the lookup.
   /// </param>
   var lookupReference = [];
   lookupReference[0] = {};
   lookupReference[0].id = Id;
   lookupReference[0].entityType = Type;
   lookupReference[0].name = Name;
   Xrm.Page.getAttribute(LookupId).setValue(lookupReference);
  }

以下は、取引先企業フォームの primarycontactid 属性の値を設定する setSimpleLookupValue 関数の使用例です。

setSimpleLookupValue("primarycontactid", "contact", "{6D9D4FCF-F4D3-E011-9D26-00155DBA3819}", "Brian Lamee");

関連項目

クライアント側のプログラミング リファレンス
フォーム スクリプトの簡易参照
Microsoft Dynamics 365 フォームのコードを記述する
Xrm.Page オブジェクト モデルの使用

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権