Delen via


Alternatieve sleutels voor een entiteit definiëren

 

Gepubliceerd: januari 2017

Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Alle Microsoft Dynamics 365-records hebben unieke identificaties die zijn gedefinieerd als GUID's. Deze vormen de primaire sleutel voor elke entiteit. Als u moet integreren met een extern gegevensarchief, bent u mogelijk in staat een kolom toe te voegen aan de externe databasetabellen zodat deze een verwijzing naar de unieke identificatie bevatten in Dynamics 365. Hierdoor kunt u over een lokale verwijzing beschikken die verwijst naar de Dynamics 365-record. Soms kunt u de externe database echter niet wijzigen. Met alternatieve sleutels kunt u nu een kenmerk in een Dynamics 365-entiteit definiëren dat correspondeert met een unieke id (of unieke combinatie van kolommen) die wordt gebruikt door het externe gegevensarchief. Deze alternatieve sleutel kan worden gebruikt om een record in Dynamics 365 uniek te identificeren, in plaats van de primaire sleutel. U moet in staat zijn te definiëren welke kenmerken een unieke identiteit voor uw records vertegenwoordigen. Nadat u de kenmerken hebt geïdentificeerd die uniek zijn voor de entiteit, kunt u deze declareren als alternatieve sleutels via de gebruikersinterface (UI) voor aanpassing of in de code. Dit onderwerp bevat informatie over het definiëren van alternatieve sleutels in het gegevensmodel.

In dit onderwerp

Alternatieve sleutels maken

Alternatieve sleutels ophalen en verwijderen

Het maken van indexen voor alternatieve sleutels controleren

Alternatieve sleutels maken

U kunt alternatieve sleutels via programmeren maken of met de aanpassingshulpmiddelen. Zie Alternatieve sleutels definiëren om te verwijzen naar CRM-records voor meer informatie over het gebruik van de hulpmiddelen voor aanpassing.

Als u alternatieve sleutels via programmeren wilt definiëren, moet u eerst ee object maken van het type EntityKeyMetadata. Deze klasse bevat de sleutelkenmerken. Nadat de sleutelkenmerken zijn ingesteld, kunt u het CreateEntityKeyRequest-bericht gebruiken om de sleutels voor een entiteit te maken. Dit bericht gebruikt de naam van de entiteit en EntityKeyMetadata-waarden als invoer voor het maken van de sleutel.

Wees u bewust van de volgende beperkingen bij het maken van alternatieve sleutels:

  • Geldige kenmerken in sleuteldefinities

    Alleen kenmerken van de volgende typen kunnen worden opgenomen in definities van alternatieve sleutels:

    Type kenmerk

    Weergavenaam

    DecimalAttributeMetadata

    Decimaal getal

    IntegerAttributeMetadata

    Geheel getal

    StringAttributeMetadata

    Eén tekstregel

  • Geldige sleutelgrootte

    Bij het maken van een sleutel valideert het systeem of de sleutel kan worden ondersteund door het platform, inclusief of de totale sleutelgrootte niet de beperkingen voor de Op SQL gebaseerd-index, zoals 900 bytes per sleutel en 16 kolommen per sleutel, overschrijdt. Als de sleutelgrootte niet aan de beperkingen voldoet, wordt een foutmelding weergegeven.

  • Maximale aantal alternatieve sleuteldefinities voor een entiteit

    Er kunnen maximaal 5 alternatieve sleuteldefinities zijn voor een entiteit in een exemplaar van Dynamics 365.

Alternatieve sleutels ophalen en verwijderen

Als u alternatieve sleutels moet ophalen of verwijderen, kunt u de aanpassings-UI gebruiken om dit te doen, zonder enige code te schrijven. Toch biedt de SDK de volgende twee berichten voor het via programmeren ophalen en verwijderen van alternatieve sleutels.

Berichtaanvraagklasse

Beschrijving

RetrieveEntityKeyRequest

Haalt de opgegeven alternatieve sleutel op.

DeleteEntityKeyRequest

Verwijdert de opgegeven alternatieve sleutel.

Als u alle sleutels voor een entiteit wilt ophalen, gebruikt u de nieuwe eigenschap Keys van de klasse EntityMetadata. Hiermee wordt een matrix van sleutels voor een entiteit opgehaald.

Het maken van indexen voor alternatieve sleutels controleren

Alternatieve sleutels gebruiken database-indexen om uniciteit af te dwingen en opzoekprestaties te optimaliseren. Als er veel bestaande records in een tabel zijn, kan het maken van de index een langdurig proces zijn. U kunt de reactiesnelheid van de aanpassings-UI en de importsnelheid voor de oplossing verhogen door het maken van de index als achtergrondproces uit te voeren. De eigenschap AsyncJob verwijst naar de asynchrone taak die het maken van de index uitvoert. De eigenschap EntityKeyIndexStatus geeft de status van de sleutel op tijdnes de uitvoering van de taak voor het maken van de index. De volgende statussen zijn mogelijk:

  • In behandeling

  • Wordt uitgevoerd

  • Actief

  • Mislukt

Als een alternatieve sleutel wordt gemaakt met de API kunt u, als het maken van de index mislukt, de details bekijken van de oorzaak van de mislukking, de problemen verhelpen en de sleutelaanvraag opnieuw activeren via het ReactivateEntityKeyRequest-bericht.

Als de alternatieve sleutel wordt verwijderd terwijl een taak voor het maken van de index nog uitstaat of in uitvoering is, wordt de taak geannuleerd en wordt de index verwijderd.

Zie ook

Een alternatieve sleutel gebruiken voor het maken van een record
Tracering gebruiken om gegevens te synchroniseren met externe systemen
Upsert gebruiken om een record in te voegen of bij te werken

Microsoft Dynamics 365

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht