Tabellendefinitionen über die Web-API erstellen und aktualisieren
Die Web-API unterstützt das Arbeiten mit Beziehungsdefinitionen (Metadaten). Die in Tabellenbeziehungsdefinitionen beschriebenen Konzepte gelten auch für die Web-API.
Eignung für Beziehungen
Bevor Sie eine Tabelle (Enität) erstellen, müssen Sie bestätigen, ob die Tabelle geeignet ist, um an der Beziehung teilzunehmen. Sie können die Aktionen verwenden, die in der folgenden Tabelle aufgeführt sind, um die Eignung zu bestimmen. Diese Aktionen entsprechen den in Berechtigung für Tabellenbeziehungen beschriebenen SDK für .NET-Nachrichten.
Aktion | Beschreibung |
---|---|
CanBeReferenced Action | Überprüft, ob die angegebene Entität als primäre Entität (eins) in einer 1:n-Beziehung verwendet werden kann. |
CanBeReferencing Action | Überprüft, ob die angegebene Entität als verweisende Entität (viele) in einer 1:n-Beziehung verwendet werden kann. |
CanManyToMany Action | Überprüft, ob die Entität an einer n:n-Beziehung teilnehmen kann. |
GetValidManyToMany Function | Gibt den Satz von Entitäten zurück, die an einer n:n-Beziehung teilnehmen können. |
GetValidReferencedEntities Function | Gibt den Satz von Entitäten zurück, der als die primäre Entität (eins) von der angegebenen Entität in einer 1: n-Beziehung gültig ist. |
GetValidReferencingEntities Function | Gibt den Satz von Entitäten zurück, der als die verknüpfte Entität (viele) mit der angegebenen Entität in einer 1:n-Beziehung gültig ist. |
Erstellen einer 1:n-Beziehung
Wenn Sie eine 1:n-Beziehung erstellen, definieren Sie sie, indem Sie den OneToManyRelationshipMetadata EntityType verwenden. Die Definition umfasst das Suchattribut, da mit dem LookupAttributeMetadata EntityType definiert wird, und erfordert auch komplexe Eigenschaften unter Verwendung von AssociatedMenuConfiguration ComplexType, CascadeConfiguration ComplexType, Label ComplexType und LocalizedLabel ComplexType. Das Suchattribut wird auf die einzelwertige Navigationseigenschaft des OneToManyRelationshipMetadata
-Objekts festgelegt und wird gleichzeitig mit der tiefen Einfügung erstellt. Mehr Informationen: Erstellen Sie verwandte Tabellenzeilen in einem Vorgang und Metadaten für Tabellenbeziehungen
Wenn Sie einen benutzerdefinierten Navigationseigenschaftennamen für eine 1:n-Beziehung anwenden, können Sie Werte für die Eigenschaften ReferencingEntityNavigationPropertyName
und ReferencedEntityNavigationPropertyName
festlegen.
Nachdem Sie den erforderlichen JSON generiert haben, um die Beziehung und das Suchattribut zu definieren, POST
der JSON zum RelationshipDefinitions
Entitätssatz wird festgelegt. Sie müssen den @odata.type
Eigenschaftswert von Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata
einschließen, um die Art der Beziehung zu klären, die Sie erstellen, da mit demselben Entitätssatz viele-zu-viele Beziehungen erstellt werden. Der URI für die resultierende Beziehung wird in der Antwort zurückgegeben.
Anforderung:
POST [Organization URI]/api/data/v9.2/RelationshipDefinitions HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
{
"SchemaName": "new_contact_new_bankaccount",
"@odata.type": "Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata",
"AssociatedMenuConfiguration": {
"Behavior": "UseCollectionName",
"Group": "Details",
"Label": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Bank Accounts",
"LanguageCode": 1033
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Bank Accounts",
"LanguageCode": 1033
}
},
"Order": 10000
},
"CascadeConfiguration": {
"Assign": "Cascade",
"Delete": "Cascade",
"Merge": "Cascade",
"Reparent": "Cascade",
"Share": "Cascade",
"Unshare": "Cascade"
},
"ReferencedAttribute": "contactid",
"ReferencedEntity": "contact",
"ReferencingEntity": "new_bankaccount",
"Lookup": {
"AttributeType": "Lookup",
"AttributeTypeName": {
"Value": "LookupType"
},
"Description": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "The owner of the account",
"LanguageCode": 1033
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "The owner of the account",
"LanguageCode": 1033
}
},
"DisplayName": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Account Owner",
"LanguageCode": 1033
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Account Owner",
"LanguageCode": 1033
}
},
"RequiredLevel": {
"Value": "ApplicationRequired",
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings"
},
"SchemaName": "new_AccountOwner",
"@odata.type": "Microsoft.Dynamics.CRM.LookupAttributeMetadata"
}
}
Antwort:
HTTP/1.1 204 No Content
OData-Version: 4.0
OData-EntityId: [Organization URI]/api/data/v9.2/RelationshipDefinitions(d475020f-5d7c-e511-80d2-00155d2a68d2)
Erstellen einer n:n-Beziehung
Wenn Sie einen benutzerdefinierten Navigationseigenschaftennamen für eine n:n-Beziehung anwenden, können Sie Werte für die Eigenschaften Entity1NavigationPropertyName
und Entity2NavigationPropertyName
festlegen.
Nachdem Sie den erforderlichen JSON generiert haben, um die Beziehung und das Suchattribut zu definieren, POST
der JSON zum RelationshipDefinitions
Entitätssatz wird festgelegt. Sie müssen den @odata.type
Eigenschaftswert von Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata
einschließen, um die Art der Beziehung zu klären, die Sie erstellen, da mit demselben Entitätssatz eine-zu-viele Beziehungen erstellt werden. Der URI für die resultierende Beziehung wird in der Antwort zurückgegeben.
Anforderung:
POST [Organization URI]/api/data/v9.2/RelationshipDefinitions HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
{
"SchemaName": "new_accounts_campaigns",
"@odata.type": "Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata",
"Entity1AssociatedMenuConfiguration": {
"Behavior": "UseLabel",
"Group": "Details",
"Label": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Account",
"LanguageCode": 1033
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Account",
"LanguageCode": 1033
}
},
"Order": 10000
},
"Entity1LogicalName": "account",
"Entity2AssociatedMenuConfiguration": {
"Behavior": "UseLabel",
"Group": "Details",
"Label": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Campaign",
"LanguageCode": 1033
}
],
"UserLocalizedLabel": {
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Campaign",
"LanguageCode": 1033
}
},
"Order": 10000
},
"Entity2LogicalName": "campaign",
"IntersectEntityName": "new_accounts_campaigns"
}
Antwort:
HTTP/1.1 204 No Content
OData-Version: 4.0
OData-EntityId: [Organization URI]/api/data/v9.2/RelationshipDefinitions(420245fa-c77c-e511-80d2-00155d2a68d2)
Erstellen von Beziehungen, um eine Suche in mehreren Tabellen zu unterstützen
Suchtypspalten mit mehreren Tabellen ermöglichen es einem Benutzer, eine bestimmte Tabelle zu verwenden, die mehrere Eins-zu-Viele-(1:M-)Beziehungen mit anderen Tabellen in der Umgebung hat. Eine einzelne Suchtypspalte kann auf mehrere andere Tabellen verweisen. Ein Suchwert, der an die Spalte mit mehreren Tabellen übermittelt wird, wird mit einem Datensatz in einer der verknüpften Tabellen abgeglichen.
Mehr Informationen: Verwenden von Suchspalten mit mehreren Tabellen
Aktualisieren von Beziehungen
Wie in Aktualisieren Sie die Tabellendefinitionen diskutiert aktualisieren Sie Beziehungen mithilfe der HTTP-PUT-Methode, um die vorhandene Definition durch Änderungen zu ersetzen, die Sie anwenden möchten. Sie können einzelne Eigenschaften nicht wie bei Geschäftsdatentabellen mit der HTTP-PATCH-Methode bearbeiten. Wie mit Entitäten und Attributen können Sie eine MSCRM.MergeLabels
-Kopfzeile mit dem auf true
gesetzten Wertsatz aufnehmen, um das Überschreiben von lokalisierten Beschriftungen zu vermeiden, die in dem Update enthalten sind, und Sie müssen die Anpassungen veröffentlichen, damit sie im System aktiv sind.
Beziehungen löschen
Wenn Sie eine Beziehung mit der Web-API löschen möchten, können Sie die HTTP DELETE-Methode mit dem URI für die Beziehung verwenden.
Siehe auch
Verwenden Sie die Web-API mit Tabellendefinitionen
Abfragen von Tabellendefinitionen mithilfe der Web-API
Rufen Sie Tabellendefinitionen nach Name oder MetadataId ab
Modellieren Sie Tabellen und Spalten mithilfe der Web-API
Beispiel für Web-API-Tabellenschemavorgänge
Beispiel für Web-API-Tabellenschemavorgänge (C#)
Hinweis
Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)
Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).