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:
- Das Tool „Daten kopieren“
- Azure-Portal
- Das .NET SDK
- Das Python SDK
- Azure PowerShell
- Die REST-API
- Die Azure Resource Manager-Vorlage
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.
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“:
Suchen Sie nach Dynamics oder Dataverse, und wählen Sie den Dynamics 365-Connector (Microsoft Dataverse) oder Dynamics CRM-Connector aus.
Konfigurieren Sie die Dienstdetails, testen Sie die Verbindung, und erstellen Sie den neuen verknüpften Dienst.
Details zur Connectorkonfiguration
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 einen bekannten Grenzwert für den Berechtigungstyp ServicePrincipalCert, bei dem ein vorübergehendes Problem auftreten kann, wenn der Dienst das Geheimnis nicht aus dem Schlüsseltresor abrufen 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, servicePrincipalCredential verweisen 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 „ActiveDirectoryAuthentication“ für Dynamics lokal mit IFD an. | Ja |
Domäne | Die Active Directory-Domain, die die Benutzeranmeldeinformationen überprüft. | Ja |
username | Der Benutzername, mit dem die Verbindung zu Dynamics hergestellt wird. | Ja |
Kennwort | 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 |
Hinweis
Da die Ifd-Authentifizierungstyp am 31. August 2024 eingestellt wird, wechseln Sie bitte auf die Active Directory-Authentifizierung, falls Sie diese derzeit verwenden.
Beispiel: Dynamics lokal mit IFD mithilfe der Active Directory-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": "ActiveDirectoryAuthentication",
"domain": "< Active Directory domain >",
"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.
|
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:
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.
- Wenn alle Datensätze der gleichen Zielentität zugeordnet werden, stellen Sie sicher, dass eine der folgenden Bedingungen zutrifft:
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.
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.
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:
Vergewissern Sie sich, dass Ihre Quelle alle Nachschlageschlüsselspalten enthält.
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.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.
Nach der Auswahl werden die alternativen Schlüsselspalten automatisch unten angezeigt.
Ordnen Sie Ihre Eingabespalten auf der linken Seite den Ausgabespalten zu.
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.
Zugehöriger Inhalt
Eine Liste der von der Kopieraktivität als Quellen und Senken unterstützten Datenspeicher finden Sie unter Unterstützte Datenspeicher und Formate.