列の定義

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

注意

エンティティとテーブルの違いがわかりませんか? Microsoft Dataverse で「開発者: 用語を理解する」を参照してください。

列名

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

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

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

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

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

件名 内容
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
有効
ファイル
テーブル レコードのバイナリ データの取得をサポートするためのデータが含まれています。
詳細: ファイル列
画像 ImageType
ImageAttributeMetadata
有効
画像
テーブル レコードの画像データの取得をサポートするためのデータが含まれています。
詳細: エンティティ イメージ
管理プロパティ 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 一意識別子値が含まれます。
仮想 VirtualType 無効 これらの列はコードで使用することはできず、一般的に無視することができます。

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

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

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

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

列の入力要求レベル

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

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

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

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

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

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

詳細: 管理プロパティ

ロールアップ列と計算列

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

詳細情報:

列形式

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

整数形式

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

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

文字列形式

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

名前 説明
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 か所で管理することができます。 共有できる選択肢は グローバル な選択肢です。 列内に定義されているものは ローカル 選択肢です。

オプション データの取得

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

組織サービスを使用してオプションを取得する

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

組織サービスでは、次のメッセージを使用して選択肢に関する情報を取得できます。

要求クラス 説明
RetrieveAllOptionSetsRequest すべての グローバル 選択肢に関するデータを取得します
RetrieveAttributeRequest 任意の選択肢を含む列に関するデータを取得します
RetrieveMetadataChangesRequest 選択肢を含むことができるクエリに基づいてメタデータを取得する
詳細: テーブル定義への変更の取得および検出
RetrieveOptionSetRequest グローバル 選択肢に関するデータを取得します。

詳細情報:

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

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

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

Web API では、RetrieveMetadataChanges Function も使用できます。

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

列マッピング

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

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

詳細情報

参照

Dataverse テーブル

注意

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

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