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 |
---|---|
Bepaalt of de entiteit opgegeven de primaire entiteit (een) in een een-op-veel-relatie kan zijn. |
|
Bepaalt of de entiteit opgegeven de verwijzende entiteit (veel) in een een-op-veel-relatie kan zijn. |
|
Bepaalt of de entiteit deel kan nemen aan een veel-op-veelrelatie. |
|
Geeft de reeks entiteiten weer die aan een veel-op-veel-relatie kunnen deelnemen. |
|
Geeft de reeks entiteiten weer die geldig zijn als de primaire entiteit (een) voor de opgegeven entiteit in een een-op-veel-relatie. |
|
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