エンティティ属性メタデータのカスタマイズ

AttributeMetadata (AttributeMetadata EntityType または AttributeMetadata クラス) を使用して既存の属性を取得します。 AttributeMetadata クラスは RetrieveAttributeRequest メッセージによつて返されます。 AttributeMetadataMetadataBase (Web API 用 MetadataBase EntityType および組織サービスのための MetadataBase) から継承します。

次の Web API クエリを使用して、属性コレクション値ナビゲーション プロパティを展開することによりエンティティのコンテキスト内のエンティティ属性を取得します。 詳細: EntityMetadata 属性をクエリ

GET [Organization URI]/api/data/v9.1/EntityDefinitions(70816501-edb9-4740-a16c-6a5efbc05d84)?$select=LogicalName&$expand=Attributes($select=LogicalName;$filter=AttributeType eq Microsoft.Dynamics.CRM.AttributeTypeCode'Picklist')

属性を更新またはユーザー定義属性を作成するには、属性の種類ごとに固有のクラスを CreateAttribute メッセージで使用します (組織サービスの場合は、CreateAttributeRequest を参照してください)。

Note

作成したユーザー定義属性はプログラムによってアクセスできますが、表示するにはその属性をエンティティ フォームに追加して公開する必要があります。

属性の種類

次の表は、で操作できるの各種類の Attribute を示します。 各属性は、AttributeMetadata から継承されます。

クラス アプリケーション ラベル 内容
BooleanAttributeMetadata 2 つのオプション ブール値属性です。 両方のオプションのテキストを指定できます。 フォームに追加すると、属性を 2 つのラジオ ボタンとして表示するか、チェック ボックスとして表示するか、リストとして表示するかがフィールド プロパティによって制御されます。
DateTimeAttributeMetadata 日付と時間 日付と時間の属性です。 タイム ゾーン情報付きまたは付かない日付と時刻の値と、それらの値の表示形式を定義する形式を格納するための動作を指定できます。 詳細: 日時属性の動作と形式注意: Dynamics 365 Customer Engagement (on-premises) または Dynamics CRM 2016 (on-premises) を使用している場合、すべての日付および時間属性で 1/1/1753 12:00 AM 以降の値がサポートされます。
DecimalAttributeMetadata 10 進数 10 進数属性です。 小数点第 10 位までの精度と、-100,000,000,000 ~ 100,000,000,000 の最小値および最大値を指定できます。
DoubleAttributeMetadata 浮動小数点数 倍精度浮動小数点属性です。 小数点第 5 位までの精度と、-100,000,000,000 ~ 100,000,000,000 の最小値および最大値を指定できます。 注意:DoubleAttributeMetadata は、Dynamics CRM 4.0 で使用されていた FloatAttributeMetadata を置き換えます。
ImageAttributeMetadata Image イメージ属性。 各エンティティでは 1 だけイメージ属性を設定できます。 特定のシステム エンティティにはイメージ属性があり、新しいイメージの属性は、それを所持しないシステム エンティティに追加できません。 イメージ属性をカスタム エンティティに追加することができる

すべてのイメージ属性には SchemaName ‘EntityImage’および LogicalName‘entityimage’があります。 ユーザー定義のイメージ属性は名前でソリューション発行者のカスタマイズ接頭辞を使用しません。 詳細: エンティティ イメージ
IntegerAttributeMetadata 整数 整数属性です。 -2,147,483,648 ~ 2,147,483,647 の最大値および最小値を指定できます。

この属性は、IntegerFormat 列挙 (IntegerFormat EnumType または IntegerFormat 列挙) を使用して次の種類のフィールドを作成するために書式設定することができます。

- 期間: 時間間隔を含むドロップダウン リストが表示されます。 このリストから値を選択するか、分を表す整数値を入力できます。
- タイム ゾーン: タイム ゾーンのリストを含むドロップダウン リストが表示されます。
- 言語: 組織で有効になっている言語のリストを含むドロップダウン リストが表示されます。 他の言語が有効になっていない場合は、基本言語が唯一のオプションになります。 保存される値は、言語の LCID 値です。
LookupAttributeMetadata 検索 CreateOneToMany メッセージを使用してエンティティ関連付けが作成された時に属性が作成されました (組織サービスの場合は、CreateOneToManyRequest メッセージを参照してください)。
MemoAttributeMetadata 複数行テキスト メモ属性です。 フォームにテキスト ボックス フィールドとして表示されます。 最大長は 1048576 文字です。
MoneyAttributeMetadata 通貨型 通貨属性です。 -922,337,203,685,477 ~ 922,337,203,685,477 の間で最大値および最小値を指定できます。

MoneyAttributeMetadata.PrecisionSource プロパティを使用して、精度を設定できます。

- 精度をゼロ (0) に設定すると、MoneyAttributeMetadata.Precision 値が使用されます。
- 精度を 1 に設定すると、Organization.PricingDecimalPrecision 値が使用されます。
- 精度を 2 に設定すると、TransactionCurrency.CurrencyPrecision 値が使用されます。
MultiSelectPicklistAttributeMetadata MultiSelect オプション セット 複数選択候補リスト属性。 複数選択候補リスト属性は Dynamics 365 Customer Engagement (on-premises) バージョン 9 で追加されました。 この属性は、ドロップダウン リストに表示される一連のオプションを提供します。 複数のオプションを選択することができます。 この属性を作成して、独自のオプションを含めることも、グローバル オプション セットを使用することもできます。
PicklistAttributeMetadata オプション セット 候補リスト属性です。 この属性は、ドロップダウン リストに表示される一連のオプションを提供します。 候補属性を作成して、独自のオプションを含めることも、グローバル オプション セットを使用することもできます。
StateAttributeMetadata 状態 エンティティの作成時に状態属性が自動的に作成されます。 注意: この属性に使用できるオプションは読み取り専用です。
StatusAttributeMetadata 状態の理由 エンティティの作成時にステータス属性が自動的に作成されます。 各オプションは、エンティティの StateAttributeMetadata 属性に関連付ける必要があります。 この属性に使用できるオプションを更新するには、InsertStatusValueRequest メッセージを使用します。 注意: ステータス値は特定の状態値に依存するため、各 StatusOption は特定の状態属性値を参照する必要があります。
StringAttributeMetadata 1 行テキスト StringAttributeMetadata 形式 を参照してください。

StringAttributeMetadata 形式

文字列属性は、Skype または Lync を使用して、リンクで電話の発信ができるように設定することができます。 この変更では、新しい FormatName プロパティの (組織サービスの場合は、FormatNameを参照) StringAttributeMetadata への追加と(StringAttributeMetadata EntityType または StringAttributeMetadata クラス)、Format プロパティの削除が必要です。

StringFormat 列挙 (StringFormat EnumType または StringFormat 列挙) を使用した StringAttributeMetadata.Format の書式定義 (組織サービスの場合は、StringAttributeMetadataFormatを参照) は廃止予定です。 その代わり、StringFormatName クラスを使用して、StringAttributeMetadata.FormatNameの値を設定します。

これは PhoneNumberの形式の値の設定を有効にし、それはStringFormat 列挙体には存在しません。

下位互換性については、Format または FormatName プロパティのいずれかを使用して、属性のフォーマット方法をコントロールするために値を設定できます。 既存のコードは Formatのみを使用する場合に機能し続けますが、FormatNameを使用することなく電話番号として属性をフォーマットすることはできなくなります。 両方のプロパティが設定されている場合、FormatName を使用して設定した値は適用されるものです。

StringFormatName メッセージ (StringFormatName ComplexType または StringFormatName クラス) には以下のメンバーが含まれます。各メンバーはメンバー名と同じ値を持つ文字列を返します。

メンバーの名前および値 説明
Email フォーム フィールドはテキスト値を電子メール アドレスとして検証し、フィールドに mailto リンクを作成します。
PhoneNumber フォーム フィールドには Skype を使用して、電話の発信ためのリンクも含まれています。
PhoneticGuide 内部のみで使用。
Text フォームにテキスト ボックスが表示されます。
TextArea フォームにテキスト領域フィールドが表示されます。
TickerSymbol 株式銘柄コードの見積もりを表示するためのリンクがフォームに表示されます。
URL URL をオープンするためのリンクがフォームに表示されます。
VersionNumber 内部使用のみ。

関連項目

Dynamics 365 Customer Engagement のメタデータ モデルを拡張する
属性に関する作業
日時属性の動作と形式
エンティティ属性のメタデータのメッセージ
サンプル: 属性に関する作業
サンプル: 属性メタデータのファイルへのダンプ
サンプル: 属性候補リストのメタデータのファイルへのダンプ
サンプル: 日時の動作の変換