Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 Tabellenbeziehung (Entität) erstellen, sollten Sie bestätigen, ob die Tabelle berechtigt ist, an der Beziehung teilzunehmen. Sie können die in der folgenden Tabelle aufgeführten Aktionen verwenden, um die Berechtigung zu ermitteln. Diese Aktionen entsprechen dem SDK für .NET-Nachrichten, die in Tabelle Beziehungsberechtigung beschrieben sind.
| Maßnahme | Description |
|---|---|
| CanBeReferenced-Aktion | Überprüft, ob die angegebene Entität die primäre Entität (eine) in einer Beziehung mit einer Eins-zu-Viele-Relation sein kann. |
| CanBeReferencing-Aktion | Überprüft, ob die angegebene Entität die referenzierende Entität in einer Eins-zu-viele-Beziehung sein kann. |
| CanManyToMany-Aktion | Überprüft, ob die Entität an einer m:n-Beziehung teilnehmen kann. |
| GetValidManyToMany-Funktion | Gibt die Menge von Entitäten zurück, die an einer viele-zu-viele Beziehung teilnehmen können. |
| GetValidReferencedEntities-Funktion | 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-Funktion | 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 Eins-zu-Viele-Beziehung erstellen, definieren Sie sie mithilfe des OneToManyRelationshipMetadata EntityType. Diese Definition enthält das Nachschlageattribut, das mithilfe von LookupAttributeMetadata EntityType definiert wird und auch komplexe Eigenschaften mit AssociatedMenuConfiguration ComplexType, CascadeConfiguration ComplexType, Label ComplexType und LocalizedLabel ComplexType erfordert. Das Suchattribut wird auf die einzelwertige Navigationseigenschaft des OneToManyRelationshipMetadata-Objekts festgelegt und wird gleichzeitig mit der tiefen Einfügung erstellt. Weitere Informationen: Erstellen verwandter Tabellenzeilen in einem Vorgang und Tabellenbeziehungsmetadaten
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 Eigenschaftswert @odata.type von Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata einschließen, um den Beziehungstyp, den Sie erstellen, klar zu machen, da dieselbe Entitätengruppe verwendet wird, um viele-zu-viele-Beziehungen zu erstellen. 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(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Erstellen einer n:n-Beziehung
Wenn Sie einen benutzerdefinierten Navigations-Eigenschaftsnamen für eine Viele-zu-Viele-Beziehung anwenden möchten, können Sie Werte für die Entity1NavigationPropertyName und Entity2NavigationPropertyName Eigenschaften 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(11bb11bb-cc22-dd33-ee44-55ff55ff55ff)
Beziehungen erstellen, um Mehrfachabfragen über 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 an die Mehrtabellentypspalte übermittelter Nachschlagewert wird mit einem Datensatz in einer der verknüpften Tabellen abgeglichen.
Weitere Informationen: Verwenden von Nachschlagespalten mit mehreren Tabellen
Aktualisieren von Beziehungen
Wie in Update-Tabellendefinitionen beschrieben, 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 mit der HTTP PATCH-Methode bearbeiten, wie sie mit Geschäftsdatentabellen möglich sind. Genau wie bei Entitäten und Attributen sollten Sie einen MSCRM.MergeLabels-Header mit dem Wert true angeben, um zu vermeiden, dass lokalisierte Bezeichnungen, die nicht in Ihrem Update enthalten sind, überschrieben werden. Sie müssen Anpassungen veröffentlichen, bevor sie im System aktiv sind.
Löschen von Beziehungen
Verwenden Sie zum Löschen einer Beziehung mithilfe der Web-API die HTTP DELETE-Methode mit dem URI für die Beziehung.
Siehe auch
Verwenden der Web-API mit Tabellendefinitionen
Abfragen von Tabellendefinitionen mithilfe der Web-API
Abrufen von Tabellendefinitionen nach Name oder MetadataId
Tabellen und Spalten mithilfe der Web-API modellieren
Beispiel für Web-API-Tabellenschemavorgänge
Beispiel für Web-API-Tabellen-Schemaoperationen (C#)