Dataeksportservice

 

Udgivet: januar 2017

Gælder for: Dynamics 365 (online)

Dataeksport er et tilføjelsesprogram, som stilles til rådighed som en Microsoft Dynamics 365 (online)-løsning, der giver mulighed for at replikere Dynamics 365 (online)-data til et Microsoft Azure SQL Database-lager i et Microsoft Azure-abonnement, der ejes af kunden. De understøttede måldestinationer er Microsoft Azure SQL Database og Microsoft Azure SQL Server på Microsoft Azure virtuelle maskiner. Dataeksporten synkroniserer intelligent hele Dynamics 365-skemaet og -dataene først og synkroniserer derefter løbende, når der forekommer ændringer (deltaændringer), i Microsoft Dynamics 365 (online)-systemet.

Dataeksporttjenesten giver en grænseflade til styring af konfiguration og løbende administration af denne tjeneste fra Dynamics 365 (online). Du kan finde flere oplysninger i TechNet: Dataeksport. Dette emne beskriver det tilsvarende programmeringsmiljø og problemer for denne tjeneste.

Forudsætninger for at bruge tjenesten Dataeksport

Fordi denne tjeneste kræver adgang til en ekstern Microsoft Azure SQL-database fra Dynamics 365 (online), skal en række forudsætninger være opfyldt, før du kan få adgang til tjenesten. Følgende forudsætninger er forklaret mere detaljeret fra en administrators perspektiv i afsnittet TechNet: Forudsætninger for at bruge tjenesten Dataeksport.

Dynamics 365 (online)-tjenesten skal konfigureres så:

  • Du skal have December 2016 – opdatering til Microsoft Dynamics 365 (online) eller en senere forekomst med den oprindelige eller komplette datakopi. Du kan finde flere oplysninger på Kopiere en forekomst.

  • De enheder, der skal eksporteres, aktiveres ved hjælp af sporing af ændringer. Du kan finde flere oplysninger under Brug ændringssporing til at synkronisere data med eksterne systemer.

  • Koden køres i en kontekst, hvor brugeren har sikkerhedsrollen Systemadministrator.

Bemærk

Bemærk, at programmeringsmæssig adgang til denne tjeneste ikke kræver installation af den tilknyttede administrerede Dataeksport-løsning.

SQL Azure Database-destinationen skal være konfigureret, så:

  • Abonnementet skal understøtte mængden af data, der replikeres fra din Dynamics 365-forekomst.

  • Indstillinger for Firewall skal give adgang fra din dataeksporttjenestes IP-adresse. Du kan finde flere oplysninger i Konfigurere en firewallregel på SQL Azure Database-serverniveau ved hjælp af Azure Portal.

  • Det anbefales, at indstillingen "Tillad adgang til Azure Services" aktiveres.

  • Den databasebruger, der er angivet i forbindelsesstrengen for dataeksporten, skal have korrekte oprettelses- og ændringstilladelser i destinationsdatabasen. Disse omfatter som minimum: CRTB, CRTY, CRVW, CRPR og ALUS. Du kan finde flere oplysninger under Tilladelser (databaseprogram).

  • Mindst én bruger har omfattende rettigheder i skemaet. Følgende script opretter en ny bruger.

USE MASTER;
CREATE LOGIN NewUser WITH PASSWORD='newpassword';

USE DESTINATIONDATABASE;
CREATE USER NewUser FOR LOGIN NewUser
GRANT CREATE TABLE, CREATE TYPE, CREATE VIEW, CREATE PROCEDURE, ALTER ANY USER to NewUser
GRANT ALTER, REFERENCES, INSERT, DELETE, UPDATE, SELECT, EXECUTE ON SCHEMA::dbo TO NewUser

Ved onlineløsninger og -tjenester leverer Azure en Key Vault-tjeneste til at beskytte kryptografiske nøgler, adgangskoder og andre hemmeligheder. Hvis du vil bruge Azure Key Vault, skal denne kundeejede service konfigureres, så der gives tilladelse til "Dynamics 365 Dataeksportservice", der kan bruges til sikkert at gemme SQL Azure forbindelsesstrengen. Hvis du vil udføre denne konfiguration med et PowerShell-script, kan du gå til TechNet: Opsætning af Azure Key Vault. Alternativt kan denne tjeneste administreres gennem dens REST API. Se under Administration af Vault Key.

Det anbefales også at føje https://discovery.crmreplication.azure.net/ for domænet til listen over websteder, du har tillid til, i browseren, og at aktivere pop op-vinduer for dette websted.

Programmering for tjenesten Dataeksport

Tjenesten Dataeksport har en REST-baseret API, der er opdelt i to grupper: et sæt Metadata-handlinger til at udforske Dynamics 365-organisationsstruktur, -relationer og -forbindelsesoplysningerne samt et sæt Profiles-handlinger til konfiguration og administration af hver datareplikering. Denne API er fuldt defineret og beskrevet i følgende Swagger URL-adresser:

Swagger-slutpunkt

Beskrivelse

https://discovery.crmreplication.azure.net/swagger/docs/2016-01-01

JSON-definition af Dataeksport-tjenestens API til brug for udviklingsværktøjer og dynamiske processer

https://discovery.crmreplication.azure.net/swagger/ui/index#

Den brugervenlige version af denne API til reference for udviklere

API-oversigtsvejledning

Af hensyn til læseren er disse grænseflader sammenfattet i følgende tabeller.

Metadatahandlinger (https://discovery.crmreplication.azure.net/crm/exporter/metadata/)

Ressource

Metoder

Beskrivelse

organizations

GET

Få organisatoriske oplysninger om alle organisationer, som den aktuelle bruger tilhører

undersøg

GET

Få organisatoriske oplysninger om den angivne organisation

connector

GET

Få forbindelsesoplysninger om den angivne organisation

entities

GET

Hent alle eksporterbare offentlige objekter for den angivne organisation

relationships

GET

Hent alle eksporterbare relationer for den angivne organisation

hasorgacceptedprivacyterms

GET

Kontrollér, om den tilknyttede organisation har accepteret betingelserne for beskyttelse af personlige oplysninger

acceptprivacyterms

POST

Acceptér, at den angivne organisation får dataadgang

Profilhandlinger ([Organization-URI]/crm/exporter/)

Ressource

Metoder

Beskrivelse

profiles

GET, POST

Hent alle profiler for den angivne organisation, opret en ny eksportprofil

profiles/{id}

GET, PUT, DELETE

Hent, opdater, eller slet en bestemt profil

profiles/{id}/activate

POST

Aktiver en profil, som starter replikeringen af både de tilknyttede metadata og dataene

profiles/{id}/activatemetadata

POST

Aktivér kun profilen til metadatareplikering

profiles/{id}/activatedata

POST

Aktivér kun profilen til datareplikering

profiles/{id}/deactivate

POST

Deaktiver en profil

profiles/{id}/test

GET

Udfør testhandlinger på en eksisterende profil

profiles/validate

POST

Udfør testhandlinger på en beskrivelse af en profil, før den oprettes.

profiles/{id}/failures

GET

Hent forbindelsesstrengen til en BLOB, der indeholder oplysninger om fejl for en given profil

Få adgang

Da kun Dynamics 365-systemadministratorer er autoriserede til at udføre dataeksporthandlinger, gennemtvinge disse API'er godkendelse af kalderen ved hjælp af Azure Active Directory (AAD)-sikkerhedstokens. Følgende kodestykke viser, hvordan sådan et token genereres for et webprogram ved hjælp af administratorens navn og adgangskode. Du skal erstatte AppId, crmAdminUser og crmAdminPassword med værdier, der er relevante for din tjeneste. Denne fremgangsmåde kan bruges til udvikling og afprøvning, men til produktion skal der bruges en mere sikker måde, f.eks. anvendelse af Azure Key Vault.

//Reference Azure AD authentication Library (ADAL)  
using Microsoft.IdentityModel.Clients.ActiveDirectory;
   . . .
    string yourAppClientID = "[app-associated-GUID]";   //Your AAD-registered AppId 
    string crmAdminUser = "admin1@contoso.com";  //Your CRM administrator user name
    string crmAdminPassword = "Admin1Password";  //Your CRM administrator password; 
    //For interactive applications, there are overloads of AcquireTokenAsync() which prompt for password. 
    var authParam = AuthenticationParameters.CreateFromResourceUrlAsync(new 
        Uri("https://discovery.crmreplication.azure.net/crm/exporter/aad/challenge")).Result;
    AuthenticationContext authContext = new AuthenticationContext(authParam.Authority, false);
    string token = authContext.AcquireTokenAsync(authParam.Resource, yourAppClientID, 
        new UserCredential(crmAdminUser, crmAdminPassword)).Result.AccessToken;

For at få instruktioner i, hvordan du får et AppId, finder du under Give adgang til webprogrammer ved hjælp af OAuth 2.0 og Azure Active Directory. Du kan finde flere oplysninger om Azure-brugersikkerhed under Godkendelsesscenarier for Azure AD.

Fejlhåndtering og fejlbehandling

Når en profil er korrekt konfigureret, er synkroniseringsprocessen typisk yderst pålidelig. Men hvis en post ikke synkroniseres, anvendes følgende fejlbehandling:

  1. Når du har konfigureret intervallet mellem nye forsøg, gøres et nyt forsøg på at synkronisere posten. Dette gentages op til det konfigurerede maksimale antal forsøg.

  2. Posten er markeret som behandlet.

  3. En tilsvarende mislykket post skrives til fejlloggen.

  4. Den næste post behandles.

Da posten er markeret som behandlet, gøres ingen fremtidige forsøg på at synkronisere posten, indtil dens værdi eller skema ændres. (Bemærk, at skrivning af identiske værdier tilbage til en objektforekomst også markerer den som ændret).

Posterne i fejlloggen er skrivebeskyttet. Fremtidige gennemførte eller mislykkede forsøg under synkronisering af den samme post medfører ikke ændring af tidligere poster for denne post. En fejlpost forbliver i fejlloggen, efter at posten er blevet synkroniseret under kørsel af en senere synkroniseringscyklus.

Forsigtigt

Denne fejlbehandlingslogik kan blive ændret i kommende versioner af denne service.

Disse fejlposter kan hentes fra fejloplysningerne for en bestemt profil-anmodning. Svaret returnerer en URI til en Azure-blob, der indeholder fejloplysninger. Hver linje har følgende filer i kommeseparerede felter (linjeskift tilføjet for klarhedens skyld):

Entity: <entity-name>, 
RecordId: <”N/A” | guid>, 
NotificationTime: <datetime>, 
ChangeType: <sync-type>,
FailureReason: <description>

Eksempel:

Entity: lead, 
RecordId: N/A, NotificationTime: , ChangeType: Trigger Initial Export, FailureReason: There is already an object named 'hatest201_lead' in the database.
Entity: account, RecordId: b2a19cdd-88df-e311-b8e5-6c3be5a8b200, NotificationTime: 8/31/2016 6:50:38 PM, ChangeType: New, FailureReason: Invalid object name 'dbo.hatest201_account'.

Se også

Administrere dine data i Microsoft Dynamics 365
Importér data

Microsoft Dynamics 365

© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret