Datenexportservice

 

Veröffentlicht: Januar 2017

Gilt für: Dynamics 365 (online)

Der Datenexport ist ein Add-On-Service, der von der Microsoft Dynamics 365 (online)Lösung bereitgestellt wird und der die Möglichkeit gibt, Dynamics 365 (online) Daten auf einen Microsoft Azure SQL-Datenbankspeicher in einem kundeneigenen Microsoft Azure Abonnement zu replizieren. Die unterstützten Zielziele sind Microsoft Azure SQL Datenbank sowie Microsoft Azure SQL Server auf Microsoft Azure virtuellen Computern. Datenexport synchronisiert intelligent das gesamte Dynamics 365 Schema und die Daten und synchronisiert danach auf fortlaufender Basis, wenn Änderungen eintreten (Delta-Änderungen) im Microsoft Dynamics 365 (online).

Der Datenexportservice bietet eine Schnittstelle zum Verwalten der Konfiguration und der laufenden Verwaltung dieses Service auf Dynamics 365 (online). Weitere Informationen finden Sie unter TechNet. Exportieren von Daten. In diesem Thema werden die entsprechenden programmgesteuerte Benutzeroberfläche und die Probleme für diesen Service behandelt.

Voraussetzungen für die Verwendung des Datenexport-Service

Da dieser Service einen externen Zugriff auf die Microsoft Azures SQL Datenbank vom Dynamics 365 (online)erfordert, müssen einige Voraussetzungen erfüllt sein, bevor Sie erfolgreich auf den Service zugreifen können. Die folgenden Voraussetzungen werden im Detail aus Sicht eines Administrators erläutert im Abschnitt TechNet: Voraussetzungen für die Verwendung des Datenexport-Service-.

Der Dynamics 365 (online) - Dienst muss konfiguriert werden, damit:

Hinweis

Beachten Sie, dass programmgesteuerter Zugriff für diesen Service nicht die Installation der zugeordneten verwalteten Datenexportlösung erfordert.

Die SQL Azure Ziel Datenbank muss konfiguriert werden, damit:

  • Das Abonnement muss die Menge der Daten, die von Ihrer Dynamics 365-Instanz synchronisiert werden unterstützen.

  • Firewalleinstellungen muss den Zugriff von der IP-Adresse des Datenexportservice erlauben. Weitere Informationen: Eine Azure SQL Datenbankserverstufen-Firewallregel mithilfe vom Azure Portal konfigurieren l

  • Es wird empfohlen, die Option "Zugriff an Azure Services" aktiviert zu lassen.

  • Der Datenbankbenutzer, der in der Datenexportverbindungszeichenfolge definiert ist, muss die richtigen Berechtigungen verfügen, um auf der Zieldatenbank zu erstellen und zu ändern. Als Minimum schließen diese ein: CRTB, CRTY, CRVW, CRPRund ALUS. Weitere Informationen finden Sie unter Berechtigungen (Datenbank Engine).

  • Mindestens ein Benutzer muss Berechtigungen für das Schema haben. Im folgenden Skript wird ein neuer Benutzer erstellt.

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

Für online Lösungen und Services stellt Azure einen Key Vault Service bereit, um kryptografische Schlüssel, Kennwörter und andere Geheimnisse zu schützen. Um Vault Azure zu verwenden, muss dieser kundeneigene Service konfiguriert sein, damit die Berechtigung für "Dynamics 365-Datenexport-Service" gewährt wird, das verwendet wird, um die SQL Azure-Verbindungszeichenfolge sicher zu speichern. Um diese Konfiguration mit einem PowerShell-Skript ausführen, siehe TechNet: Einrichten von Azure Key Vault. Alternativ kann dieser Service über die REST-API verwaltet werden; sehen Sie dazuKey Vault Verwaltung.

Es ist ratsam, dass die Domäne https://discovery.crmreplication.azure.net/ der Liste der vertrauenswürdigen Websites in Ihrem Browser hinzugefügt und Popups für diesen Ort aktiviert werden.

Programmierung für den Datenexport-Service

Der Datenexport-Service trifft auf eine Rest-basierte API, die in zwei Gruppen unterteilt werden: eine Gruppe von Metadata Vorgänge, um Dynamics 365 Organisationsstrukturen, Beziehungen und Verbindungsinformationen zu erkunden und eine Gruppe für Profiles Vorgänge zum Konfigurieren und Verwalten der Datenenreplikation. Die API ist in den folgenden Swagger URLs definiert und dokumentiert:

Swagger-Endpunkt

Beschreibung

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

JSON-Definition der Datenexport-Service API zur Verwendung mit Entwicklertools und dynamische Prozesse

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

Die benutzerfreundliche Version dieser API als Entwicklerreferenz

API Kurzübersicht

Diese Schnittstellen werden für den Benutzer in den folgenden Tabellen zusammengefasst.

Metadaten-Vorgänge (https://discovery.crmreplication.azure.net/crm/exporter/metadata/)

Ressource

Methoden

Beschreibung

Organisationen

Yammer holen

Ruft Organisationsdetails für alle Organisationen ab, zu denen der aktuelle Benutzer gehört

Entdecken

Yammer holen

Abrufen von Organisationsdetails für die angegebene Organisation

Connector

Yammer holen

Abrufen von Verbindungsdetails für die angegebene Organisation

Entitäten

Yammer holen

Rufen Sie alle exportfähigen öffentlichen Stellen für die angegebene Organisation ab

Beziehungen

Yammer holen

Rufen Sie alle exportfähigen Beziehungen für die angegebene Organisation ab

hasorgacceptedprivacyterms

Yammer holen

Überprüfen Sie, ob die zugeordnete Organisation die Datenschutzbedingungen akzeptiert hat

acceptprivacyterms

Nachricht

Nehmen Sie die angegebene Organisation für den Datenzugriff an

Profilvorgänge ([Organization-URI]/crm/exporter/)

Ressource

Methoden

Beschreibung

Profile

EINTRAG, HOLEN

Rufen Sie die Profile für die angegebene Organisation ab, erstellen Sie ein neues Exportprofil

Profile/{ID}

ABRUFEN, FESTLEGEN, LÖSCHEN

Bestimmtes Profil abrufen, aktualisieren oder Löschen

Profile/{ID}/aktivieren

Nachricht

Aktivieren Sie ein Profil, das die Replikation beider zugeordneten Metadaten und Daten startet

profiles/{id}/activatemetadata

Nachricht

Aktivieren Sie nur Profile für Metadatenreplikation

profiles/{id}/activatedata

Nachricht

Aktivieren Sie nur Profile für Datenreplikation

profiles/{id}/deactivate

Nachricht

Ein Profil deaktivieren

profiles/{id}/test

Yammer holen

Führen Sie auf einem vorhandenen Profil Testvorgänge aus

Profile/überprüfen

Nachricht

Führen Sie Testvorgänge auf einer Profilbeschreibung aus, bevor Sie es erstellen

profiles/{id}/failures

Yammer holen

Hier finden Sie die Verbindungszeichenfolge für einen Blob, der Fehlerdetails für ein gegebenes Profil enthält

Zugriff erhalten

Da Dynamics 365 nur Systemadministratoren die Autorisierung besitzen, um Datenexportvorgänge auszuführen, können diese APIs die Anruferautorisierung durch die Nutzung von Azure Active Directory erzwingen Sicherheitstoken.AAD Der folgende Codeausschnitt wird zeigt das Generieren eines Tokens für eine Webanwendung, indem er der Name und das Kennwort des Administrators verwendet. Sie müssen AppId, crmAdminUser und crmAdminPassword durch die Werte ersetzen, die Ihrem Dienst entsprechen. Diese Methode kann für die Entwicklung und Tests verwendet werden, aber für die Produktion sollten sicherere Methoden wie Azure Key Vault genutzt werden.

//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;

Anweisungen wie AppId Sie ein erhalten finden Sie unter Autorisieren Sie den Zugriff auf Webanwendungen mithilfe von OAuths 2.0 und Azure Active Directorys. Weitere Informationen über die Azure Benutzersicherheit finden Sie unterAuthentifizierungsszenarien für Azure AD.

Fehlerbehandlung und Fehlerverarbeitung

Sobald ein Profil korrekt konfiguriert ist, ist die Synchronisierung normalerweise sehr zuverlässig. Wenn ein Datensatz nicht synchronisiert, gilt die folgende Fehlerverarbeitung:

  1. Nach dem konfigurierten Wiederholungsintervall wird ein weiterer Versuch den Datensatz zu synchronisieren gemacht. Dies wird für die konfigurierte maximale Anzahl von Wiederholungen versucht.

  2. Der Datensatz wird als verarbeitet gekennzeichnet.

  3. Ein entsprechender Fehlereintrag wird das Fehlerprotokoll geschrieben.

  4. Die nächste Datensatz wird verarbeitet.

Da der Datensatz als verarbeitet markiert ist, wird kein zukünftiger Versuch gemacht, den Datensatz zu synchronisieren bis der Wert oder das Schema geändert wird. (Beachten Sie, dass auch das Schreiben von identischen Werten in eine Entitätsinstanz als Änderung gilt.)

Die Einträge im Fehlerprotokoll sind schreibgeschützt. Zukünftige Erfolge oder Fehler während der Synchronisierung im gleichen Datensatz bedeuten führen nicht zur Ändern von alten Einträgen für diesen Datensatz. Beispielsweise bleibt ein Fehlereintrag im Fehlerprotokoll, selbst wenn der Datensatz erfolgreich während eines späteren Synchronisierungszyklus synchronisiert wurde.

Achtung

Diese Fehlerablauflogik kann sich in zukünftigen Versionen des Dienstes ändern.

Diese Fehlereinträge können über die Anforderung Rufen Sie die für gegebenes Fehlerdetails ein Profil ab abgerufen werden. Die Antwort gibt eine URI für einen Azure-Blob zurück, der Fehlerinformationen enthält. Jede Zeile umfasst die folgenden Felder durch Kommas getrennten Felder (Zeilenumbrüche aus Gründen der Übersichtlichkeit hinzugefügt):

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

Beispiel:

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'.

Siehe auch

Verwalten der Daten in Microsoft Dynamics 365
Daten importieren

Microsoft Dynamics 365

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright