列の定義

テーブルには、各レコードに含めることのできるデータを表す、列のコレクションが含まれます。 開発者は、列のさまざまな種類、およびその使用方法について理解する必要があります。

列名

テーブルと同様に、各列には、作成時に定義された一意の名前があります。 この名前は、次のいくつかの方法で表示されます。

件名 Description
SchemaName 通常は、論理名の Pascal 形式バージョンです 例: AccountNumber
LogicalName すべて小文字の名前。 例: accountnumber

カスタム列を作成すると、選択した名前の前に、列が作成されたソリューションに関連付けられているソリューション発行者のカスタマイズの接頭辞値が付加されます。

列の作成後は名前を変更できません。

各列には、ローカライズされた値を表示できる 2 つのプロパティもあります。 これらのプロパティの値は、アプリ内の列を参照するために使用されます。

件名 Description
DisplayName 通常、スキーマ名と同じですが、スペースを含めることができます。 例: 取引先企業番号
Description 列の説明、またはユーザーにガイダンスを提供する短い文章。 例: システム ビューで取引先企業をすばやく検索して識別できるようにするための取引先企業の ID 番号またはコードを入力します。
モデル駆動型アプリでは、この情報は、ユーザーがフォームの列にカーソルを置いたときに表示されます。

これらは、アプリ内の列を参照するために使用されるローカライズ可能な値です。 これらの値は、いつでも変更できます。 ローカライズされた値を追加または編集するには、カスタマイズされたテーブル、フォームおよび列テキストを他の言語に翻訳するを参照してください。

列の種類

AttributeTypeName プロパティは、列の種類を記述します。 このプロパティには、存在するさまざまな種類の列ごとにラベルを提供する AttributeTypeDisplayName 型の値が含まれます。

注意

AttributeType プロパティと混同しないでください。 この古いプロパティの値は、ほとんどが AttributeTypeName と対応しており、ImageAttributeMetadataMultiSelectPicklistAttributeMetadataVirtual と表示されることのみ異なります。 AttributeType プロパティではなく、AttributeTypeName プロパティを参照してください。

次の表を参照してください。

  • これらのタイプは、比較のためにカテゴリ別にグループ化されています。
  • AttributeTypeDisplayName 値に対して、対応する .NET アセンブリの AttributeMetadata 派生クラスが使用可能な場所に含まれます。 これらのタイプと AttributeTypeDisplayName ラベルの間には 1 対 1 の関係はありません。
  • カスタム列として作成できる列の種類には、UI に表示される、対応するラベルが含まれます。
カテゴリ AttributeTypeDisplayName/
AttributeMetadata タイプ
作成可能/
Label
説明
分類 BooleanType
BooleanAttributeMetadata
はい
2 つのオプション
通常は true または false の値を示す、はい/いいえから選択されたオプション値を含みます。
詳細: 選択肢
分類 EntityNameType
EntityNameAttributeMetadata
いいえ システム内のテーブルに対応する値が含まれます。 内部使用のみ。
分類 MultiSelectPicklistType
MultiSelectPicklistAttributeMetadata
はい
MultiSelect オプション セット
複数の値を選択できる複数の選択された値が含まれます。
詳細情報:
選択肢
選択肢の列
分類 PicklistType
PicklistAttributeMetadata
はい
オプション セット
1 つのオプションを選択できる、選択された値を含めます。
詳細: 選択肢
分類 StateType
StateAttributeMetadata
いいえ テーブル レコードの状態を示す値が含まれます。
詳細: 選択肢
分類 StatusType
StatusAttributeMetadata
いいえ テーブル レコードの状態の理由を示す値が含まれます。
詳細: 選択肢
集荷 CalendarRulesType いいえ CalendarRules テーブル レコードのコレクションを含みます。
この種類を使用する列はありません。 プロキシを生成する際、コード生成ツールは、定義に存在しない 2 つのシミュレーション列を作成します。 これらの列は、一対多の関連付けでテーブル レコードに関連付けられているカレンダー ルール レコードのビューを表します。
集荷 PartyListType いいえ ActivityParty テーブル レコードのコレクションを含みます。
詳細: ActivityParty テーブル
日時 DateTimeType
DateTimeAttributeMetadata
はい
日付と時間
日付と時刻の値を含みます。
すべての日付と時刻の列は、1/1/1753 12:00 AM という初期値をサポートします。
ファイル FileType
FileAttributeMetadata
はい
ファイル
テーブル レコードのバイナリ データの取得をサポートするためのデータが含まれています。
詳細: コードを使用したファイル列の操作
Image ImageType
ImageAttributeMetadata
はい
Image
テーブル レコードの画像データの取得をサポートするためのデータが含まれています。
詳細: エンティティ イメージ
管理プロパティ ManagedPropertyType
ManagedPropertyAttributeMetadata
いいえ テーブル レコードに格納されているソリューション コンポーネントを、管理ソリューションに含めるときにカスタマイズできるかどうかを示すデータが含まれています。
詳細: 管理プロパティ
品質 BigIntType
BigIntAttributeMetadata
はい BigInt 値を含みます。
品質 DecimalType
DecimalAttributeMetadata
はい
10 進数
Decimal 値を含みます。 Precision プロパティで精度を設定します。
品質 DoubleType
DoubleAttributeMetadata
はい
浮動小数点数
Double 値を含みます。 Precision プロパティで精度を設定します。
品質 IntegerType
IntegerAttributeMetadata
はい
整数
Int 値を含みます
数量 MoneyType
MoneyAttributeMetadata
はい
通貨
Decimal 値を含みます。 PrecisionSource プロパティは、精度のレベルを決定します。
0 : Precision プロパティ
1 : Organization.PricingDecimalPrecision
2 : テーブル レコードの TransactionCurrency.CurrencyPrecision
参照 CustomerType
LookupAttributeMetadata
はい
顧客
取引先企業または取引先担当者テーブル レコードへの参照が含まれます。
参照 LookupType
LookupAttributeMetadata
はい
検索
テーブル レコードへの参照を含みます。 有効なレコードの論理名は通常、列の Targets プロパティに格納されます。
参照 OwnerType
LookupAttributeMetadata
いいえ ユーザー テーブル レコードまたはチーム テーブル レコードへの参照が含まれます。
文字列 MemoType
MemoAttributeMetadata
はい
複数行テキスト
複数行テキストボックスに表示するための文字列値が含まれています。
文字列 StringType
StringAttributeMetadata
はい
1 行テキスト
単一行テキストボックスに表示するための文字列値が含まれています。
一意識別子 UniqueidentifierType
UniqueIdentifierAttributeMetadata
いいえ GUID 一意識別子値が含まれます。
Virtual VirtualType いいえ これらの列はコードで使用することはできず、一般的に無視することができます。

列でサポートされている操作とフォームの使用法

各列には、参加可能な操作の種類と、フォーム内での操作方法を説明するブール値のプロパティが含まれています。

Property Description
IsRequiredForForm 列をフォームに含める必要があるかどうか
IsValidForCreate 列値を作成操作で設定できるかどうか
IsValidForForm 列をフォーム内の列として含めることができるかどうか
IsValidForRead 列値を取得できるかどうか
IsValidForUpdate 更新操作で列値を設定できるかどうか

その操作に無効な列の作成操作または更新操作で値を設定しようとすると、その値は無視されます。 読み取りに有効でない列を取得しようとすると、null 値が返されます。

列の入力要求レベル

RequiredLevel プロパティは、列の値が必要かどうかを記述するブール値管理プロパティです。

このプロパティには次の値を設定できます。

Name Value UI ラベル 説明
None 0 任意 要件は指定されていません。
SystemRequired 1 システム要件 Dataverse では、列に値が必要です。
ApplicationRequired 2 必須項目 アプリケーションでは、列に値が必要です。
Recommended 3 推奨項目 列には値があることが推奨されます。

Dataverse では、システムによって作成された列に対してのみ SystemRequired オプションが適用されます。 カスタム列は、SystemRequired オプションを使用するように設定することはできません。 Dataverse は、ApplicationRequired が適用されている列に値がない場合、エラーを返しません。

モデル駆動型アプリでは、ApplicationRequired オプションが強制され、Recommended オプションには別のプレゼンテーションが使用されます。 ユーザー定義のクライアントの作成者は、この情報を使用して、同様の検証または表示オプションを要求する場合があります。

RequiredLevel は管理プロパティであるため、管理ソリューションの発行元として、ソリューションのコンシューマーがソリューション内の列のこれらの設定を変更できるかどうかを判断できます。

詳細: 管理プロパティ

数式列、ロールアップ列、計算列

数式列、ロールアップ列、計算列を使用すると、ユーザーは手動で計算を実行する必要がなくなり、作業に集中できます。 システム管理者は、開発者と作業をすることなく、多くの共通計算の値を含む列を定義できます。 開発者も、自分のコード内ではなく、プラットフォーム機能を使用してこれらの計算を実行できます。

詳細情報:

列形式

列の書式値は、モデル駆動型アプリでの表示方法を制御します。 カスタム アプリの開発者は、この情報を使用して同様のエクスペリエンスを作成できます。

整数形式

この種類の代替ユーザー エクスペリエンスを表示するには、整数列で Format プロパティを使用します。

回答内容 説明
None 数値を編集するためのテキスト ボックスを表示します。
Duration 時間間隔を含むドロップダウン リストが表示されます。 このリストから値を選択するか、分を表す整数値を入力できます。
TimeZone タイム ゾーンのリストを含むドロップダウン リストが表示されます。
Language 組織で有効になっている言語のリストを含むドロップダウン リストが表示されます。 他の言語が有効になっていない場合は、基本言語が唯一のオプションになります。 保存される値は、言語の LCID 値です。

文字列形式

文字列の列を持つ FormatName プロパティを使用して、StringFormatName の値を設定して、文字列の列のフォーマット方法を制御します。

件名 Description
Email フォーム列はテキスト値をメール アドレスとして検証し、列に mailto リンクを作成します。
PhoneNumber フォーム列には、Skype を使用して電話を開始するためのリンクが含まれています。
PhoneticGuide 内部でのみ使用します。
Text フォームにテキスト ボックスが表示されます。
TextArea フォームにテキスト領域列が表示されます。
TickerSymbol 株式銘柄コードの見積もりを表示するために開くリンクがフォームに表示されます。
URL URL を開くためのリンクがフォームに表示されます。
VersionNumber 内部でのみ使用します。

日付と時刻の形式

DateTimeBehavior プロパティは、日時列の動作を制御します。 3 種類のオプションがあります。

回答内容 短い説明:
UserLocal 日時値を UTC 値としてシステムに格納します。
DateOnly 実際値の日付の値を、時刻値 12:00 AM (00:00:00) で、システムに格納します。
TimeZoneIndependent ユーザーのタイムゾーンに関係なく、実際の日時値をシステムに格納します。

Format プロパティ コントロールを使用して、DateTimeBehavior に関係なく、モデル駆動型アプリで値を表示する方法を指定します。

オプション 説明
DateAndTime 完全な日時を表示します。
DateOnly 日付のみを表示します。

詳細: 日時の列の動作と形式

オートナンバー列

任意のテーブルのオートナンバー列を追加できます。 現在は、プログラムで列を追加することができます。 この種類の列を追加するユーザー インターフェイスはありません。 詳細情報: オートナンバー列の作成

選択肢

オプションのセットを表示する列は、列によって定義されたオプションのセットを参照することも、複数の列で共有できる個別のオプションのセットを参照することもできます。 これは、ある列の値が他の列にも当てはまる場合に便利です。 共通のオプション セットを参照することで、オプションを 1 か所で管理することができます。 共有できる選択肢は グローバル な選択肢です。 列内に定義されているものは ローカル 選択肢です。

オプション データの取得

.NET 用 SDK は、列によって使用されるオプションを取得するために使用できる要求クラスを提供します。

.NET 用 SDK を使用してオプションを取得する

EnumAttributeMetadata から継承するオプションを持つ各列には、OptionSet プロパティ が含まれます。 このプロパティには、Options プロパティ 内のオプションを含む OptionSetMetadata が含まれています。

.NET 用 SDK では、次の要求クラスを使用して選択肢に関する情報を取得できます。

要求クラス Description
RetrieveAllOptionSetsRequest すべての グローバル 選択肢に関するデータを取得します
RetrieveAttributeRequest 任意の選択肢を含む列に関するデータを取得します
RetrieveMetadataChangesRequest 選択肢を含むことができるクエリに基づいてメタデータを取得する
詳細: セグメントクエリの定義
RetrieveOptionSetRequest グローバル 選択肢に関するデータを取得します。

詳細情報:

Web API を使用して選択項目の値を取得する

Web API は、選択項目の値を照会するための RESTful スタイルを提供します。 テーブル内の列を取得することにより、ローカルまたはグローバルの選択肢を取得できます。 次の例では、Account.AccountCategoryCode プロパティに含まれる選択肢の OptionSetMetadata を返します。

GET <organization url>/api/data/v9.2/EntityDefinitions(LogicalName='account')/Attributes(LogicalName='accountcategorycode')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=LogicalName&$expand=OptionSet

Web API を使用すると、RetrieveMetadataChanges 関数 を使用することもできます。

詳細: Web API を使用してテーブル定義をクエ > 属性の取得

列マッピング

既存のテーブル レコードのコンテキストで新しいテーブル レコードを作成すると、既存のテーブル レコードの特定の値を新しいテーブル レコードの既定値として自動的に転送できます。 これにより、モデル駆動型アプリを使用するユーザーのデータ入力が合理化されます。 アプリ ユーザーはマップされた値を参照し、エンティティを保存する前にそれらの値を編集できます。

カスタム クライアントを作成する開発者は、InitializeFrom メッセージ (SDK InitializeFromRequest クラス または Web API InitializeFrom 関数) を使用して、構成された既定値が設定されたエンティティ データを取得することで同じ動作を実現できます。

詳細情報

論理列

論理列には、テーブルの他の列とは異なるデータベース テーブルに格納された値が含まれます。 ほとんどの場合、この内部実装は、Dataverse での作業には関係ありません。 論理列を計算フィールドのソースとして使用する場合、計算フィールドの値を並べ替えることはできません。 AttributeMetadata.IsLogical プロパティを使用して、属性が論理属性かどうかを検出します。

参照

Dataverse テーブル

注意

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

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