テーブル定義を定義または変更することで、テーブルの機能を制御できます。 環境のテーブル定義を表示するには、メタデータ ブラウザーを使用します。 環境内のテーブル定義を参照します。
詳細情報: 環境のテーブル定義を参照する
この記事では、プログラムでテーブルを操作する方法について説明します。 Power Apps でテーブルを操作するには、Dataverse のテーブルを参照してください。
テーブルは、SDK for .NET または Web API を使用して作成できます。 以下の情報は両方に適用することができます。
- SDK for .NET では、 EntityMetadata クラスを使用します。 詳細情報: コードを使用してカスタムテーブルを作成する および テーブルの取得、更新、削除
- Web API では、 EntityMetadata EntityType を使用します。 Web API を使用してテーブル定義を作成および更新する方法について説明します
テーブル定義操作
テーブル定義の操作方法は、使用するサービスによって異なります。
Web API は RESTful エンドポイントであるため、テーブル定義の作成、取得、更新、削除には別の方法が使用されます。 テーブル定義エンティティ型を操作するには、 POST、 GET、 PUT、および DELETE HTTP 動詞を使用します。
Web API を使用してテーブル定義を作成および更新する方法について説明します
これに対する 1 つの例外は、 RetrieveMetadataChanges 関数 によって、テーブル定義クエリを作成し、時間の経過と同時に変更を追跡する方法を提供することです。
SDK for .NET を使用する場合は、 RetrieveMetadataChangesRequest クラスを使用します。 このクラスには、指定された条件を満たすテーブル定義レコードのコレクションを取得するために必要なデータが含まれています。 RetrieveMetadataChangesResponseは、この要求で使用できるタイムスタンプ値を後で返して、前回の要求以降にテーブル定義がどのように変更されたかに関する情報を返します。
| メッセージ | Web API | SDK アセンブリ |
|---|---|---|
CreateEntity |
POST 要求を使用してデータを送信し、テーブルを作成します。 | CreateEntityRequest |
DeleteEntity |
DELETE 要求を使用してテーブルを削除します。 | DeleteEntityRequest |
RetrieveAllEntities |
GET 要求を使用してテーブル データを取得します。 | RetrieveAllEntitiesRequest |
RetrieveEntity |
RetrieveEntity 関数 | RetrieveEntityRequest |
UpdateEntity |
PUT 要求を使用してテーブルを更新します。 | UpdateEntityRequest |
RetrieveMetadataChanges
Microsoft.Xrm.Sdk.Metadata.Query名前空間内のオブジェクトと共に使用して、特定のテーブル定義に対する変更を効率的に取得および検出するクエリを作成します。 詳細情報: テーブル定義に対する変更を取得して検出します。 |
RetrieveMetadataChanges 関数 | RetrieveMetadataChangesRequest |
カスタム テーブルを作成するときに使用できるオプション
次に、カスタム テーブルを作成するときに使用できるオプションを示します。 これらのプロパティは、カスタム テーブルを作成するときにのみ設定できます。
| Option | Description |
|---|---|
| ユーザー定義の活動として作成 | SDK for .NET または Web API をそれぞれ使用する場合は、 IsActivity プロパティを設定することで、アクティビティであるテーブルを作成できます。 詳細については、「 Dynamics 365 のカスタム アクティビティ」を参照してください。 |
| テーブル名 | 名前には 2 種類あり、どちらもカスタマイズの接頭辞が付いている必要があります。LogicalName: すべての小文字で設定されているテーブル名のバージョンである名前。SchemaName: データベース テーブルの作成に使用される名前。 この名前は大文字小文字が混在できます。 使用する大文字と小文字は、厳密な型を使用するプログラミングのとき、または REST エンドポイントを使用するときに生成されるオブジェクトの名前を設定します。注: 論理名がスキーマ名と異なる場合、スキーマ名は論理名に設定した値をオーバーライドします。 特定のソリューションのコンテキストでアプリケーションでテーブルを作成する場合、使用されるカスタマイズ プレフィックスはソリューションの Publisher に設定されます。 テーブルをプログラムで作成する場合は、カスタマイズ プレフィックスを長さ 2 ~ 8 文字の文字列に設定できます。すべての英数字は文字で始まる必要があります。 これは mscrm を使って開始できません。 ベスト プラクティスは、ソリューションが関連付けられている発行元によって定義されたカスタマイズ プレフィックスを使用することですが、このベスト プラクティスは適用されません。 カスタマイズの接頭辞と論理名またはスキーマ名との間に、アンダースコアを使用する必要があります。 |
| 所有権 | テーブル レコードの所有方法を設定するには、 OwnershipType プロパティを使用します。 テーブルの所有権の種類を設定するには、 OwnershipTypes 列挙型または OwnershipTypes EnumType を使用します。 カスタム テーブルの有効な値は、 OrgOwned または UserOwnedのみです。 詳細については、「テーブルの 所有権」を参照してください。 |
| プライマリ列 | SDK for .NET では、 CreateEntityRequest.PrimaryAttribute プロパティを使用してプライマリ列を設定します。 Web API では、テーブルを定義する JSON に、StringAttributeMetadata プロパティが true に設定された 1 つの IsPrimaryNameが含まれている必要があります。どちらの場合も、文字列列は Text形式にする必要があります。 プライマリ列の値は、関連するテーブルの参照に表示されます。 したがって、列の値はレコードの名前を表す必要があります。 |
テーブル機能を有効にする
次に、テーブルの機能を示します。 これらの機能は、テーブルを作成するときに設定することも、後で有効にすることもできます。 有効にすると、これらの機能を無効にすることはできません。
| 能力 | Description |
|---|---|
| ビジネス プロセス フロー | 業務プロセス フローのテーブルを有効にするには、 IsBusinessProcessEnabled を true に設定します。 |
| Notes |
Annotation テーブルとのリレーションシップを作成し、フォームに Notes 領域を含めることを有効にするには。
メモを含めることにより、レコードに添付ファイルを追加することもできます。 SDK for .NET では、 CreateEntityRequest または UpdateEntityRequest HasNotes プロパティを使用します Web API で、EntityMetadata を設定します。 HasNotes プロパティ。 |
| 活動 | すべてのアクティビティの種類のテーブルをこのテーブルに関連付けることができるように、 ActivityPointer テーブルとのリレーションシップを作成します。SDK for .NET では、 CreateEntityRequest または UpdateEntityRequest HasActivities プロパティを使用します。 Web API で、EntityMetadata を設定します。 HasActivities プロパティ。 |
| つながり | このテーブルを他の接続テーブルに関連付ける接続レコードの作成を有効にするには、 IsConnectionsEnabled.Value プロパティの値を true に設定します。 |
| Queues | キューのサポートを追加するには、IsValidForQueue プロパティを使用します。 このオプションを有効にすると、 AutoRouteToOwnerQueue プロパティを設定して、この種類のレコードが作成または割り当てられると、レコードが所有者の既定のキューに自動的に移動されるようにすることもできます。 |
| メール | この種類のレコードの電子メール アドレスに、電子メールを送信できるように IsActivityParty プロパティを設定します。 |
編集可能なテーブルのプロパティ
次に、編集できるテーブルのプロパティを示します。 これらのオプションは、マネージド プロパティによって無効にしている場合を除き、いつでも更新できます。
| プロパティ | Description |
|---|---|
| 簡易作成を許可する | テーブルの簡易作成フォームを有効にするには、 IsQuickCreateEnabled を使用します。 簡易作成フォームを使用するには、まず簡易作成フォームを作成して発行する必要があります。Note: アクティビティ テーブルでは、簡易作成フォームはサポートされていません。 |
| Teams にアクセスする |
AutoCreateAccessTeamsを使用して、アクセス チームのテーブルを有効にします。 詳細については、「 チーム テンプレートとの共同作業について 」を参照してください。 |
| プライマリ画像 | テーブルにイメージ列がある場合は、 PrimaryImageAttributeを使用して、アプリケーションでそのイメージの表示を有効または無効にすることができます。
コードを使用してイメージ列の定義を操作する方法について説明します |
| 表示テキストの変更 | マネージド プロパティ IsRenameable のために、アプリケーションで表示名を変更できません。
DisplayName および DisplayCollectionName プロパティを更新することによって、ラベルをプログラム的に変更することができます。 |
| テーブルの説明を編集する | 管理プロパティ IsRenameable を使用すると、アプリケーションでテーブルの説明が変更されなくなります。
Description プロパティを更新することによって、ラベルをプログラム的に変更することができます。 |
| オフライン時の使用の有効化 |
IsAvailableOfflineを使用して、オフライン アクセス ユーザーがこのテーブルのデータをオフラインで取得する Dynamics 365 for Microsoft Office Outlook の機能を有効または無効にします。 |
| Outlook の閲覧ウィンドウの有効化 |
Note:IsReadingPaneEnabled プロパティは、内部でのみ使用されます。Office Outlook ユーザーがこのテーブルのデータを表示する機能を有効または無効にするには、Outlook 閲覧ウィンドウを使用します。 このプロパティは、アプリケーションで設定する必要があります。 |
| 差し込み印刷の有効化 |
IsMailMergeEnabledを使用して、この表のデータを使用する Office Word の差し込み文書を生成する機能を有効または無効にします。 |
| 重複データ検出の有効化 | テーブルの重複検出を有効または無効にするには、 IsDuplicateDetectionEnabled を使用します。 詳細については、「コードを使用して重複データを検出する」を参照してください。 |
| SharePoint 統合を有効にする |
IsDocumentManagementEnabledを使用して、テーブルの SharePoint サーバー統合を有効または無効にします。 詳細については、特定のエンティティの SharePoint ドキュメント管理を有効にする を参照してください。 |
| 電話用 Dynamics 365 の有効化 |
IsVisibleInMobileを使用して、電話ユーザーがこのテーブルのデータを表示する Dynamics 365 の機能を有効または無効にします。 |
| タブレット PC 用 Dynamics 365 |
IsVisibleInMobileClientを使用して、タブレット ユーザーがこのテーブルのデータを表示する Dynamics 365 の機能を有効または無効にします。テーブルが Dynamics 365 for tablets で使用できる場合は、 IsReadOnlyInMobileClient を使用して、レコードのデータが読み取り専用であることを指定できます。 |
| 監査の有効化 | テーブルの監査を有効または無効にするには、 IsAuditEnabled を使用します。 詳細については、「 監査用にテーブルと列を構成する」を参照してください。 |
| テーブルを表示する領域を変更する | アプリケーションのナビゲーション ウィンドウに表のグリッドを表示する場所を制御できます。 これは SiteMap によって制御されます。 |
| 列の追加または削除 | 管理プロパティ CanCreateAttributes.Value で列の作成が許可されている限り、テーブルに列を追加できます。 詳細については、「 列の定義」を参照してください。 |
| ビューの追加と削除 | 管理プロパティ CanCreateViews.Value ビューの作成が許可されている限り、 SavedQuery テーブルを使用してテーブルのビューを作成できます。 |
| グラフの追加と削除 | 管理プロパティ CanCreateCharts.Value でグラフの作成が許可され、 IsEnabledForCharts テーブル プロパティが true である限り、 SavedQueryVisualization テーブル を使用してテーブルのグラフを作成できます。 詳細については、「 視覚化を使用したデータの表示 (グラフ)」を参照してください。 |
| テーブル リレーションシップの追加または削除 | テーブルに対して作成できるリレーションシップの種類を制御する管理プロパティがいくつかあります。 詳細については、「 テーブル リレーションシップの定義」を参照してください。 |
| アイコンの変更 | カスタム テーブルに使用するアイコンを変更できます。 詳細については、「モデル駆動型アプリのカスタム テーブル アイコンの変更」を参照してください。 |
| 階層関連付けの変更が可能 |
CanChangeHierarchicalRelationship.Value は、マネージド ソリューションに含まれるリレーションシップの階層状態を変更できるかどうかを制御します。 |
| エンティティ セット名 |
EntitySetName は、Dataverse Web API を使用してテーブルを一意に識別するために使用される名前を指定します。 これは通常、 LogicalCollectionNameと同じですが、 LogicalCollectionNameを変更することはできません。 既定のエンティティ セット名を使用してコードを記述する前に、 EntitySetName のみを変更する必要があります。
エンティティ セット名の詳細 |
カスタム テーブルでサポートされるメッセージ
カスタム テーブルでは、システム テーブルと同じ基本メッセージがサポートされます。 使用できるメッセージのセットは、カスタム テーブルがユーザー所有か組織所有かによって異なります。 ユーザー所有テーブルは共有をサポートしているため、 GrantAccess、 ModifyAccess、 RevokeAccess などのメッセージを使用できます。