Erstellen und Aktualisieren von Entitätsbeziehungen mit der Web-API
Veröffentlicht: Januar 2017
Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Die Web-API unterstützt die Arbeit mit Beziehungsmetadaten. Die unter Anpassen von Entitätsbeziehungsmetadaten beschriebenen Konzepte gelten auch für die Web-API.
In diesem Thema
Eignung für Beziehungen
Erstellen einer 1:n-Beziehung
Erstellen einer n:n-Beziehung
Aktualisieren von Beziehungen
Beziehungen löschen
Eignung für Beziehungen
Bevor Sie eine Entitätsbeziehung erstellen, müssen Sie bestätigen, ob die Entität 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 Organisationsservicemeldungen, die unter Entitätsbeziehungseignung beschrieben werden.
Aktion |
Beschreibung |
---|---|
Überprüft, ob die angegebene Entität als primäre Entität (eins) in einer 1:n-Beziehung verwendet werden kann. |
|
Überprüft, ob die angegebene Entität als verweisende Entität (viele) in einer 1:n-Beziehung verwendet werden kann. |
|
Überprüft, ob die Entität an einer n:n-Beziehung teilnehmen kann. |
|
Gibt den Satz von Entitäten zurück, die an einer n:n-Beziehung teilnehmen können. |
|
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. |
|
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 Lookup des OneToManyRelationshipMetadata-Objekts festgelegt und wird gleichzeitig mit der tiefen Einfügung erstellt.Weitere Informationen:Erstellen verknüpfter Entitäten in einem Vorgang und Eins-zu-viele-Beziehungen
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 das erforderliche JSON generiert haben, um die Beziehung und das Suchattribut zu definieren, wird JSON via POST dem RelationshipDefinitions-Entitätssatz zugeordnet. Sie müssen den @odata.type-Eigenschaftswert von Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata aufnehmen, um den Typ der Beziehung zu verdeutlichen, den Sie erstellen, da der gleiche Entitätssatz verwendet wird, um n:n-Beziehungen zu erstellen. Der URI für die resultierende Beziehung wird in der Antwort zurückgegeben.
Anforderung
POST cc_WebAPI_ServiceURI/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: cc_WebAPI_ServiceURI/RelationshipDefinitions(d475020f-5d7c-e511-80d2-00155d2a68d2)
Erstellen einer n:n-Beziehung
Wenn Sie eine n:n-Beziehung erstellen, müssen Sie sie definieren, indem Sie den ManyToManyRelationshipMetadata EntityType verwenden. Die Definition enthält den Namen der zu erstellenden überschneidende Entität und wie Beziehungen in der Anwendung angezeigt werden soll, indem AssociatedMenuConfiguration ComplexType, Label ComplexType und LocalizedLabel ComplexType verwendet wird.Weitere Informationen:Viele-zu-viele-Beziehungen
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 das erforderliche JSON generiert haben, um die Beziehung zu definieren, wird JSON via POST dem RelationshipDefinitions-Entitätssatz zugeordnet. Sie müssen den @odata.type-Eigenschaftswert von Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata aufnehmen, um den Typ der Beziehung zu verdeutlichen, den Sie erstellen, da der gleiche Entitätssatz verwendet wird, um 1:n-Beziehungen zu erstellen. Der URI für die resultierende Beziehung wird in der Antwort zurückgegeben.
Anforderung
POST cc_WebAPI_ServiceURI/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: cc_WebAPI_ServiceURI/RelationshipDefinitions(420245fa-c77c-e511-80d2-00155d2a68d2)
Aktualisieren von Beziehungen
Wie in Aktualisieren von Entitäten erläutert, aktualisieren Sie Beziehungen mit der HTTP PUT-Methode, um die vorhandene Definition von Änderungen zu ersetzen, die Sie anwenden möchten. Sie können einzelne Eigenschaften nicht mithilfe der HTTP PATCH-Methode bearbeiten, wie Sie es mit Geschäftsdatenentitäten können. 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
Anpassen von Entitätsbeziehungsmetadaten
Verwenden der Web-API mit Dynamics 365-Metadaten
Metadaten mit Web-API abfragen
Abrufen von Metadaten über den Namen oder die MetadataId
Erstellen und Aktualisieren von Entitätsdefinitionen mit der Web-API
Microsoft Dynamics 365
© 2017 Microsoft. Alle Rechte vorbehalten. Copyright