Kopieren und Transformieren von Daten in Dynamics 365 (Microsoft Dataverse) oder Dynamics CRM mithilfe von Azure Data Factory oder Azure Synapse Analytics

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Tipp

Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!

In diesem Artikel wird beschrieben, wie Sie eine Copy-Aktivität in Azure Data Factory- oder Synapse-Pipelines verwenden, um Daten aus und nach Dynamics 365 (Microsoft Dataverse) oder Dynamics CRM zu kopieren, und einen Datenfluss zum Transformieren von Daten in Dynamics 365 (Microsoft Dataverse) oder Dynamics CRM verwenden. Weitere Informationen finden Sie in den Einführungsartikeln zu Azure Data Factory und Azure Synapse Analytics.

Unterstützte Funktionen

Dieser Connector wird für die folgenden Aktivitäten unterstützt:

Unterstützte Funktionen IR
Kopieraktivität (Quelle/Senke) ① ②
Zuordnungsdatenfluss (Quelle/Senke)
Lookup-Aktivität ① ②

① Azure Integration Runtime ② Selbstgehostete Integration Runtime

Die Datenspeicher, die für eine Kopieraktivität als Quellen und Senken unterstützt werden, finden Sie in der Tabelle Unterstützte Datenspeicher und Formate.

Hinweis

Seit November 2020 wird Common Data Service als Microsoft Dataverse bezeichnet. Dieser Artikel wurde aktualisiert, um der aktuellen Terminologie zu entsprechen.

Dieser Dynamics-Connector unterstützt die Dynamics-Versionen 7 bis 9 sowohl online als auch lokal. Dies gilt insbesondere in folgenden Fällen:

  • Version 7 ist Dynamics CRM 2015 zugeordnet.
  • Version 8 ist Dynamics CRM 2016 und der frühen Version von Dynamics 365 zugeordnet.
  • Version 9 ist der neueren Version von Dynamics 365 zugeordnet.

In der folgenden Tabelle finden Sie Informationen zu den unterstützten Authentifizierungstypen und Konfigurationen für die jeweiligen Dynamics-Versionen und -Produkte.

Dynamics-Versionen Authentifizierungstypen Beispiele für verknüpfte Dienste
Dataverse

Dynamics 365 (online)

Dynamics CRM Online
Microsoft Entra-Dienstprinzipal

Office 365

Benutzerseitig zugewiesene verwaltete Identität
Dynamics Online- und Microsoft Entra-Dienstprinzipal oder Office 365-Authentifizierung
Lokale Dynamics 365-Instanz mit einer Bereitstellung mit Internetzugriff (Internet-Facing Deployment, IFD)

Dynamics CRM 2016 lokal mit IFD

Dynamics CRM 2015 lokal mit IFD
IFD Dynamics 365 und Dynamics CRM lokal mit IFD

Hinweis

Da die Unterstützung für den regionalen Ermittlungsdienst eingestellt wurde, wurde für den Dienst ein Upgrade durchgeführt, sodass bei Verwendung der Office 365-Authentifizierung der globale Ermittlungsdienst genutzt wird.

Wichtig

Wenn Ihr Mandant und der Benutzer in Microsoft Entra ID für den bedingten Zugriff konfiguriert sind und/oder eine mehrstufige Authentifizierung (Multi-Factor Authentication, MFA) erforderlich ist, können Sie nicht die Office 365-Authentifizierungsart verwenden. In diesen Situationen müssen Sie eine Microsoft Entra-Dienstprinzipalauthentifizierung verwenden.

Für Dynamics 365 werden insbesondere die folgenden Anwendungstypen unterstützt:

  • Dynamics 365 for Sales
  • Dynamics 365 for Customer Service
  • Dynamics 365 for Field Service
  • Dynamics 365 for Project Service Automation
  • Dynamics 365 for Marketing

Andere Anwendungstypen wie Dynamics 365 Finance, Dynamics 365 for Operations und Dynamics 365 Talent werden von diesem Connector nicht unterstützt.

Tipp

Mit dem Dynamics AX-Connector können Sie Daten aus Dynamics 365 Finance und Dynamics 365 for Operations kopieren.

Dieser Dynamics-Connector basiert auf Dynamics XRM-Tools.

Voraussetzungen

Wenn Sie sich mit diesem Connector bei einem Microsoft Entra-Dienstprinzipal authentifizieren möchten, müssen Sie die Server-zu-Server-Authentifizierung (S2S) in Dataverse oder Dynamics einrichten. Registrieren Sie zunächst den Anwendungsbenutzer (Dienstprinzipal) in Microsoft Entra ID. Eine Anleitung dazu finden Sie hier. Während der Anwendungsregistrierung müssen Sie diesen Benutzer in Dataverse oder Dynamics erstellen und Berechtigungen erteilen. Diese Berechtigungen können entweder direkt oder indirekt gewährt werden, indem der Anwendungsbenutzer einem Team hinzugefügt wird, dem Berechtigungen in Dataverse oder Dynamics erteilt wurden. Weitere Informationen zum Einrichten eines Anwendungsbenutzers für die Authentifizierung bei Dataverse finden Sie hier.

Erste Schritte

Sie können eines der folgenden Tools oder SDKs verwenden, um die Kopieraktivität mit einer Pipeline zu verwenden:

Erstellen eines verknüpften Diensts mit Dynamics 365 (Microsoft Dataverse) oder Dynamics CRM mithilfe der Benutzeroberfläche

Führen Sie die folgenden Schritte aus, um über die Benutzeroberfläche des Azure-Portals einen verknüpften Dienst für Dynamics 365 zu erstellen.

  1. Navigieren Sie in Ihrem Azure Data Factory- oder Synapse-Arbeitsbereich zur Registerkarte „Verwalten“, wählen Sie „Verknüpfte Dienste“ aus, und klicken Sie dann auf „Neu“:

  2. Suchen Sie nach Dynamics oder Dataverse, und wählen Sie den Dynamics 365-Connector (Microsoft Dataverse) oder Dynamics CRM-Connector aus.

    Screenshot of the Dynamics 365 connector.

    Screenshot of the Dataverse connector.

  3. Konfigurieren Sie die Dienstdetails, testen Sie die Verbindung, und erstellen Sie den neuen verknüpften Dienst.

    Screenshot of linked service configuration for Dynamics 365.

Details zur Connector-Konfiguration

Die folgenden Abschnitte enthalten Details zu den Eigenschaften, die zum Definieren von Entitäten speziell für Dynamics verwendet werden.

Eigenschaften des verknüpften Diensts

Die folgenden Eigenschaften werden für den mit Dynamics verknüpften Dienst unterstützt.

Dynamics 365 und Dynamics CRM Online

Eigenschaft Beschreibung Erforderlich
type Die type-Eigenschaft muss auf "Dynamics", "DynamicsCrm" oder "CommonDataServiceForApps" festgelegt werden. Ja
deploymentType Der Bereitstellungstyp der Dynamics-Instanz. Für die Onlineversion von Dynamics muss der Wert "Online" lauten. Ja
serviceUri Die Dienst-URL Ihrer Dynamics-Instanz, auf die Sie auch über den Browser zugreifen. Beispiel: „https://<organization-name>.crm[x].dynamics.com“. Ja
authenticationType Der Authentifizierungstyp für die Herstellung der Verbindung mit dem Dynamics-Server. Gültige Werte sind „AADServicePrincipal“, „Office365“ und „ManagedIdentity“. Ja
servicePrincipalId Die Client-ID der Microsoft Entra-Anwendung. Ja, wenn "AADServicePrincipal" für authenticationType festgelegt ist
servicePrincipalCredentialType Die Art von Anmeldeinformationen, die für die Authentifizierung beim Dienstprinzipal verwendet werden. Gültige Werte sind "ServicePrincipalKey" und "ServicePrincipalCert".

Hinweis: Es wird empfohlen, ServicePrincipalKey zu verwenden. Es gibt eine bekannte Einschränkung für den ServicePrincipalCert-Anmeldeinformationstyp, bei dem der Dienst möglicherweise vorübergehende Probleme mit dem Abrufen eines geheimen Schlüsselschlüssels aus dem Schlüsseltresor auftreten kann.
Ja, wenn "AADServicePrincipal" für authenticationType festgelegt ist
servicePrincipalCredential Die Anmeldeinformationen für den Dienstprinzipal.

Wenn Sie "ServicePrincipalKey" als Anmeldeinformationstyp verwenden, kann servicePrincipalCredential eine Zeichenfolge sein, die der Dienst bei der Bereitstellung eines verknüpften Diensts verschlüsselt. Alternativ kann es sich um einen Verweis auf ein Geheimnis in Azure Key Vault handeln.

Wenn Sie ServicePrincipalCert als Anmeldeinformationen verwenden, servicePrincipalCredentialverweisen Sie auf ein Zertifikat in Azure Key Vault und stellen Sie sicher, dass der Zertifikatsinhaltstyp PKCS #12 lautet.
Ja, wenn "AADServicePrincipal" für authenticationType festgelegt ist
username Der Benutzername, mit dem die Verbindung zu Dynamics hergestellt wird Ja, wenn "Office365" für authenticationType festgelegt ist
password Das Kennwort für das Benutzerkonto, das Sie für „username“ angegeben haben. Markieren Sie dieses Feld mit "SecureString", um es sicher zu speichern, oder verweisen Sie auf ein in Azure Key Vault gespeichertes Geheimnis. Ja, wenn "Office365" für authenticationType festgelegt ist
Anmeldeinformationen Geben Sie die benutzerseitig zugewiesene verwaltete Identität als Anmeldeinformationsobjekt an.

Erstellen Sie eine oder mehrere benutzerseitig zugewiesene verwaltete Identitäten, weisen Sie sie Ihrer Data Factory zu, und erstellen Sie Anmeldeinformationen für jede dieser Identitäten.
Ja, wenn die Authentifizierung „ManagedIdentity“ lautet
connectVia Die Integration Runtime, die zum Herstellen einer Verbindung mit dem Datenspeicher verwendet werden soll. Ohne Angabe eines Wertes verwendet diese Eigenschaft automatisch Azure Integration Runtime. Nein

Hinweis

Der Dynamics-Connector hat zum Identifizieren Ihrer Dynamics CRM- oder Dynamics 365-Onlineinstanz früher die optionale Eigenschaft organizationName verwendet. Diese Eigenschaft funktioniert zwar immer noch, es wird jedoch empfohlen, stattdessen die neue Eigenschaft serviceUri anzugeben, um eine bessere Leistung bei der Instanzermittlung zu erzielen.

Beispiel: Onlineversion von Dynamics unter Verwendung des Microsoft Entra-Dienstprinzipals und der Schlüsselauthentifizierung

{  
    "name": "DynamicsLinkedService",  
    "properties": {  
        "type": "Dynamics",  
        "typeProperties": {  
            "deploymentType": "Online",  
            "serviceUri": "https://<organization-name>.crm[x].dynamics.com",  
            "authenticationType": "AADServicePrincipal",  
            "servicePrincipalId": "<service principal id>",  
            "servicePrincipalCredentialType": "ServicePrincipalKey",  
            "servicePrincipalCredential": "<service principal key>"
        },  
        "connectVia": {  
            "referenceName": "<name of Integration Runtime>",  
            "type": "IntegrationRuntimeReference"  
        }  
    }  
}  

Beispiel: Onlineversion von Dynamics unter Verwendung des Microsoft Entra-Dienstprinzipals und der Zertifikatsauthentifizierung

{ 
    "name": "DynamicsLinkedService", 
    "properties": { 
        "type": "Dynamics", 
        "typeProperties": { 
            "deploymentType": "Online", 
            "serviceUri": "https://<organization-name>.crm[x].dynamics.com", 
            "authenticationType": "AADServicePrincipal", 
            "servicePrincipalId": "<service principal id>", 
            "servicePrincipalCredentialType": "ServicePrincipalCert", 
            "servicePrincipalCredential": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<AKV reference>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<certificate name in AKV>" 
            } 
        }, 
        "connectVia": { 
            "referenceName": "<name of Integration Runtime>", 
            "type": "IntegrationRuntimeReference" 
        } 
    } 
} 

Beispiel: Onlineversion von Dynamics mit Office 365-Authentifizierung

{
    "name": "DynamicsLinkedService",
    "properties": {
        "type": "Dynamics",
        "typeProperties": {
            "deploymentType": "Online",
            "serviceUri": "https://<organization-name>.crm[x].dynamics.com",
            "authenticationType": "Office365",
            "username": "test@contoso.onmicrosoft.com",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Beispiel: Onlineversion von Dynamics unter Verwendung der Authentifizierung mit benutzerseitig zugewiesener verwalteter Identität

{
    "name": "DynamicsLinkedService",
    "properties": {
        "type": "Dynamics",
        "typeProperties": {
            "deploymentType": "Online",
            "serviceUri": "https://<organization-name>.crm[x].dynamics.com",
            "authenticationType": "ManagedIdentity",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Dynamics 365 und Dynamics CRM lokal mit IFD

Die zusätzlichen Eigenschaften im Vergleich zur Onlineversion von Dynamics lauten hostName und port.

Eigenschaft Beschreibung Erforderlich
type Die type-Eigenschaft muss auf "Dynamics", "DynamicsCrm" oder "CommonDataServiceForApps" festgelegt werden. Ja.
deploymentType Der Bereitstellungstyp der Dynamics-Instanz. Der Wert muss für die lokale Dynamics-Bereitstellung mit IFD "OnPremisesWithIfd" lauten. Ja.
hostName Der Hostname des lokalen Dynamics-Servers. Ja.
port Der Port des lokalen Dynamics-Servers. Nein. Der Standardwert ist 443.
organizationName Der Organisationsname der Dynamics-Instanz. Ja.
authenticationType Der Authentifizierungstyp für die Herstellung der Verbindung mit dem Dynamics-Server. Geben Sie für eine lokale Dynamics-Bereitstellung mit IFD "Ifd" an. Ja.
username Der Benutzername, mit dem die Verbindung zu Dynamics hergestellt wird. Ja.
password Das Kennwort für das Benutzerkonto, das Sie bei „username“ angegeben haben. Sie können dieses Feld mit "SecureString" markieren, um es sicher zu speichern. Alternativ können Sie das Kennwort auch in Azure Key Vault speichern und es über die Kopieraktivität pullen lassen, wenn die Daten kopiert werden. Weitere Informationen finden Sie unter Speichern von Anmeldeinformationen in Key Vault. Ja.
connectVia Die Integration Runtime, die zum Herstellen einer Verbindung mit dem Datenspeicher verwendet werden soll. Ohne Angabe eines Wertes verwendet diese Eigenschaft automatisch Azure Integration Runtime. Nein

Beispiel: Dynamics (lokal) mit IFD und IFD-Authentifizierung

{
    "name": "DynamicsLinkedService",
    "properties": {
        "type": "Dynamics",
        "description": "Dynamics on-premises with IFD linked service using IFD authentication",
        "typeProperties": {
            "deploymentType": "OnPremisesWithIFD",
            "hostName": "contosodynamicsserver.contoso.com",
            "port": 443,
            "organizationName": "admsDynamicsTest",
            "authenticationType": "Ifd",
            "username": "test@contoso.onmicrosoft.com",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Dataset-Eigenschaften

Eine vollständige Liste mit den Abschnitten und Eigenschaften, die zum Definieren von Datasets zur Verfügung stehen, finden Sie im Artikel zu Datasets. Dieser Abschnitt enthält eine Liste der Eigenschaften, die vom Dynamics-Dataset unterstützt werden.

Beim Kopieren von Daten aus und nach Dynamics werden die folgenden Eigenschaften unterstützt:

Eigenschaft Beschreibung Erforderlich
type Die type-Eigenschaft des Datasets muss auf "DynamicsEntity", "DynamicsCrmEntity" oder "CommonDataServiceForAppsEntity" festgelegt werden. Ja
entityName Der logische Name der abzurufenden Entität. Nein für die Quelle, wenn für die Aktivitätsquelle "query" angegeben ist. Ja für die Senke.

Beispiel

{
    "name": "DynamicsDataset",
    "properties": {
        "type": "DynamicsEntity",
        "schema": [],
        "typeProperties": {
            "entityName": "account"
        },
        "linkedServiceName": {
            "referenceName": "<Dynamics linked service name>",
            "type": "linkedservicereference"
        }
    }
}

Eigenschaften der Kopieraktivität

Eine vollständige Liste mit den Abschnitten und Eigenschaften zum Definieren von Aktivitäten finden Sie im Artikel Pipelines. Dieser Abschnitt enthält eine Liste der Eigenschaften, die von den Quell- und Senkentypen für Dynamics unterstützt werden.

Dynamics als Quelltyp

Beim Kopieren von Daten aus Dynamics werden die folgenden Eigenschaften im Abschnitt source der Kopieraktivität unterstützt:

Eigenschaft Beschreibung Erforderlich
type Die type-Eigenschaft der Quelle der Kopieraktivität muss auf "DynamicsSource", "DynamicsCrmSource" oder "CommonDataServiceForAppsSource" festgelegt werden. Ja
Abfrage FetchXML ist eine proprietäre Abfragesprache, die in Dynamics (online und lokal) verwendet wird. Siehe folgendes Beispiel. Weitere Informationen finden Sie unter Erstellen von Abfragen mit FetchXML. Nein, wenn entityName im Dataset angegeben ist

Hinweis

Die PK-Spalte wird immer herauskopiert. Dies gilt auch, wenn sie nicht in der Spaltenprojektion enthalten ist, die Sie in der FetchXML-Abfrage konfigurieren.

Wichtig

  • Wenn Sie Daten aus Dynamics kopieren, ist die explizite Spaltenzuordnung aus Dynamics zur Senke optional. Es wird jedoch dringend zu der Zuordnung geraten, um ein deterministisches Kopierergebnis sicherzustellen.
  • Wenn der Dienst ein Schema in die Erstellungsbenutzeroberfläche importiert, wird auf das Schema rückgeschlossen. Dies erfolgt, in dem die obersten Zeilen aus dem Ergebnis der Dynamics-Abfrage gesamplet werden, um die Liste der Quellspalten zu initialisieren. In diesem Fall werden Spalten ohne Werte in den obersten Reihen ausgelassen. Dasselbe Verhalten gilt für Kopiervorgänge, wenn keine explizite Zuordnung vorliegt. Sie können Spalten überprüfen und weitere zur Zuordnung hinzufügen. Diese Spalten werden auch während der Laufzeit des Kopiervorgangs berücksichtigt.

Beispiel

"activities":[
    {
        "name": "CopyFromDynamics",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Dynamics input dataset>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DynamicsSource",
                "query": "<FetchXML Query>"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

FetchXML-Beispielabfrage

<fetch>
  <entity name="account">
    <attribute name="accountid" />
    <attribute name="name" />
    <attribute name="marketingonly" />
    <attribute name="modifiedon" />
    <order attribute="modifiedon" descending="false" />
    <filter type="and">
      <condition attribute ="modifiedon" operator="between">
        <value>2017-03-10 18:40:00z</value>
        <value>2017-03-12 20:40:00z</value>
      </condition>
    </filter>
  </entity>
</fetch>

Dynamics als Senkentyp

Beim Kopieren von Daten nach Dynamics werden die folgenden Eigenschaften im Abschnitt sink der Kopieraktivität unterstützt:

Eigenschaft Beschreibung Erforderlich
type Die type-Eigenschaft der Senke der Kopieraktivität muss auf "DynamicsSink", "DynamicsCrmSink" oder "CommonDataServiceForAppsSink" festgelegt werden. Ja.
writeBehavior Das Schreibverhalten des Vorgangs. Der Wert muss "Upsert" lauten. Ja
alternateKeyName Der alternative Schlüsselname, der zum Ausführen eines upsert-Vorgangs für Ihre Entität definiert wurde Nein.
writeBatchSize Die Zeilenanzahl der Daten, die in jedem Batch in Dynamics geschrieben werden. Nein. Der Standardwert ist 10.
ignoreNullValues Gibt an, ob NULL-Werte aus anderen Eingabedaten als Schlüsselfeldern während eines Schreibvorgangs ignoriert werden sollen.

Gültige Werte sind TRUE und FALSE.
  • TRUE: Daten im Zielobjekt bleiben unverändert, wenn Sie einen upsert- oder update-Vorgang ausführen. Fügt beim Ausführen eines insert-Vorgangs einen definierten Standardwert ein.
  • FALSE: Aktualisieren Sie die Daten im Zielobjekt auf einen NULL-Wert, wenn Sie einen upsert- oder update-Vorgang ausführen. Fügen Sie beim Ausführen eines insert-Vorgangs einen NULL-Wert ein.
Nein. Der Standardwert ist FALSE.
maxConcurrentConnections Die Obergrenze gleichzeitiger Verbindungen mit dem Datenspeicher während der Aktivitätsausführung. Geben Sie diesen Wert nur an, wenn Sie die Anzahl der gleichzeitigen Verbindungen begrenzen möchten. Nein

Hinweis

Sowohl für die Senke writeBatchSize als auch für die Kopieraktivität parallelCopies für die Dynamics-Senke lautet der Standardwert 10. Daher werden standardmäßig 100 Datensätze gleichzeitig an Dynamics übermittelt.

Für Dynamics 365 (online) besteht ein Limit von 52 gleichzeitigen Batchaufrufen pro Organisation. Bei Überschreitung dieses Grenzwerts wird eine Ausnahme aufgrund von Serverauslastung ausgelöst, bevor die erste Anforderung jemals ausgeführt wird. Sorgen Sie dafür, dass writeBatchSize den Wert 10 nicht überschreitet, um eine solche Einschränkung gleichzeitiger Aufrufe zu vermeiden.

Die optimale Kombination von writeBatchSize und parallelCopies hängt vom Schema Ihrer Entität ab. Schemaelemente enthalten die Anzahl von Spalten, die Zeilengröße und die Anzahl der Plug-Ins, Workflows oder Workflowaktivitäten, die an diese Aufrufe gekoppelt sind. Die Standardeinstellung writeBatchSize (10) x parallelCopies (10) wird für den Dynamics-Dienst empfohlen. Dieser Wert funktioniert für die meisten Dynamics-Entitäten, obwohl er unter Umständen nicht die beste Leistung erzielt. Sie können die Leistung optimieren, indem Sie die Kombination in Ihren Kopieraktivitätseinstellungen anpassen.

Beispiel

"activities":[
    {
        "name": "CopyToDynamics",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Dynamics output dataset>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "DynamicsSink",
                "writeBehavior": "Upsert",
                "writeBatchSize": 10,
                "ignoreNullValues": true
            }
        }
    }
]

Abrufen von Daten aus Sichten

Wenn Sie Daten aus Dynamics-Sichten abrufen möchten, müssen Sie die gespeicherte Abfrage der Sicht abrufen und dann die Daten mithilfe der Abfrage abrufen.

Es gibt zwei Entitäten, in denen verschiedene Sichttypen gespeichert werden: „gespeicherte Abfrage“ speichert die Systemsicht, und „Benutzerabfrage“ speichert die Benutzersicht. Informationen zu den Sichten finden Sie in der folgenden FetchXML-Abfrage. Ersetzen Sie darin „TARGETENTITY“ durch savedquery oder userquery. Jeder Entitätstyp hat mehrere Attribute, die Sie der Abfrage nach Bedarf hinzufügen können. Weitere Informationen dazu finden Sie unter „savedquery“-Entität und „userquery“-Entität.

<fetch top="5000" >
  <entity name="<TARGETENTITY>">
    <attribute name="name" />
    <attribute name="fetchxml" />
    <attribute name="returnedtypecode" />
    <attribute name="querytype" />
  </entity>
</fetch>

Sie können auch Filter hinzufügen, um die Sichten zu filtern. Fügen Sie beispielsweise den folgenden Filter hinzu, um die Sicht „Meine aktiven Konten“ in der Kontoentität zu erhalten.

<filter type="and" >
    <condition attribute="returnedtypecode" operator="eq" value="1" />
    <condition attribute="name" operator="eq" value="My Active Accounts" />
</filter>

Datentypzuordnung für Dynamics

In der folgenden Tabelle finden Sie die Zuordnungen von Dynamics-Datentypen zu Zwischendatentypen im Dienst, die beim Kopieren von Daten aus Dynamics verwendet werden. Im Artikel Schema- und Datentypzuordnungen in der Kopieraktivität erfahren Sie, wie eine Kopieraktivität einem Quellschema und ein Datentyp einer Senke zugeordnet wird.

Konfigurieren Sie anhand der folgenden Zuordnungstabelle den entsprechenden Zwischendatentyp in einer Datasetstruktur, die auf Ihrem Dynamics-Quelldatentyp basiert:

Dynamics-Datentyp Zwischendatentyp des Diensts Als Quelle unterstützt Als Senke unterstützt
AttributeTypeCode.BigInt Long
AttributeTypeCode.Boolean Boolean
AttributeType.Customer GUID ✓ (weitere Informationen)
AttributeType.DateTime Datetime
AttributeType.Decimal Decimal
AttributeType.Double Double
AttributeType.EntityName String
AttributeType.Integer Int32
AttributeType.Lookup GUID ✓ (weitere Informationen)
AttributeType.ManagedProperty Boolean
AttributeType.Memo String
AttributeType.Money Decimal
AttributeType.Owner GUID ✓ (weitere Informationen)
AttributeType.Picklist Int32
AttributeType.Uniqueidentifier GUID
AttributeType.String String
AttributeType.State Int32
AttributeType.Status Int32

Hinweis

Die Dynamics-Datentypen AttributeType.CalendarRules, AttributeType.MultiSelectPicklist und AttributeType.PartyList werden nicht unterstützt.

Schreiben von Daten in ein Nachschlagefeld

Wenn Sie Daten in ein Nachschlagefeld mit mehreren Zielen wie „Kunde“ und „Besitzer“ schreiben möchten, halten Sie sich an die folgende Anleitung und das entsprechende Beispiel:

  1. Stellen Sie sicher, dass Ihre Quelle beide Feldwerte und den Namen der Zielentität enthält.

    • Wenn alle Datensätze der gleichen Zielentität zugeordnet werden, stellen Sie sicher, dass eine der folgenden Bedingungen zutrifft:
      • Ihre Quelldaten verfügen über eine Spalte, in der der Name der Zielentität gespeichert ist.
      • Sie haben der Quelle der Kopieraktivität eine zusätzliche Spalte hinzugefügt, um die Zielentität zu definieren.
    • Wenn unterschiedliche Datensätze verschiedenen Zielentitäten zugeordnet werden, müssen Sie sich vergewissern, dass Ihre Quelldaten über eine Spalte verfügen, in der der Name der entsprechenden Zielentität gespeichert ist.
  2. Ordnen Sie die Quellspalte mit den Werten und die mit den Entitätsverweisen der Senke zu. Die Spalte mit den Entitätsverweisen muss einer virtuellen Spalte mit dem besonderen Benennungsmuster {lookup_field_name}@EntityReference zugeordnet werden. Die Spalte gibt es in Dynamics in der Tat gar nicht. Mit ihr wird angegeben, dass es sich bei dieser Spalte um die Metadatenspalte eines bestimmten Nachschlagefelds mit mehreren Zielen handelt.

Angenommen, die Quelle verfügt über die folgenden beiden Spalten:

  • Die Spalte CustomerField weist den Typ GUID auf, wobei es sich um den Wert des Primärschlüssels der Zielentität in Dynamics handelt.
  • Die Spalte Target weist den Typ String (Zeichenfolge) auf, wobei es sich um den logischen Namen der Zielentität handelt.

Sie möchten nun solche Daten für die Senke in das Dynamics-Entitätsfeld CustomerField vom Typ Customer kopieren.

Ordnen Sie die beiden Spalten in der Spaltenzuordnung für die Kopieraktivität wie folgt zu:

  • CustomerField zu CustomerField. Bei dieser Zuordnung handelt es sich um die normale Feldzuordnung.
  • Target zu CustomerField@EntityReference. Die Senkenspalte ist virtuell und stellt den Entitätsverweis dar. Sie müssen solche Feldnamen in einer Zuordnung eingeben, da diese nach einem Schemaimport nicht angezeigt werden.

Dynamics lookup-field column mapping

Wenn alle Ihre Quelldatensätze derselben Zielentität zugeordnet werden und Ihre Quelldaten nicht den Namen der Zielentität enthalten, fügen Sie einfach in der Quelle der Kopieraktivität eine zusätzliche Spalte hinzu. Geben Sie der neuen Spalte einen Namen nach dem Muster {lookup_field_name}@EntityReference, legen Sie den Namen der Zielentität als Wert fest, und fahren Sie wie gewohnt mit der Spaltenzuordnung fort. Wenn die Spaltennamen Ihrer Quelle and Senke identisch sind, können Sie die explizite Spaltenzuordnung auch überspringen, da die Kopieraktivität Spalten automatisch nach dem Namen zuordnet.

Dynamics lookup-field adding an entity-reference column

Schreiben von Daten in ein Nachschlagefeld über alternative Schlüssel

Wenn Sie unter Verwendung von alternativen Schlüsselspalten Daten in ein Nachschlagefeld schreiben möchten, folgen Sie dieser Anleitung und diesem Beispiel:

  1. Vergewissern Sie sich, dass Ihre Quelle alle Nachschlageschlüsselspalten enthält.

  2. Die alternativen Schlüsselspalten müssen der Spalte mit dem speziellen Benennungsmuster {lookup_field_name}@{alternate_key_column_name}zugeordnet werden. Die Spalte ist in Dynamics nicht vorhanden. Mit ihr wird angezeigt, dass diese Spalte zum Nachschlagen des Datensatzes in der Zielentität verwendet wird.

  3. Wechseln Sie zur Registerkarte Zuordnung in der Senkentransformation von Zuordnungsdatenflüssen. Wählen Sie die alternativen Schlüssel als Ausgabespalten unter dem Nachschlagefeld aus. Der Wert dahinter gibt die Schlüsselspalten dieses alternativen Schlüssels an.

    Screenshot shows selecting alternate key columns.

  4. Nach der Auswahl werden die alternativen Schlüsselspalten automatisch unten angezeigt.

    Screenshot shows mapping columns to lookup fields via alternate keys step 1.

  5. Ordnen Sie Ihre Eingabespalten auf der linken Seite den Ausgabespalten zu.

    Screenshot shows mapping columns to lookup fields via alternate keys step 2.

Hinweis

Derzeit wird dies nur unterstützt, wenn Sie den Inlinemodus in der Senkentransformation von Zuordnungsdatenflüssen verwenden.

Eigenschaften von Mapping Data Flow

Beim Transformieren von Daten im Zuordnungsdatenfluss können Sie in Dynamics Tabellen lesen und in diese schreiben. Weitere Informationen finden Sie unter Quellentransformation und Senkentransformation in Zuordnungsdatenflüssen. Sie können ein Dynamics-Dataset oder Inlinedataset als Quell- und Senkentyp verwenden.

Quellentransformation

In der folgenden Tabelle sind die von Dynamics unterstützten Eigenschaften aufgeführt. Sie können diese Eigenschaften auf der Registerkarte Quelloptionen bearbeiten.

Name BESCHREIBUNG Erforderlich Zulässige Werte Datenflussskript-Eigenschaft
Name der Entität Der logische Name der abzurufenden Entität. Ja, bei Verwendung des Inlinedatasets - (nur für Inlinedataset)
Entität
Abfrage FetchXML ist eine proprietäre Abfragesprache, die in Dynamics (online und lokal) verwendet wird. Siehe folgendes Beispiel. Weitere Informationen finden Sie unter Erstellen von Abfragen mit FetchXML. Nein String Abfrage

Hinweis

Wenn Sie Abfrage als Eingabetyp auswählen, kann der Spaltentyp aus Tabellen nicht abgerufen werden. Er wird standardmäßig als Zeichenfolge behandelt.

Skriptbeispiel für Dynamics-Quelle

Wenn Sie ein Dynamics-Dataset als Quelltyp verwenden, sieht das zugehörige Datenflussskript wie folgt aus:

source(allowSchemaDrift: true,
	validateSchema: false,
	query: '<fetch mapping='logical' count='3 paging-cookie=''><entity name='new_dataflow_crud_test'><attribute name='new_name'/><attribute name='new_releasedate'/></entity></fetch>') ~> DynamicsSource

Wenn Sie ein Inlinedataset verwenden, sieht das zugehörige Datenflussskript wie folgt aus:

source(allowSchemaDrift: true,
	validateSchema: false,
	store: 'dynamics',
	format: 'dynamicsformat',
	entity: 'Entity1',
	query: '<fetch mapping='logical' count='3 paging-cookie=''><entity name='new_dataflow_crud_test'><attribute name='new_name'/><attribute name='new_releasedate'/></entity></fetch>') ~> DynamicsSource

Senkentransformation

In der folgenden Tabelle sind die von der Dynamics-Senke unterstützten Eigenschaften aufgeführt. Sie können diese Eigenschaften auf der Registerkarte Senkenoptionen bearbeiten.

Name BESCHREIBUNG Erforderlich Zulässige Werte Datenflussskript-Eigenschaft
Name des Alternativschlüssels Der Name des Alternativschlüssels, der zum Ausführen eines Update-, Upsert- oder Löschvorgangs für Ihre Entität definiert wurde No - alternateKeyName
Updatemethode Geben Sie an, welche Vorgänge für das Datenbankziel zulässig sind. Standardmäßig sind lediglich Einfügevorgänge zulässig.
Um Aktualisierungs-, Upsert- oder Löschaktionen auf Zeilen anzuwenden, muss eine Zeilenänderungstransformation zum Kennzeichnen von Zeilen für diese Aktionen erfolgen.
Ja true oder false insertable
updateable
upsertable
deletable
Name der Entität Der logische Name der zu schreibenden Entität. Ja, bei Verwendung des Inlinedatasets - (nur für Inlinedataset)
Entität

Skriptbeispiel für Dynamics-Senke

Wenn Sie ein Dynamics-Dataset als Senkentyp verwenden, sieht das zugehörige Datenflussskript wie folgt aus:

IncomingStream sink(allowSchemaDrift: true,
    validateSchema: false,
    deletable:true,
    insertable:true,
    updateable:true,
    upsertable:true,
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> DynamicsSink

Wenn Sie ein Inlinedataset verwenden, sieht das zugehörige Datenflussskript wie folgt aus:

IncomingStream sink(allowSchemaDrift: true,
    validateSchema: false,
    store: 'dynamics',
    format: 'dynamicsformat',
    entity: 'Entity1',
    deletable: true,
    insertable: true,
    updateable: true,
    upsertable: true,
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> DynamicsSink

Eigenschaften der Lookup-Aktivität

Ausführliche Informationen zu den Eigenschaften finden Sie unter Lookup-Aktivität in Azure Data Factory.

Eine Liste der von der Kopieraktivität als Quellen und Senken unterstützten Datenspeicher finden Sie unter Unterstützte Datenspeicher und Formate.