Definieren von Alternativschlüsseln für eine Entität

Alle Dynamics 365 Customer Engagement (on-premises)-Datensätze besitzen eindeutige Bezeichner, die als GUIDs definiert werden. Diese sind der Primärschlüssel für jede Entität. Wenn Sie eine Integration mit einem externen Data Store benötigen, können Sie den externen Datenbanktabellen möglicherweise eine Spalte hinzufügen, die einen Verweis auf den eindeutigen Bezeichner in Customer Engagement enthält. Dies lässt eine lokale Referenz zu, die mit dem Customer Engagement Datensatz verknüpft werden kann. Manchmal können Sie jedoch die externe Datenbank nicht ändern. Mit alternativen Schlüsseln können Sie jetzt ein Attribut in einer Customer Engagement Entität definieren, das einem eindeutigen Bezeichner (oder einer eindeutigen Kombination von Spalten) entspricht, der vom externen Data Store verwendet wird. Dieser alternative Schlüssel kann zur eindeutigen Identifizierung eines Datensatzes in Customer Engagement anstelle des Primärschlüssels verwendet werden. 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.

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 alternative Schlüssel programmatisch zu definieren, müssen Sie zunächst ein Objekt vom Typ EntityKeyMetadata erstellen (oder EntityKeyMetadata EntityType verwenden, wenn Sie mit Web-API arbeiten). Diese Klasse enthält die Schlüsselattribute. Sobald die Schlüsselattribute festgelegt sind, können Sie CreateEntityKey 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 Attributtypen 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
    DateTimeAttributeMetadata Datum/Uhrzeit
    LookupAttributeMetadata Nachschlagefeld
    PicklistAttributeMetadata Auswahlliste

Notiz

Die Attribute DateTime, Lookup und Picklist sind für lokale Versionen von Dynamics 365 Customer Engagement nicht verfügbar.

  • Attribute müssen zum Erstellen und Aktualisieren gültig sein

    Jedes Attribut, das in einem Schlüssel verwendet wird , muss sowohl Erstellung als auch Aktualisierung unterstützen. Weitere Informationen: Gültige Vorgänge in Attributen

  • Attribute düefen nicht mit einer Sicherheit auf Feldebeneversehen sein

  • Attribute dürfen nicht logisch oder vererbt sein

    Die meisten logischen und geerbten Attribute sind als schreibgeschützt konfiguriert. Viele der Attribute, die Adressinformationen in Entitäten wie Konto und Kontakt enthalten, sind jedoch logisch und können nicht in einem Schlüssel verwendet werden, obwohl sie beschreibbar sind. Weitere Informationen Logische Attribute

  • 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-basierten Indexeinschränkungen verstößt, zum Beispiel 900 Bytes pro Schlüssel und 16 Spalten pro Schlüssel. Wenn die Schlüsselgröße nicht die Einschränkungen erfüllt, wird eine Fehlermeldung angezeigt.

  • Maximale Anzahl an Alternativschlüsseldefinitionen für eine Entität

    Für eine Entität in einer Customer Engagement-Instanz kann es maximal 5 alternative Schlüsseldefinitionen geben.

  • Sonderzeichen im Schlüsselwert

    Wenn die Daten innerhalb eines Felds, das in einem Alternativschlüssel verwendet wird, eines der folgenden Zeichen /,<,>,*,%,&,:,\\ enthält, funktionieren Abruf- und Patchaktionen nicht. Wenn Sie nur Eindeutigkeit benötigen, reicht dieser Ansatz aus, wenn Sie jedoch diese Schlüssel im Rahmen der Datenintegration benötigen, sollten Sie den Schlüssel besser in Feldern ohne Daten mit diesen Zeichen erstellen.

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 von EntityMetadata (EntityMetadata EntityType oder Klasse EntityMetadata). 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 Eigenschaft EntityKeyMetadata.AsyncJob (EntityKeyMetadata EntityType oder EntityKeyMetadata) bezieht sich auf den asynchronen Auftrag, der die Indexerstellung vornimmt. Die Eigenschaft EntityKeyMetadata.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 alternativer Schlüssel mit Hilfe der API erstellt wird und die Indexerstellung fehlschlägt, können Sie die Ursache des Fehlers im Detail nachvollziehen, die Probleme beheben und die Schlüsselanforderung mit Hilfe der ReactivateEntityKey (ReactivateEntityKey Aktion oder der ReactivateEntityKeyRequest Nachricht) reaktivieren.

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 von Alternativschlüsseln
Synchronisieren von Daten mit externen Systemen mithilfe der Änderungsnachverfolgung
Einen Datensatz mit Upsert einfügen oder aktualisieren