Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Alle Dynamics 365 Customer Engagement (on-premises)-poster har et entydigt id defineret som et GUID. Det er den primære nøgle for hvert objekt. Når du har brug for at integrere med et eksternt datalager, kan du muligvis føje en kolonne til de eksterne databasetabeller for at indeholde en reference til det entydige id i Customer Engagement. Dette giver dig mulighed for at have en lokal reference til at linke til kundeengagementposten. Nogle gange kan du dog ikke ændre den eksterne database. Med alternative nøgler kan du nu definere en attribut i et Customer Engagement-objekt, der svarer til et entydigt id (eller en entydig kombination af kolonner), der bruges af det eksterne datalager. Denne alternative nøgle kan bruges til entydigt at identificere en post i Customer Engagement i stedet for den primære nøgle. Du skal kunne definere, hvilke attributter der repræsenterer en entydig identitet for dine poster. Når du har identificeret de attributter, der er entydige for objektet, kan du deklarere dem som alternative nøgler via tilpasningsbrugergrænsefladen eller i koden. Dette emne indeholder oplysninger om, hvordan du definerer alternative nøgler i datamodellen.
Opret alternative nøgler
Du kan oprette alternative nøgler programmeringsmæssigt eller ved hjælp af tilpasningsværktøjerne. Du kan finde flere oplysninger om brug af tilpasningsværktøjer under Definer alternative nøgler for at referere til CRM-poster.
Hvis du vil definere alternative nøgler programmeringsmæssigt, skal du først oprette et objekt af typen EntityKeyMetadata (eller bruge EntityKeyMetadata EntityType , hvis du arbejder med web-API' en). Denne klasse indeholder nøgleattributterne. Når nøgleattributterne er angivet, kan du bruge CreateEntityKey til at oprette nøglerne til et objekt. Denne meddelelse bruger enhedsnavnet og EntityKeyMetadata -værdierne som input til at oprette nøglen.
Du skal være opmærksom på følgende begrænsninger, når du opretter alternative nøgler:
Gyldige attributtyper i nøgledefinitioner
Det er kun attributter af følgende typer, der kan medtages i alternative nøgledefinitioner:
Attributtype Vis navn DecimalAttributeMetadata Decimaltal IntegerAttributeMetadata Helt tal StringAttributeMetadata Tekst på enkelt linje DateTimeAttributeMetadata Dato og klokkeslæt LookupAttributeMetadata Søg PicklistAttributeMetadata Picklist
Notat
Attributterne DateTime, Lookup og Picklist er ikke tilgængelige for lokale versioner af Dynamics 365 Customer Engagement.
Attributter skal være gyldige til oprettelse og opdatering
Hver attribut, der bruges i en nøgle, skal understøtte både oprettelse og opdatering. Flere oplysninger: Gyldige handlinger på attributter
Der må ikke være anvendt sikkerhed på feltniveau for attributter
Attributter må ikke være logiske eller nedarvede
De mest logiske og nedarvede attributter konfigureres som skrivebeskyttede. Men mange af de attributter, der indeholder adresseoplysninger i objekter som Konto og Kontakt, er logiske og kan ikke bruges i en nøgle, selvom de kan skrives. Flere oplysninger: Logiske attributter
Gyldig nøglestørrelse
Når der oprettes en nøgle, validerer systemet, at nøglen kan understøttes af platformen, herunder at den samlede nøglestørrelse ikke overtræder SQL-baserede indeksbegrænsninger, f.eks. 900 byte pr. nøgle og 16 kolonner pr. nøgle. Hvis nøglestørrelsen ikke opfylder begrænsningerne, vises der en fejlmeddelelse.
Maksimalt antal alternative nøgledefinitioner for en enhed
Der kan maksimalt være fem alternative nøgledefinitioner for et objekt i en Customer Engagement-forekomst.
Specialtegn i nøgleværdi
Hvis dataene i et felt, der bruges i en alternativ nøgle, indeholder et af følgende tegn
/,,,<>,,*,,%,,&:fungerer hent og patch-handlinger\\ikke. Hvis du kun har brug for entydighed, fungerer denne fremgangsmåde, men hvis du har brug for at bruge disse nøgler som en del af dataintegrationen, er det bedst at oprette nøglen på felter, der ikke har data med disse tegn.
Hent og slet alternative nøgler
Hvis du har brug for at hente eller slette alternative nøgler, kan du bruge tilpasningsbrugergrænsefladen til at gøre dette uden at skrive kode. SDK'et indeholder dog følgende to meddelelser til programmatisk hentning og sletning af alternative nøgler.
| Klasse for meddelelsesanmodning | Description |
|---|---|
| RetrieveEntityKeyRequest | Henter den angivne alternative nøgle. |
| DeleteEntityKeyRequest | Sletter den angivne alternative nøgle. |
Hvis du vil hente alle nøgler for et objekt, skal du bruge den nye Keys egenskab for EntityMetadata (EntityMetadata EntityType eller EntityMetadata klasse). Den henter en matrix af nøgler for et objekt.
Overvåg oprettelse af indeks for alternative nøgler
Alternative nøgler bruger databaseindeks til at gennemtvinge entydighed og optimere opslagsydeevnen. Hvis der er mange eksisterende poster i en tabel, kan oprettelse af indeks være en langvarig proces. Du kan øge svartid for tilpasningsbrugergrænseflade og løsningsimport ved at oprette indekset som en baggrundsproces. Egenskaben EntityKeyMetadata.AsyncJob (EntityKeyMetadata EntityType eller EntityKeyMetadata) refererer til det asynkrone job, der udfører indeksoprettelsen. Egenskaben EntityKeyMetadata.EntityKeyIndexStatus angiver status for nøglen, efterhånden som indeksoprettelsesjobbet skrider frem. Status kan være en af følgende:
- Ventende
- I gang
- Aktiv
- Mislykket
Når der oprettes en alternativ nøgle ved hjælp af API'en, kan du, hvis oprettelsen af indekset mislykkes, foretage detailudledning i detaljer om årsagen til fejlen, rette problemerne og genaktivere nøgleanmodningen ReactivateEntityKey ved hjælp af handlingen (GenaktiverEntityKey-handling eller ReactivateEntityKeyRequest -meddelelse).
Hvis den alternative nøgle slettes, mens et indeksoprettelsesjob stadig venter eller er i gang, annulleres jobbet, og indekset slettes.
Se også
Brug af alternative nøgler
Brug ændringssporing til at synkronisere data med eksterne systemer
Bruge Upsert til at indsætte eller opdatere en post