Definieren von Alternativschlüsseln für eine Entität
Veröffentlicht: Januar 2017
Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Alle Microsoft Dynamics 365-Datensätze besitzen eindeutige Bezeichner, die als GUIDs definiert werden. Diese sind der Primärschlüssel für jede Entität. Wenn Sie mit einem externen Datenspeicher integrieren müssen, können Sie möglicherweise eine Spalte zu externen Datenbanktabellen hinzufügen, sodass ein Verweis zum eindeutigen Bezeichner in Dynamics 365 vorhanden ist. Dies ermöglicht einen lokalen Verweis für einen Link zu dem Dynamics 365-Datensatz. Manchmal können Sie jedoch die externe Datenbank nicht ändern. Mit Alternativschlüsseln können Sie jetzt ein Attribut in einer Dynamics 365-Entität definieren, um einem eindeutigen Bezeichner (oder einer eindeutigen Kombination von Spalten), der vom externen Datenspeicher verwendet wird, zu entsprechen. Sie können diesen Alternativschlüssel anstelle des Primärschlüssels verwenden, um einen Datensatz in Dynamics 365 eindeutig zu identifizieren. Sie müssen in der Lage sein, zu definieren, welche Attribute eine eindeutige Identität für Ihre Datensätze darstellen. Nachdem Sie die Attribute ermittelt haben, die für die Entität eindeutig sind, können sie als Alternativschlüssel über die Anpassungs-Benutzeroberfläche oder im Code deklariert werden. Dieses Thema enthält Informationen zum Festlegen von Alternativschlüsseln im Datenmodell.
In diesem Thema
Erstellen Sie Alternativschlüssel
Abrufen und Löschen von Alternativschlüsseln
Überwachen der Indexerstellung für Alternativschlüssel
Erstellen Sie Alternativschlüssel
Sie können Alternativschlüssel programmgesteuert erstellen oder mithilfe der Anpassungstools. Weitere Informationen zur Verwendung der Anpassungstools finden Sie unter Definieren von Alternativschlüsseln für den Verweis auf CRM-Datensätze.
Um Alternativschlüssel programmgesteuert zu definieren, müssen Sie zunächst ein Objekt des Typs EntityKeyMetadata erstellen. Diese Klasse enthält die Schlüsselattribute. Sobald die Schlüsselattribute festgelegt sind, können Sie die CreateEntityKeyRequest-Nachricht verwenden, um die Schlüssel für eine Entität erstellen. Diese Nachricht nimmt die gesamten EntityKeyMetadata-Werte entgegen und erstellt den Schlüssel.
Sie sollten folgende Einschränkungen berücksichtigen, wenn Alternativschlüssel erstellt werden:
Gültige Attribute in Schlüsseldefinitionen
Nur Attribute der folgenden Typen können in den Alternativschlüsseldefinitionen hinzugefügt werden:
Attributtyp
Anzeigename
DecimalAttributeMetadata
Dezimalzahl
IntegerAttributeMetadata
Ganze Zahl
StringAttributeMetadata
Einzelne Textzeile
Gültige Schlüsselgröße
Wenn ein Schlüssel erstellt wurde, überprüft das System, ob dieser Schlüssel von der Plattform unterstützt werden kann, u. a. auch, ob die Gesamtschlüsselgröße nicht gegen die SQL-basiert-Indexeinschränkungen verstößt, zum Beispiel 900 Bytes pro Schlüssel und 16 Spalten pro Schlüssel. Wenn die Schlüsselgröße die Einschränkungen nicht erfüllt, wird eine Fehlermeldung angezeigt.
Maximale Anzahl an Alternativschlüsseldefinitionen für eine Entität
Es gibt ein Maximum von 5 Alternativschlüsseldefinitionen für eine Entität in einer Dynamics 365-Instanz.
Abrufen und Löschen von Alternativschlüsseln
Wenn Sie Alternativschlüssel abrufen oder löschen müssen, können Sie die Anpassungs-Benutzeroberfläche dazu verwenden, dies ohne Code zu schreiben zu erledigen. Dennoch bietet das SDK die folgenden beiden Nachrichten, um Alternativschlüssel programmgesteuert abzurufen und zu löschen.
Meldungsanforderungsklasse |
Beschreibung |
---|---|
Ruft den angegebenen Alternativschlüssel ab. |
|
Löscht den angegebenen Alternativschlüssel. |
Um alle Schlüssel für eine Entität abzurufen, verwenden Sie die neue Keys-Eigenschaft der EntityMetadata-Klasse. Ruft ein Array von Schlüsseln für eine Entität ab.
Überwachen der Indexerstellung für Alternativschlüssel
Alternativschlüssel nutzen Datenbankindizes um eine Eindeutigkeit zu gewährleisten und die Suchenleistung und zu optimieren. Wenn es viele vorhandener Datensätze in einer Tabelle gibt, dann kann die Indexerstellung lange dauern. Sie können das Reaktionsvermögen der Anpassungs-Benutzeroberfläche und den Lösungsimporte optimieren, indem Sie die Indexerstellung als Hintergrundprozess ausführen. Die AsyncJob-Eigenschaft bezieht sich auf den asynchronen Auftrag, der die Indexerstellung vornimmt. Die Eigenschaft EntityKeyIndexStatus gibt den Status des Schlüssels als seinen Indexerstellungs-Auftragsstatus an. Der Status kann einer der folgenden sein:
Ausstehend
In Bearbeitung
Aktiv
Fehler
Wenn ein Alternativschlüssel mithilfe der API erstellt wird, können Sie, wenn bei der Indexerstellung ein Fehler auftritt, Details über die Ursache des Fehlers einsehen, die Probleme beheben und die Schlüsselanforderung erneut aktivieren mithilfe der ReactivateEntityKeyRequest-Meldung.
Wenn der Alternativschlüssel gelöscht wird, während ein Indexerstellungsauftrag noch ausstehend oder in Verarbeitung ist, wird der Auftrag abgebrochen und der Index gelöscht.
Siehe auch
Verwenden Sie einen Alternativschlüssel, um Datensätze zu erstellen
Synchronisieren von Daten mit externen Systemen mithilfe der Änderungsnachverfolgung
Einen Datensatz mit Upsert einfügen oder aktualisieren
Microsoft Dynamics 365
© 2017 Microsoft. Alle Rechte vorbehalten. Copyright