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

RetrieveEntityKeyRequest

Ruft den angegebenen Alternativschlüssel ab.

DeleteEntityKeyRequest

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