マルチ テーブル検索
マルチテーブル検索タイプの列を使用すると、ユーザーは、環境内の他のテーブルに対して複数の一対多 (1:M) の関連付けを持つ特定のテーブルを使用できます。 単一の検索タイプの列は、他の複数のテーブルを参照できます。 マルチテーブル タイプの列に送信された検索値は、関連するテーブルのいずれかのレコードと一致します。
マルチテーブルタイプは現在組み込まれていますMicrosoft Dataverseアカウントと連絡先に接続するCustomerのような静的タイプとして。 この新機能により、ユーザーは必要になる可能性のある他のマルチテーブルルックアップを定義することができます。
注意
現時点では、ユーザーはSDKまたはWebAPIを介してカスタムマルチテーブルルックアップを作成および変更できます。 インタラクティブなユーザーインターフェイスのサポートは、将来のリリースで提供される予定です。
例
ライブラリ内のユーザー向けのメディアをホストしているとしましょう。 多くの異なる MediaObject があり、それらの多くは同じ名前ですが、"Books"、"Audio"、"Video" などの異なる形式です。 1: M リレーションシップから "new_Books"、"new_Audio"、"new_Video" への "new_Media"というマルチ テーブル ルックアップを作成すると、特定のテーブルに格納されているレコードの迅速な識別を提供する "new_Media" ルックアップ テーブルが作成されます。
new_Media ルックアップ テーブル
| PrimaryID | PrimaryName | RelatedID | 関連名 |
|---|---|---|---|
| <media1> | MediaObjectOne | <books1> | Content1 |
| <media2> | MediaObjectTwo | <audio1> | Content1 |
| <media3> | MediaObjectThree | <video1> | Content3 |
| <media4> | MediaObjectFour | <audio2> | Content3 |
new_Books テーブル
| PrimaryID | PrimaryName | CallNumber |
|---|---|---|
| <books1> | Content1 | 1ww-3452 |
| <books2> | Content2 | a4e-87hw |
new_Audio テーブル
| PrimaryID | PrimaryName | AudioFormat |
|---|---|---|
| <audio1> | Content1 | mp4 |
| <audio2> | Content3 | wma |
new_Video テーブル
| PrimaryID | PrimaryName | VideoFormat |
|---|---|---|
| <video1> | Content3 | wmv |
| <video2> | Content2 | avi |
メディア検索は、ポリモーフィック検索のテーブル全体にわたるレコードを返すことができます。
Content1 という名前のメディアを検索すると、<books1> と <audio1> のレコードが取得されます
Content3 のメディアを検索すると、<audio2> と <video1> のレコードが取得されます
WebAPI の例
以下に示すのは、ポリモーフィック ルックアップ属性の HTTP POST です。
POST [Organization URI]/api/data/v9.0/CreatePolymorphicLookupAttribute HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
{
"OneToManyRelationships": [
{
"SchemaName": "new_media_new_book",
"ReferencedEntity": "new_book",
"ReferencingEntity": "new_media"
},
{
"SchemaName": "new_media_new_video",
"ReferencedEntity": "new_video",
"ReferencingEntity": "new_media"
},
{
"SchemaName": "new_media_new_audio",
"ReferencedEntity": "new_audio",
"ReferencingEntity": "new_media",
"CascadeConfiguration": {
"Assign": "NoCascade",
"Delete": "RemoveLink",
"Merge": "NoCascade",
"Reparent": "NoCascade",
"Share": "NoCascade",
"Unshare": "NoCascade"
}
}
],
"Lookup": {
"AttributeType": "Lookup",
"AttributeTypeName": {
"Value": "LookupType"
},
"Description": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Media Polymorphic Lookup",
"LanguageCode": 1033
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": " Media Polymorphic Lookup Attribute",
"LanguageCode": 1033
}
},
"DisplayName": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "MediaPolymorphicLookup",
"LanguageCode": 1033
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "MediaPolymorphicLookup",
"LanguageCode": 1033
}
},
"SchemaName": "new_mediaPolymporphicLookup",
"@odata.type": "Microsoft.Dynamics.CRM.ComplexLookupAttributeMetadata"
}
}
ポリモーフィック属性の ID と作成されたすべてのリレーションシップを含む HTTPPOST からの応答を以下に示します。
{
"@odata.context":
"http://<organization URL>/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.CreatePolymorphicLookupAttributeResponse",
"RelationshipIds":[
"77d4c6e9-0397-eb11-a81c-000d3a6cfaba",
"7ed4c6e9-0397-eb11-a81c-000d3a6cfaba",
"85d4c6e9-0397-eb11-a81c-000d3a6cfaba"
],
"AttributeId":"d378dd3e-42f4-4bd7-95c7-0ee546c7de40"
複数テーブルのルックアップ API を使用する
次の表に、テーブルと属性の定義に関連する操作を示します。
| 操作 (方式) |
内容 | URL 形式 |
|---|---|---|
| 作成 (POST) |
新しい API | [OrganizationUrl]/api/data/v9.0 /CreatePolymorphicLookupAttribute |
| 属性の取得 (GET) |
既存の API | [OrganizationUrl]/api/data/v9.0 /EntityDefinitions(<EntityId>)/Attributes(<AttributeId>) |
| リレーションシップの取得 (GET) |
既存の API | [OrganizationUrl]/api/data/v9.0 /RelationshipDefinitions(<RelationshipId>) |
| リレーションシップを追加する (POST) |
リレーションシップを 既存の ポリモーフィック ルックアップに追加 属性 |
[OrganizationUrl]/api/data/v9.0 /RelationshipDefinitions |
| 関連付けの削除 (DELETE) |
既存の API | [OrganizationUrl]/api/data/v9.0 /RelationshipDefinitions(<RelationshipId>) |
| 属性の削除 (DELETE) |
既存の API | [OrganizationUrl]/api/data/v9.0 /EntityDefinitions(<EntityId>)/Attributes(<AttributeId>) |
次の表に、テーブルと属性データの定義に関連する操作を示します。
| 操作 (方式) |
内容 | URL 形式 |
|---|---|---|
| 作成 (POST) |
以下の "new_checkouts" を参照してください | [OrganizationUrl]/api/data/v9.0 /<entitysetName> |
| 取得 (GET) |
次のヘッダーを追加して、注釈を取得します。Content-Type: application/json Prefer: odata.include-annotations="*" |
[OrganizationUrl]/api/data/v9.0 /<entitysetName>(<recordId>) |
以下は、2 行で新しいエンティティ セットを作成するリクエストの例です。
POST [OrganizationUrl]/api/data/v9.1/new_checkouts
{
"new_name": "c1",
new_CheckedoutItem_new_book@odata.bind: "/new_books(387a2c9b-ecc6-ea11-a81e-000d3af68bd7)"
}
{
"new_name": "c2",
new_CheckedoutItem_new_device@odata.bind: "/new_devices(6472e7ba-ecc6-ea11-a81e-000d3af68bd7)"
}
ポリモーフィック ルックアップの作成 (ペイロードの例)
POST [OrganizationUrl]/api/data/v9.0/CreatePolymorphicLookupAttribute
{
"OneToManyRelationships": [
{
"SchemaName": "new_checkout_poly_new_book",
"ReferencedEntity": "new_book",
"ReferencingEntity": "new_checkout"
},
{
"SchemaName": "new_checkout_poly_new_device",
"ReferencedEntity": "new_device",
"ReferencingEntity": "new_checkout"
},
{
"SchemaName": "new_checkout_poly_new_dvd",
"ReferencedEntity": "new_dvd",
"ReferencingEntity": "new_checkout",
"CascadeConfiguration": {
"Assign": "NoCascade",
"Delete": "RemoveLink",
"Merge": "NoCascade",
"Reparent": "NoCascade",
"Share": "NoCascade",
"Unshare": "NoCascade"
}
}
],
"Lookup": {
"AttributeType": "Lookup",
"AttributeTypeName": {
"Value": "LookupType"
},
"Description": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Checkouted item Polymorphic Lookup Attribute",
"LanguageCode": 1033
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Checkedout item Polymorphic Lookup Attribute",
"LanguageCode": 1033
}
},
"DisplayName": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Checkedout item",
"LanguageCode": 1033
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Checkedout item",
"LanguageCode": 1033
}
},
"SchemaName": "new_CheckedoutItem",
"@odata.type": "Microsoft.Dynamics.CRM.ComplexLookupAttributeMetadata"
}
}
既存のポリモーフィック ルックアップにリレーションシップを追加します (ペイロードの例)
POST [OrganizationUrl]/api/data/v9.0/RelationshipDefinitions
{
"SchemaName": "new_checkout_poly_new_researchresource",
"@odata.type": "Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata",
"CascadeConfiguration": {
"Assign": "NoCascade",
"Delete": "RemoveLink",
"Merge": "NoCascade",
"Reparent": "NoCascade",
"Share": "NoCascade",
"Unshare": "NoCascade"
},
"ReferencedEntity": "new_researchresource",
"ReferencingEntity": "new_checkout",
"Lookup": {
"AttributeType": "Lookup",
"AttributeTypeName": { "Value": "LookupType" },
"Description": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Checkout Polymorphic Lookup Attribute",
"LanguageCode": 1033
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Checkout Polymorphic Lookup Attribute",
"LanguageCode": 1033
}
},
"DisplayName": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Checkout item",
"LanguageCode": 1033
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Checkout item",
"LanguageCode": 1033
}
},
"SchemaName": "new_CheckedoutItem",
"@odata.type": "Microsoft.Dynamics.CRM.LookupAttributeMetadata"
}
}
関連項目
フィードバック
フィードバックの送信と表示