Freigeben über


Ausführen zusätzlicher Datenvorgänge mithilfe des OData-Endpunkts

 

Veröffentlicht: November 2016

Gilt für: Dynamics CRM 2015

Neben den grundlegenden Datenvorgängen können Sie den REST-Endpunkt für Microsoft Dynamics CRM 2015 und Microsoft Dynamics CRM Online 2015-Update verwenden, um speziellere Datenvorgänge auszuführen.

In diesem Thema

Komplexe Typen auf Null festlegen

Verwenden von tiefer Einfügung

Aktualisieren einzelner Eigenschaften

Datensätze zuordnen und ihre Zuordnung aufheben

Komplexe Typen auf Null festlegen

Wenn Sie Komplexe Microsoft Dynamics CRM-Typen auf Null festlegen, müssen Sie jeden einzelnen Typ darin explizit auf Null setzen.

Um beispielsweise einen EntityReference Typ auf Null festzulegen, müssen Sie Id die LogicalName und die Name Eigenschaften auf Null festlegen. Dasselbe gilt für OptionSetValue, Zahlung und BooleanManagedProperty.

Verwenden von tiefer Einfügung

Tiefe Einfügung ist eine Technik, um mehrere neue verknüpfte Datensätze in dem gleichen Vorgang zu erstellen.

Im folgenden Beispiel wird Code JavaScript gezeigt, der jQuery verwendet, um eine Firma und zwei verknüpfte Aufgaben zu definieren. Weitere Informationen finden Sie unter Verwenden von jQuery. Wenn die Aufgaben der Account_Tasks-Eigenschaft zugewiesen werden, die verwandte Aufgaben darstellt, und mithilfe einer POST-Anforderung an die /AccountSet-URI gesendet werden, werden die Firma und die zwei verknüpften Aufgaben in einem einzigen Vorgang erstellt:

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) {}
});

Tiefe Einfügung arbeitet von einer der beiden Seiten einer Entitätsbeziehung aus. Im vorigen Beispiel wurden neue Aufgaben im Kontext eines neuen Firmendatensatzes erstellt. Sie können dieses umkehren, um einen neuen Firmendatensatz im Kontext der Erstellung einer neuen verwandten Aufgabe zu erstellen, indem Sie eine Anforderung an die POST/TaskSet-URI senden.

Aktualisieren einzelner Eigenschaften

Sie können einzelne Attributwerte für einen Datensatz aktualisieren, indem Sie eine HTTPS-PUT-Anfrage verwenden, die eine URI verwendet, die ein bestimmtes Attribut adressiert und den neuen Wert im Textteil der Anforderung übergibt.

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

Durch Verwendung dieser URI in einer HTTP-PUT-Anforderung mit einem neuen Namen für die Firma in Textteil wird der Wert nur dieser Eigenschaft aktualisiert.

Datensätze zuordnen und ihre Zuordnung aufheben

Es stehen zwei Möglichkeiten zur Verfügung, Datensätze zuzuordnen und die Zuordnung aufzuheben: durch Aktualisieren der Daten in den Entitätsreferenzeigenschaften, als ob sie einen anderer Typ von Eigenschaft wären, oder über die URL der Linkressource.

Wenn Sie Datensätze auf der n-Seite einer n:1-Beziehung zuordnen oder ihre Zuordnung aufheben, verwenden Sie die $links-URI. Für n:n und 1:n-Entitätsbeziehungen verwenden Sie die URI ohne $links.

Das folgende Beispiel zeigt, dass die URI eine URI für alle Verkaufschancendatensätze zurückgegeben wird, die dem Firmendatensatz zugeordnet sind, der in der URI angegeben ist:

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

Wenn Sie einen vorhandenen Verkaufschancendatensatz dieser Firma zuordnen möchten, müssen Sie diese URI einer HTTP-POST-Anforderung verwenden, die die URI für diese Verkaufschance im Textteil enthält.

Hinweis

Wenn Sie einen Datensatz auf der n-Seite einer n:1-Entitätsbeziehung zuordnen, werden alle vorhandenen Werte überschrieben, wenn die Referenz einen Einzelwert unterstützt.

Entsprechend müssen Sie, um die Verknüpfung einer Verkaufschance aufzuheben, eine HTTP-DELETE-Anforderung verwenden, die einen Verweis auf eine bestimmte Linkressource enthält. Das folgende Beispiel zeigt, dass die URI einen bestimmten Firmendatensatz darstellt, der einer anderen Firma zugeordnet ist, indem die ParentAccountId-Entitätsreferenzeigenschaft verwendet wird:

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

Eine HTTP-DELETE-Anforderung anhand dieser URI entfernt diese Zuordnung.

Hinweis

Einige Entitätsbeziehungen sind erforderlich. Sie erhalten eine Fehlermeldung, wenn Sie versuchen, Daten für eine erforderliche Beziehung löschen.

Siehe auch

Ausführen grundlegender Datenvorgänge mithilfe des OData-Endpunkts
Verwenden des OData-Endpunkts mit Webressourcen
Verwenden des OData-Endpunkts mit Ajax- und JScript-Webressourcen
Beispiel: Zuordnen und Aufheben der Zuordnung von Datensätzen unter Verwendung des OData-Endpunkts mit JavaScript

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright