Freigeben über


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

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 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