テーブル定義をカスタマイズする

テーブルの定義を決めたり変更したりすることで、テーブルの機能をコントロールすることができます。 ご利用の環境にあったテーブルの定義を見るには、メタデータ ブラウザを使用します。 ご利用の環境でテーブル定義を参照する.

詳細情報 : ご利用の環境でテーブル定義をブラウジングする

この記事では、テーブルをプログラムで操作する方法について説明します。 Power Apps でテーブルを操作するには、Dataverse のテーブル を参照してください。

テーブルは、.NET 用 SDK または Web API を使用して作成できます。 以下の情報は両方に適用することができます。

テーブル定義の操作

テーブル定義をどのように処理するかは、ご利用のサービスによって異なります。

Web API は RESTful なエンドポイントであるため、テーブル定義の作成、取得、更新、削除には異なる方法を使用します。 POSTGETPUTDELETE などの HTTP 動詞を使用して、テーブル定義のエンティティ タイプを操作します。 Web API を使用してテーブルの説明を作成及び更新する方法について学びます

例外として、RetrieveMetadataChanges Function はテーブル定義のクエリを構成し、時間経過による変化を追跡することができます。

.NET 用 SDK を使用している場合は、RetrieveMetadataChangesRequest クラスを使用します。 このクラスは、指定された条件を満たすテーブル定義レコードのコレクションの取得に必要なデータを含んでいます。 RetrieveMetadataChangesResponse はタイム スタンプを返します。このタイムスタンプは、前回のリクエスト以降にテーブルの定義がどのように変更されたかについての情報を返すために、後からこのリクエストで使用することができます。

Message Web API SDK アセンブリ
CreateEntity POST リクエストを使用して、テーブルを作成するデータを送信します。 CreateEntityRequest
DeleteEntity DELETE リクエストを使用して、テーブルを削除します。 DeleteEntityRequest
RetrieveAllEntities GET リクエストを使用してテーブルのデータを取得します。 RetrieveAllEntitiesRequest
RetrieveEntity RetrieveEntity Function RetrieveEntityRequest
UpdateEntity PUT リクエストを使用してテーブルのデータを更新します。 UpdateEntityRequest
RetrieveMetadataChanges
Microsoft.Xrm.Sdk.Metadata.Query 名前空間のオブジェクトと一緒に使用され、特定のテーブル定義の変更を効率的に取得、検出するクエリを作成します。 詳細: テーブル定義への変更の取得および検出
RetrieveMetadataChanges Function RetrieveMetadataChangesRequest

カスタム テーブルの作成時に利用できるオプション

以下は、カスタム テーブルを作成する際に利用できるオプションの一覧です。 これらのプロパティは、カスタム テーブルの作成時にのみ設定できます。

回答内容 内容
ユーザー定義の活動として作成 .NET 用 SDK や Web API の利用時にそれぞれ IsActivity プロパティを設定することで、アクティビティであるテーブルを作成することができます。 詳細については、Dynamics 365 のユーザー定義活動 を参照してください。
テーブル名 名前には 2 種類あり、どちらもカスタマイズの接頭辞が付いている必要があります。

LogicalName: テーブル名がすべて小文字で設定されているバージョンの名前。

SchemaName: データベースのテーブルを作成する際に使用される名前。 この名前は大文字小文字が混在できます。 使用する大文字と小文字は、厳密な型を使用するプログラミングのとき、または REST エンドポイントを使用するときに生成されるオブジェクトの名前を設定します。

: 論理名がスキーマ名と異なる場合、論理名に設定した値をスキーマ名を上書きします。

特定のソリューションのコンテキストでアプリケーション内にテーブルを作成した場合、使用されるカスタマイズ接頭辞は、そのソリューションの Publisher に設定されているものです。 プログラムでテーブルを作成する際に、カスタマイズ用の接頭辞を 2 文字以上 8 文字以下の文字列に設定することができます。 これは mscrm を使って開始できません。 ベスト プラクティスは、ソリューションが関連付けられている発行元によって定義されたカスタマイズされて接頭辞を使用することですが、ベスト プラクティスは確保されません。 カスタマイズの接頭辞と論理名またはスキーマ名との間に、アンダースコアを使用する必要があります。
所有権 OwnershipType プロパティを使用して、テーブルレコードの所有方法を設定します。 テーブルの所有権のタイプを設定するには、OwnershipTypes リストまたは OwnershipTypes の EnumType を使用します。 カスタムテーブルの有効な値は OrgOwned または UserOwned のみです。 詳細については、テーブルの所有権 を参照してください。
プライマリ列 .NET 用 SDK で、CreateEntityRequest を使用する。PrimaryAttribute 主列を設定するプロパティ。

Web API では、テーブルを定義する JSON に、IsPrimaryName プロパティが true に設定された StringAttributeMetadata を 1 つ含める必要があります。

いずれの場合も、文字列の列は Text という形式でなければなりません。 この主列の値は、関連するテーブルのルックアップで表示されるものです。 そのため、列の値は、レコードの名前を表す必要があります。

テーブルの機能を有効化する

以下にテーブル機能の一覧を示します。 これらの機能は、テーブルの作成時に設定することも、後から有効にすることもできます。 これらの機能は、一度有効にすると無効にすることはできません。

機能 Description
業務プロセス フロー ビジネス プロセス フローのテーブルを有効にするには、IsBusinessProcessEnabled を true に設定します。
メモ Annotation テーブルとのリレーションシップを作成し、フォームに メモ エリアを含めることを可能にします。 メモを含めることにより、レコードに添付ファイルを追加することもできます。

.NET 用 SDK では、CreateEntityRequest または UpdateEntityRequest HasNotes プロパティを使用します

Web API で、EntityMetadata.HasNotes を設定します プロパティの値を指定することができます。
活動 ActivityPointer テーブルとのリレーションシップを作成し、すべてのアクティビティ タイプ テーブルがこのテーブルに関連付けられるようにします。

.NET 用 SDK では、CreateEntityRequest または UpdateEntityRequest HasActivities プロパティを使用します。

Web API で、EntityMetadata.HasActivities プロパティの値を指定することができます。
つながり このテーブルと他の接続テーブルを関連付ける接続レコードを作成できるようにするには、IsConnectionsEnabled.Value のプロパティ値を true に設定します。
キュー キューのサポートを追加するには、IsValidForQueue プロパティを使用します。 このオプションを有効にすると、この種類のレコードが作成または割り当てられたときに、レコードを所有者の既定のキューに自動的に移動するように AutoRouteToOwnerQueue プロパティを設定することもできます。
電子メール この種類のレコードの電子メール アドレスに、電子メールを送信できるように IsActivityParty プロパティを設定します。

編集可能なテーブルのプロパティ

編集可能なテーブル プロパティの一覧を以下に示します。 これらのオプションは、マネージド プロパティによって無効にしている場合を除き、いつでも更新できます。

プロパティ 内容
簡易作成を許可 IsQuickCreateEnabled を使用すると、テーブルの簡易作成フォームが有効になります。 簡易作成フォームを使用する前に、まず簡易作成フォームを作成および公開する必要があります。
メモ:
アクティビティ テーブルは簡易作成フォームに対応していません。
アクセス チーム アクセス チームのテーブルを有効にするには AutoCreateAccessTeams を使用します。 詳細については、チーム テンプレートとの共同作業について を参照してください。
プライマリ イメージ テーブルに画像の列がある場合、PrimaryImageAttribute を使用してその画像をアプリケーションに表示するかどうかを設定できます。 コードを使って画像列定義を使って操作する方法について
表示テキストの変更 マネージド プロパティ IsRenameable のために、アプリケーションで表示名を変更できません。 DisplayName および DisplayCollectionName プロパティを更新することによって、ラベルをプログラム的に変更することができます。
テーブルの説明を編集する 管理プロパティ IsRenameable は、アプリケーション上でテーブルの説明を変更できないようにします。 Description プロパティを更新することによって、ラベルをプログラム的に変更することができます。
オフライン時の使用の有効化 オフライン アクセス対応 Dynamics 365 for Microsoft Office Outlook のユーザーが、オフライン時にこのテーブルのデータを取得できるかどうかを切り替えるには、IsAvailableOffline を使用します。
Outlook の閲覧ウィンドウの有効化 メモ:

IsReadingPaneEnabledエンティティは内部のみで使用します。

Office Outlook nユーザーがこのテーブルのデータを表示する機能を有効または無効にするには、Outlook の読み取りペインを使用します。 このプロパティは、アプリケーションで設定する必要があります。
差し込み印刷の有効化 IsMailMergeEnabled を使用して、このテーブルのデータを使用する Office Word の結合文書を生成する機能を有効または無効にします。
重複データ検出を有効にする IsDuplicateDetectionEnabled を使用するとテーブルの重複検出が有効または無効になります。 詳細については、コードを使用した重複データの検出 を参照してください
SharePoint 統合の有効化 IsDocumentManagementEnabled を使用して、テーブルの SharePoint サーバー統合を有効または無効にします。 詳細については、特定のエンティティの SharePoint ドキュメント管理を有効にする を参照してください。
Dynamics 365 for phones の有効化 IsVisibleInMobile を使用して、このテーブルのデータを電話用 Dynamics 365 のユーザーが閲覧できるようにします。
タブレット PC 用 Dynamics 365 IsVisibleInMobileClient を使用して、このテーブルのデータをタブレット PC 用 Dynamics 365 のユーザーが閲覧できるようにします。

テーブルがタブレット PC 用 Dynamics 365 で利用可能な場合は、IsReadOnlyInMobileClient を使用してレコードのデータが読み取り専用であることを指定できます。
監査の有効化 IsAuditEnabled を使用するとテーブルの監査が有効または無効になります。 詳細については、監査用のテーブルとカラムの設定を参照してください。
テーブルを表示するエリアの変更 アプリケーションのナビゲーション ペインに表示されるテーブル グリッドの位置を制御することができます。 これはサイトマップによって制御されます。
列の追加または削除 マネージド プロパティ CanCreateAttributes.Value で列の作成が可能であれば、テーブルに列を追加することができます。 詳細については、列の定義 を参照してください。
ビューの追加と削除 マネージド プロパティ CanCreateViews.Value でビューの作成が可能であれば、SavedQuery テーブルを使ってテーブルのビューを作成することができます。
グラフの追加と削除 マネージド プロパティの CanCreateCharts.Value がグラフの作成を許可しており、IsEnabledForCharts のテーブルプロパティが true であれば、SavedQueryVisualization テーブル でテーブルのグラフを作成することができます。 詳細については、ビジュアル化を使用したデータの表示 (グラフ) を参照してください。
テーブルのリレーションシップの追加または削除 テーブルに作成できるリレーションシップの種類を制御するマネージド プロパティはいくつかあります。 詳細については、テーブルの関連付け定義 を参照してください。
アイコンの変更 カスタム テーブルに使われているアイコンを変更することができます。 詳細については、モデル駆動型アプリのカスタム テーブル アイコンの変更 を参照してください
階層関連付けを変更できる CanChangeHierarchicalRelationship.Value は、マネージドソリューションに含まれるリレーションシップの階層的な状態を変更できるかどうかを制御します。
エンティティ セット名 EntitySetName は、Dataverse Web API を使用してテーブルを一意に識別するために使用される名前を指定します。 これは通常、LogicalCollectionName と同じですが、LogicalCollectionName を変更することはできません。 デフォルトのエンティティ セット名を使用してコードを記述する前にのみ EntitySetName を変更する必要があります。 エンティティ設定名の詳細情報

カスタム テーブルでサポートされるメッセージ

カスタム テーブルは、システム テーブルと同じベース メッセージをサポートしています。 利用できるメッセージは、カスタム テーブルがユーザーのものか、組織のものかによって異なります。 ユーザー所有テーブルは共有をサポートしているため、GrantAccessModifyAccessRevokeAccess などのメッセージを使用できます。

参照

テーブル定義による Web API の利用
.NET 用 SDK を使用したテーブル定義を操作する

注意

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

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