Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie alternative Schlüssel mit Datenintegrationsszenarien, um Datenvorgänge auszuführen, wenn Sie den Primärschlüsselwert eines Dataverse-Datensatzes nicht kennen. Sie können alternative Schlüssel nur für Tabellen verwenden, in denen sie definiert sind. Die meisten Dataverse-Tabellen verfügen nicht über alternative Schlüssel, es sei denn, Sie passen sie so an, dass sie alternative Schlüssel enthalten.
Wenn Sie wissen möchten, wie Sie alternative Schlüssel für eine Tabelle definieren und identifizieren, lesen Sie die folgenden Artikel:
- Verwenden von Power Apps: Definieren von alternativen Schlüsseln zum Referenzieren von Zeilen
- Code verwenden: Arbeiten mit Alternativschlüsseln
Verwenden Sie entweder die Dataverse-Web-API oder das SDK für .NET, um mit alternativen Schlüsseln zu arbeiten.
Wenn Sie die Web-API verwenden, verweisen Sie mithilfe einer URL auf einen bestimmten Datensatz. Verwenden Sie dann die HTTP-Methoden POST, PATCH oder DELETE, um die Datenoperation auszuführen. Außerdem verwenden Sie URLs, um Werte für Einzelwert-Navigationseigenschaften mithilfe der @odata.bind Syntax oder als Parameter für Funktionen und Aktionen festzulegen.
Die folgende Tabelle enthält Beispiele, die zeigen, wie Sie mithilfe relativer URLs auf Datensätze verweisen:
| Situation | Beispiel |
|---|---|
| Mit einem Primärschlüssel |
/accounts(00000000-0000-0000-0000-000000000001) ODERaccounts(accountid=00000000-0000-0000-0000-000000000001)Siehe den folgenden Hinweis zu den Typen systemuser und team der Entitäten |
| Mit einem einzelnen Alternativschlüssel | /accounts(accountnumber='ABC123') |
| Mit mehrteiligen Alternativschlüsseln | /contacts(firstname='Joe',emailaddress1='abc@example.com') |
| Mit einem alternativen Schlüssel, der eine Suchspalte verwendet | /accounts(_primarycontactid_value=00000000-0000-0000-0000-000000000002)Wenn Sie einen alternativen Schlüssel für eine Nachschlagespalte definieren, müssen Sie den Namen der entsprechenden Nachschlageeigenschaft verwenden. Eine Verweiseigenschaft folgt der Namenskonvention _<name of single-valued navigation property>_value. |
Anmerkung
Da die Entitätstypen systemuser und team vom Entitätstyp principal erben, können Sie keinen benannten Primärschlüssel verwenden, um auf diese Entitäten zu verweisen. Die Primärschlüssel für diese beiden Entitäten sind ownerid, statt systemuserid oder teamid. Der principal-Entitätstyp unterstützt die GET-Vorgänge nicht. Weitere Informationen: EntityType-Vererbung
Ausnahmen beim Verwenden von Alternativschlüsseln mit der Web-API
Beachten Sie bei der Verwendung alternativer Schlüssel die folgenden Bedingungen und mögliche Ausnahmen:
Wenn Sie eine Spalte angeben, die nicht als eindeutiger Schlüssel definiert ist, tritt ein Fehler auf. Die Fehlermeldung ist:
The key in the request URI is not valid for resource 'Microsoft.Dynamics.CRM.<table logical name>'. Ensure that the names and number of key properties match the declared or alternate key properties for the resource 'Microsoft.Dynamics.CRM.<table logical name>'.Alternative Schlüsselwerte können einige Sonderzeichen nicht enthalten.
Alternative Schlüsselwerte mit den folgenden Zeichen
/,<,>,*,%,&,:,\\,?,+werden nicht unterstützt. Diese Sonderzeichen sind in einem URL-Pfadsegment reserviert oder strukturell signifikant. Dataverse gibt einen Fehler zurück, wenn Sie eineGETAnforderung mit diesen Werten innerhalb der Klammern der URL senden. Der Workaround besteht nicht darin, einen einzelnen Datensatz abzurufen, sondern die alternativen Schlüsselwerte mit$filterzu verwenden, um eine Sammlung abzurufen, die den Datensatz enthält, der mit den alternativen Schlüsselwerten übereinstimmt.Beispiel: Anstelle dieser Anforderung, die fehlschlägt:
GET [Organization URI]/api/data/v9.2/new_skts(new_name='M%26M')Verwenden Sie eine
$filterAbfrage:GET [Organization URI]/api/data/v9.2/new_skts?$filter=new_name eq 'M%26M'&$select=new_nameWenn Sie nur auf den Datensatz zugreifen müssen, können Sie die Daten aus dem ersten (und nur) übereinstimmenden Datensatz in der
valuezurückgegebenen Sammlung übernehmen. Wenn Sie eine andere Aktion ausführen müssen, z. B. das Aktualisieren oder Löschen des Datensatzes, können Sie diesen Ansatz verwenden, um die ID des übereinstimmenden Datensatzes abzurufen und dann auf den Datensatz zu verweisen, der konventionell den ID-Wert anstelle des Werts alternativer Schlüssel verwendet.Anmerkung
Parameteraliasen (
@param) funktionieren nicht mit alternativer Schlüsselsyntax. Die Verwendung eines Parameteralias in einem Schlüsseldrädikat gibt einen400Fehler auch für Werte ohne Sonderzeichen zurück. Verwenden Sie stattdessen$filter.
Weitere Informationen: Datensatz unter Verwendung eines alternativen Schlüssels abrufen
Siehe auch
Alternativschlüssel für eine Tabelle definieren
Synchronisieren von Daten mit externen Systemen mithilfe der Änderungsnachverfolgung
Einen Datensatz mit Upsert einfügen oder aktualisieren