Udføre yderligere datahandlinger, der bruger OData-slutpunkt
Udgivet: november 2016
Gælder for: Dynamics CRM 2015
Udover grundlæggende datahandlinger kan du bruge REST-slutpunktet for Microsoft Dynamics CRM 2015 og opdatering til Microsoft Dynamics CRM Online 2015 til at udføre nogle mere specialiserede datahandlinger.
Dette emne indeholder
Angive komplekse typer til null
Bruge dyb indsætning
Opdatere individuelle egenskaber
Tilknytte og fjerne tilknytningen af poster
Angive komplekse typer til null
Hvis du vil angive Microsoft Dynamics CRM komplekse typer til null, skal du udtrykkeligt angive hver primitiv type inde i dem til null.
Hvis du f.eks. vil angive en EntityReference-type til null, skal du f.eks. angive egenskaberne Id, LogicalName og Name til null. Det samme gælder for OptionSetValue, Penge og BooleanManagedProperty.
Bruge dyb indsætning
Dyb indsætning er en teknik, hvor du kan oprette flere nye relaterede poster i den samme handling.
Følgende eksempel viser JavaScript-kode, der bruger jQuery til at definere et firma og to relaterede opgaver. Du kan finde flere oplysninger under Brug jQuery. Når opgaverne er tildelt Account_Tasks-egenskaben, der repræsenterer relaterede opgaver, og som sendes ved hjælp af en POST-anmodning til /AccountSet-URI, bliver firmaet og de to relaterede opgaver oprettet i en enkelt handling:
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) {}
});
Dyb indsætning virker fra begge sider af en objektrelation. Det foregående eksempel oprettede nye opgaver i konteksten af en ny firmapost. Du kan tilbageføre dette for at oprette en ny firmapost i forbindelse med oprettelsen af en ny relateret opgave ved at sende en POST-anmodning til /TaskSet-URI.
Opdatere individuelle egenskaber
Du kan opdatere enkelte attributværdier for en post ved hjælp af en HTTP PUT-anmodning via en URI, der behandler en bestemt attribut og overfører den nye værdi i brødteksten i anmodningen.
/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/Name
Ved hjælp af denne URI i en HTTP PUT-anmodning med et nyt navn til firmaet i brødteksten opdateres kun denne egenskabs værdi.
Tilknytte og fjerne tilknytningen af poster
Du kan tilknytte eller fjerne tilknytningen af poster på to måder: ved at opdatere dataene i objektreferenceegenskaberne, som om de var en anden type af egenskab, eller via URL-adressen på linkressourcen.
Ved tilknytning eller fjernelse af tilknytning af poster på mange-siden i en N: 1-objektrelation skal du bruge $links-URI. For N:N- og 1:N-objektrelationer skal du bruge URI uden $links.
Følgende eksempel viser, at URI'en returnerer en URI for de salgsmulighedsposter, der er tilknyttet den firmapost, der er angivet i URI'en:
/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/$links/opportunity_customer_accounts
Hvis du vil knytte en eksisterende salgsmulighedspost til dette firma, skal du bruge denne URI i en HTTP POST-anmodning, der indeholder URI'en for den pågældende salgsmulighed i brødteksten.
Bemærk
Når du knytter en post på mange-siden i en N:1-objektrelation, vil enhver eksisterende værdi blive overskrevet, når referencen kun understøtter en enkelt værdi.
På samme måde, hvis du vil fjerne tilknytningen af en salgsmulighed, skal du bruge en HTTP DELETE-anmodning, der indeholder en reference til en bestemt linkressource. Følgende eksempel viser, at URI'en repræsenterer en bestemt firmapost, der er knyttet til et andet firma ved hjælp af ParentAccountId-objektreferenceegenskaben:
/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/$links/Referencedaccount_parent_account(guid'b0e5a4a6-8996-df11-a7c2-00155dba380d')
En HTTP DELETE-anmodning til denne UR, fjerner tilknytningen.
Bemærk
Nogle objektrelationer er påkrævet. Du får en fejl, hvis du forsøger at slette data for en nødvendig relation.
Se også
Udfør grundlæggende datahandlinger, der bruger OData-slutpunkt
Brug OData-slutpunktet med webressourcer
Brug OData-slutpunktet med Ajax og JScript-webressourcer
Eksempel: Tilknyt og ophæv tilknytningen af poster ved hjælp af OData-slutpunktet med JavaScript
© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret