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:
Sie müssen Dezember 2016 Update für Microsoft Dynamics 365 (online) oder eine neuere Instanz mit der Vorlage oder vollständigen Kopie der Daten haben. Weitere Informationen finden Sie unter Eine Instanz kopieren.
Die Entitäten, die exportiert wurden, werden mit Änderungsnachverfolgung aktiviert. Weitere Informationen finden Sie unter Synchronisieren von Daten mit externen Systemen mithilfe der Änderungsnachverfolgung.
Code wird im Rahmen eines Benutzers mit der Systemadministrator-Sicherheitsrolle ausgeführt.
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 |
Ruft Organisationsdetails für alle Organisationen ab, zu denen der aktuelle Benutzer gehört |
|
Entdecken |
Abrufen von Organisationsdetails für die angegebene Organisation |
|
Connector |
Abrufen von Verbindungsdetails für die angegebene Organisation |
|
Entitäten |
Rufen Sie alle exportfähigen öffentlichen Stellen für die angegebene Organisation ab |
|
Beziehungen |
Rufen Sie alle exportfähigen Beziehungen für die angegebene Organisation ab |
|
hasorgacceptedprivacyterms |
Überprüfen Sie, ob die zugeordnete Organisation die Datenschutzbedingungen akzeptiert hat |
|
acceptprivacyterms |
Nehmen Sie die angegebene Organisation für den Datenzugriff an |
Profilvorgänge ([Organization-URI]/crm/exporter/)
Ressource |
Methoden |
Beschreibung |
---|---|---|
Profile |
Rufen Sie die Profile für die angegebene Organisation ab, erstellen Sie ein neues Exportprofil |
|
Profile/{ID} |
Bestimmtes Profil abrufen, aktualisieren oder Löschen |
|
Profile/{ID}/aktivieren |
Aktivieren Sie ein Profil, das die Replikation beider zugeordneten Metadaten und Daten startet |
|
profiles/{id}/activatemetadata |
Aktivieren Sie nur Profile für Metadatenreplikation |
|
profiles/{id}/activatedata |
Aktivieren Sie nur Profile für Datenreplikation |
|
profiles/{id}/deactivate |
Ein Profil deaktivieren |
|
profiles/{id}/test |
Führen Sie auf einem vorhandenen Profil Testvorgänge aus |
|
Profile/überprüfen |
Führen Sie Testvorgänge auf einer Profilbeschreibung aus, bevor Sie es erstellen |
|
profiles/{id}/failures |
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:
Nach dem konfigurierten Wiederholungsintervall wird ein weiterer Versuch den Datensatz zu synchronisieren gemacht. Dies wird für die konfigurierte maximale Anzahl von Wiederholungen versucht.
Der Datensatz wird als verarbeitet gekennzeichnet.
Ein entsprechender Fehlereintrag wird das Fehlerprotokoll geschrieben.
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