Delen via


Entiteitsrelaties maken en bijwerken met behulp van de web-API

 

Gepubliceerd: januari 2017

Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

De web-API ondersteunt het werken met relatiemetagegevens. De concepten die worden beschreven in Aanpassen metagegevens van entiteitsrelaties gelden ook voor de web-API.

In dit onderwerp

Geschiktheid voor relaties

Een één-op-veel-relatie maken

Een veel-op-veel-relatie maken

Relaties bijwerken

Relaties verwijderen

Geschiktheid voor relaties

Voordat u een entiteitsrelatie maakt, moet u controleren of de entiteit in aanmerking komt om aan de relatie deel te nemen. U kunt de acties in de volgende tabel gebruiken om de geschiktheid te bepalen. Deze acties corresponderen met de organisatieserviceberichten in Relatiebeschikbaarheid van entiteit.

Actie

Beschrijving

CanBeReferenced Action

Bepaalt of de entiteit opgegeven de primaire entiteit (een) in een een-op-veel-relatie kan zijn.

CanBeReferencing Action

Bepaalt of de entiteit opgegeven de verwijzende entiteit (veel) in een een-op-veel-relatie kan zijn.

CanManyToMany Action

Bepaalt of de entiteit deel kan nemen aan een veel-op-veelrelatie.

GetValidManyToMany Function

Geeft de reeks entiteiten weer die aan een veel-op-veel-relatie kunnen deelnemen.

GetValidReferencedEntities Function

Geeft de reeks entiteiten weer die geldig zijn als de primaire entiteit (een) voor de opgegeven entiteit in een een-op-veel-relatie.

GetValidReferencingEntities Function

Geeft de reeks entiteiten weer die geldig zijn als de gerelateerde entiteit (veel) voor de opgegeven entiteit in een een-op-veel-relatie.

Een één-op-veel-relatie maken

Wanneer u een één-op-veel-relatie maakt, definieert u deze door OneToManyRelationshipMetadata EntityType te gebruiken. Deze definitie bevat het opzoekkenmerk, dat wordt gedefinieerd met LookupAttributeMetadata EntityType en ook complexe eigenschappen op basis van AssociatedMenuConfiguration ComplexType, CascadeConfiguration ComplexType, Label ComplexType en LocalizedLabel ComplexType vereist. Het opzoekkenmerk wordt ingesteld op de single-valued navigatie-eigenschap Lookup van het object OneToManyRelationshipMetadata en wordt tegelijk gemaakt door middel van diep invoegen.Meer informatie:In één bewerking gerelateerde entiteiten maken en Eén-op-veel relaties

Als u een naam van een aangepaste navigatie-eigenschap voor een één-op-veel-relatie wilt toepassen, kunt u waarden voor de eigenschappen ReferencingEntityNavigationPropertyName en ReferencedEntityNavigationPropertyName instellen.

Als u de vereiste JSON hebt gegenereerd om de relatie en het opzoekkenmerk te definiëren, POST u de JSON naar de entiteitset RelationshipDefinitions. U moet de waarde van de eigenschap @odata.type van Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata opnemen ter verduidelijking van het type relatie dat u maakt omdat dezelfde entiteitset wordt gebruikt om veel-op-veel-relaties te maken. De URI voor de resulterende relatie wordt geretourneerd in de respons.

  • Aanvraag

    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"
     }
    }
    
  • Respons

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: cc_WebAPI_ServiceURI/RelationshipDefinitions(d475020f-5d7c-e511-80d2-00155d2a68d2)
    

Een veel-op-veel-relatie maken

Wanneer u een veel-op-veel-relatie maakt, definieert u de relatie door ManyToManyRelationshipMetadata EntityType te gebruiken. Deze definitie bevat de naam van de doorsnedenentiteit die moet worden gemaakt en hoe de relatie moet worden weergegeven in de toepassing op basis van AssociatedMenuConfiguration ComplexType, Label ComplexType en LocalizedLabel ComplexType.Meer informatie:Veel-op-veel-relaties

Als u een naam van een aangepaste navigatie-eigenschap voor een veel-op-veel-relatie wilt toepassen, kunt u waarden voor de eigenschappen Entity1NavigationPropertyName en Entity2NavigationPropertyName instellen.

Als u de vereiste JSON hebt gegenereerd om de relatie te definiëren, POST u de JSON naar de entiteitset RelationshipDefinitions. U moet de waarde van de eigenschap @odata.type van Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata opnemen ter verduidelijking van het type relatie dat u maakt omdat dezelfde entiteitset wordt gebruikt om één-op-veel-relaties te maken. De URI voor de resulterende relatie wordt geretourneerd in de respons.

  • Aanvraag

    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"
    }
    
  • Respons

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: cc_WebAPI_ServiceURI/RelationshipDefinitions(420245fa-c77c-e511-80d2-00155d2a68d2)
    

Relaties bijwerken

Zoals beschreven in Entiteiten bijwerken kunt u relaties bijwerken met de methode HTTP PUT om de bestaande definitie te vervangen door wijzigingen die u wilt toepassen. U kunt afzonderlijke eigenschappen niet met de methode HTTP PATCH bewerken, zoals u dit wel kunt doen met zakelijke gegevensentiteiten. Net als met entiteiten en kenmerken moet u een MSCRM.MergeLabels-koptekst met de waarde true toevoegen om te voorkomen dat gelokaliseerde labels die niet in uw update zijn opgenomen, worden overschreven en u moet aanpassingen publiceren voordat ze actief zijn in het systeem.

Relaties verwijderen

Als u een relatie wilt verwijderen met de web-API, gebruikt u de methode HTTP DELETE met de URI voor de relatie.

Zie ook

Aanpassen metagegevens van entiteitsrelaties
De web-API gebruiken met Dynamics 365-metagegevens
Query's uitvoeren op metagegevens via de web-API
Metagegevens ophalen op naam of MetadataId
Entiteitsdefinities maken en bijwerken met behulp van de web-API

Microsoft Dynamics 365

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht