Delen via


Aanvullende gegevensbewerkingen uitvoeren met behulp van het OData-eindpunt

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics CRM 2015

Naast basisgegevensbewerkingen, kunt u het REST eindpunt voor Microsoft Dynamics CRM 2015 en Microsoft Dynamics CRM Online 2015 Update gebruiken om speciale gegevensbewerkingen mee uit te voeren.

In dit onderwerp

Complexe types instellen op null

Diep invoegen gebruiken

Afzonderlijke eigenschappen bijwerken

Records koppelen en ontkoppelen

Complexe types instellen op null

Als u Complexe typen in Microsoft Dynamics CRM wilt instellen op null moet u elk primitief type erin nadrukkelijk instellen op null.

Om bijvoorbeeld een type EntityReference in te stellen op null, moet u de eigenschappen Id, LogicalName en Name instellen op null. Hetzelfde geldt voor OptionSetValue, Geld en BooleanManagedProperty.

Diep invoegen gebruiken

Diep invoegen is een techniek waarin u meerdere nieuwe gerelateerde records in dezelfde bewerkingen kunt maken.

Het volgende voorbeeld toont JavaScript code die jQuery gebruikt om een account en twee gerelateerde taken te definiëren. Zie jQuery gebruiken voor meer informatie. Wanneer de taken worden toegewezen aan de eigenschap Account_Tasks die verwante taken voorstelt, en wordt ingediend met behulp van een POST aanvraag naar de URI /AccountSet, worden het account en de twee verwante taken gemaakt in één bewerking:

var account = new Object();
account.Name = "Sample Account";

var task1 = new Object();
task1.Subject = "Sample Task 1";

var task2 = new Object();
task2.Subject = "Sample Task 2";

var tasks = new Array();
tasks.push(task1);
tasks.push(task2);

account.Account_Tasks = tasks;

var jsonAccount = window.JSON.stringify(account);

$.ajax({ type: "POST",
    contentType: "application/json; charset=utf-8",
    datatype: "json",
    url: ODataPath + "/AccountSet",
    data: jsonAccount,
    beforeSend: function (XMLHttpRequest) {
        //Specifying this header ensures that the results will be returned as JSON.
        XMLHttpRequest.setRequestHeader("Accept", "application/json");
    },
    success: function (data, textStatus, XmlHttpRequest) {},
    error: function (XMLHttpRequest, textStatus, errorThrown) {}
});

Diep invoegen werkt op beide kanten van een entiteitsrelatie. In het vorige voorbeeld werden nieuwe taken gemaakt in de context van een nieuw accountrecord. U kunt dit omkeren om een nieuwe accountrecord te maken in de context van het maken van een nieuwe verwante taak door een POST aanvraag in te dienen bij de URI /TaskSet.

Afzonderlijke eigenschappen bijwerken

U kunt afzonderlijke kenmerkwaarden voor een record bijwerken met een HTTP PUT aanvraag met behulp van een URI die een specifiek kenmerk aanspreekt en de nieuwe waarde in de tekst van de aanvraag plaatst.

/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/Name

Het gebruik van deze URI in een HTTP PUT aanvraag met een nieuwe naam voor de account in de hoofdtekst zal de waarde van alleen die eigenschap bijwerken.

Records koppelen en ontkoppelen

Er zijn twee manieren waarop u records kunt koppelen of ontkoppelen: door de gegevens in de entiteitreferentie-eigenschappen bij te werken alsof ze een andere type eigenschap waren, of via de URL van de koppelingresource.

Bij het koppelen of ontkoppelen van records op de veel-zijde van een N:1 entiteitsrelatie, gebruikt u de URI $links. Voor N:N en 1:N entiteitsrelaties gebruikt u de URI zonder $links.

Het volgende voorbeeld laat zien dat URI een URI retourneert voor verkoopkansrecords die zijn gekoppeld aan de accountrecord die in de URI is opgegeven:

/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/$links/opportunity_customer_accounts

Als u een bestaande verkoopkansrecord aan dit account wilt koppelen, moet u deze URI gebruiken in een HTTP POST aanvraag die de URI voor die verkoopkans in de tekst bevat.

Notitie

Wanneer een record wordt gekoppeld aan de veel-kant van een N:1 entiteitsrelatie, wordt elke bestaande waarde overschreven wanneer de referentie slechts één ondersteunt.

Op dezelfde manier moet u, om een verkoopkans te ontkoppelen, een HTTP DELETE aanvraag gebruiken die een verwijzing bevat naar een specifieke koppelingresource. Het volgende voorbeeld laat zien dat URI een bepaalde accountrecord vertegenwoordigt, dat is gekoppeld aan een ander account met behulp van de ParentAccountId entiteitreferentie-eigenschap:

/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/$links/Referencedaccount_parent_account(guid'b0e5a4a6-8996-df11-a7c2-00155dba380d')

Een HTTP DELETE aanvraag tegen deze URI verwijdert de koppeling.

Notitie

Bepaalde entiteitsrelaties zijn vereist. Er treedt een fout op als u gegevens voor een vereiste relatie wilt verwijderen.

Zie ook

Basisgegevensbewerkingen uitvoeren met behulp van het OData-eindpunt
Het OData-eindpunt gebruiken met webresources
Het OData-eindpunt gebruiken met Ajax- en JScript-webresources
Voorbeeld: records koppelen en ontkoppelen met het OData-eindpunt met JavaScript

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht