Kopieren von Daten aus und nach Salesforce Service Cloud mit 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 die Copy-Aktivität in Azure Data Factory- und Azure Synapse-Pipelines verwenden, um Daten aus und in Salesforce Service Cloud zu kopieren. Er baut auf dem Artikel zur Übersicht über die Kopieraktivität auf, der eine allgemeine Übersicht über die Kopieraktivität enthält.
Wichtig
Der neue Salesforce Service Cloud-Connector bietet verbesserte native Salesforce Service Cloud-Unterstützung. Wenn Sie den Salesforce Service Cloud-Legacyconnector in Ihrer Lösung verwenden, führen Sie vor dem 11. Oktober 2024 ein Upgrade Ihres Salesforce Service Cloud-Connectors durch. Ausführliche Informationen zum Unterschied zwischen der Legacy- und der neuesten Version finden Sie in diesem Abschnitt.
Unterstützte Funktionen
Dieser Salesforce Service Cloud Connector wird für die folgenden Funktionen unterstützt:
Unterstützte Funktionen | IR |
---|---|
Kopieraktivität (Quelle/Senke) | ① ② |
Lookup-Aktivität | ① ② |
① Azure Integration Runtime ② Selbstgehostete Integration Runtime
Eine Liste der Datenspeicher, die als Quellen oder Senken unterstützt werden, finden Sie in der Tabelle der unterstützten Datenspeicher.
Dieser Salesforce Service Cloud-Connector unterstützt insbesondere Folgendes:
- Salesforce Developer, Professional, Enterprise oder Unlimited Edition.
- Kopieren von Daten aus und in eine benutzerdefinierte Domäne (eine benutzerdefinierte Domäne kann sowohl in Produktions- als auch in Sandboxumgebungen konfiguriert werden).
Sie können die zum Lesen/Schreiben von Daten verwendete API-Version explizit über die apiVersion
-Eigenschaft im verknüpften Dienst festlegen. Beim Kopieren von Daten in Salesforce Service Cloud verwendet der Connector BULK API 2.0.
Voraussetzungen
API-Berechtigungen müssen in Salesforce aktiviert sein.
Sie müssen die Connected Apps im Salesforce-Portal konfigurieren, indem Sie sich auf dieses offizielle Dokument oder unsere Schritt-für-Schritt-Anleitung in der Empfehlung in diesem Artikel beziehen.
Wichtig
- Der oder die ausführende Benutzer*in benötigt die Berechtigung „API Only“.
- Die Ablaufzeit des Zugriffstokens kann über Sitzungsrichtlinien anstelle des Aktualisierungstokens geändert werden.
Grenzwerte der Salesforce-Bulk-API 2.0
Wir verwenden die Salesforce-Bulk-API 2.0 zum Abfragen und Erfassen von Daten. In der Bulk-API 2.0 werden Batches automatisch für Sie erstellt. Sie können bis zu 15.000 Batches pro rollierendem 24-Stunden-Zeitraum übermitteln. Wenn Batches den Grenzwert überschreiten, werden Fehler angezeigt.
In der Bulk-API 2.0 verbrauchen nur Erfassungsaufträge Batches, Abfrageaufträge jedoch nicht. Ausführliche Informationen finden Sie unter Verarbeiten von Anforderungen im Bulk-API 2.0-Entwicklerhandbuch.
Weitere Informationen finden Sie im Abschnitt „Allgemeine Grenzwerte“ im Dokument Salesforce-Entwicklergrenzwerte.
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 Salesforce Service Cloud über die Benutzeroberfläche
Verwenden Sie die folgenden Schritte, um einen mit Salesforce Service Cloud verknüpften Dienst in der Benutzeroberfläche des Azure-Portals 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 „Salesforce“, und wählen Sie den Salesforce Service Cloud-Connector aus.
Konfigurieren Sie die Dienstdetails, testen Sie die Verbindung, und erstellen Sie den neuen verknüpften Dienst.
Details zur Connector-Konfiguration
Die folgenden Abschnitte enthalten Details zu Eigenschaften, die zum Definieren von Entitäten verwendet werden, die speziell für den Salesforce Service Cloud-Connector gelten.
Eigenschaften des verknüpften Diensts
Die folgenden Eigenschaften werden für den mit Salesforce Service Cloud verknüpften Dienst unterstützt:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Typ | Die type-Eigenschaft muss auf SalesforceServiceCloudV2 festgelegt sein. | Ja |
environmentUrl | Geben Sie die URL der Salesforce Service Cloud-Instanz an. Geben Sie z. B. "https://<domainName>.my.salesforce.com" an, um Daten aus der benutzerdefinierten Domäne zu kopieren. In diesem Artikel erfahren Sie, wie Sie Ihre benutzerdefinierte Domäne konfigurieren oder anzeigen. |
Ja |
authenticationType | Typ der Authentifizierung für die Verbindung mit der Salesforce Service Cloud. Der zulässige Wert ist OAuth2ClientCredentials. |
Ja |
clientId | Geben Sie die Client-ID der verbundenen Salesforce OAuth 2.0-App an. Weitere Informationen finden Sie in diesem Artikel. | Ja |
clientSecret | Geben Sie den geheimen Clientschlüssel der verbundenen Salesforce OAuth 2.0-App an. Weitere Informationen finden Sie in diesem Artikel. | Ja |
apiVersion | Geben Sie die zu verwendende Salesforce Bulk API 2.0-Version an, z. B. 52.0 . Die Bulk-API 2.0 unterstützt nur API-Versionen >= 47.0. Weitere Informationen zur Bulk API 2.0 finden Sie in diesem Artikel. Wenn Sie eine niedrigere API-Version verwenden, führt dies zu einem Fehler. |
Ja |
connectVia | Die Integration Runtime, die zum Herstellen einer Verbindung mit dem Datenspeicher verwendet werden soll. Wenn keine Option angegeben ist, wird die standardmäßige Azure Integration Runtime verwendet. | Nein |
Beispiel: Speichern von Anmeldeinformationen
{
"name": "SalesforceServiceCloudLinkedService",
"properties": {
"type": "SalesforceServiceCloudV2",
"typeProperties": {
"environmentUrl": "<environment URL>",
"authenticationType": "OAuth2ClientCredentials",
"clientId": "<client ID>",
"clientSecret": {
"type": "SecureString",
"value": "<client secret>"
},
"apiVersion": "<API Version>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Beispiel: Speichern von Anmeldeinformationen in Key Vault
{
"name": "SalesforceServiceCloudLinkedService",
"properties": {
"type": "SalesforceServiceCloudV2",
"typeProperties": {
"environmentUrl": "<environment URL>",
"authenticationType": "OAuth2ClientCredentials",
"clientId": "<client ID>",
"clientSecret": {
"type": "AzureKeyVaultSecret",
"secretName": "<secret name of client secret in AKV>",
"store":{
"referenceName": "<Azure Key Vault linked service>",
"type": "LinkedServiceReference"
}
},
"apiVersion": "<API Version>"
},
"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 Salesforce Service Cloud-Dataset unterstützt werden.
Wenn Sie Daten aus und in Salesforce Service Cloud kopieren möchten, legen Sie die Typeigenschaft des Datasets auf SalesforceServiceCloudV2Object fest. Die folgenden Eigenschaften werden unterstützt.
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Typ | Die type-Eigenschaft muss auf SalesforceServiceCloudV2Object festgelegt sein. | Ja |
objectApiName | Der Name des Salesforce Service Cloud-Objekts, aus dem Daten abgerufen werden sollen Die zutreffende Version der selbstgehosteten Integration Runtime ist mindestens 5.44.8984.1. | Nein: Quelle (wenn „Abfrage“ in der Quelle angegeben ist), Ja: Senke |
reportId | Die ID des Salesforce Service Cloud-Berichts, aus dem Daten abgerufen werden sollen. Diese wird in der Senke nicht unterstützt. Beachten Sie, dass das Verwenden von Berichten Einschränkungen unterliegt. Die zutreffende Version der selbstgehosteten Integration Runtime ist mindestens 5.44.8984.1. | Nein: Quelle (wenn „Abfrage“ in der Quelle angegeben ist), Senke wird nicht unterstützt |
Wichtig
Der Teil „__c“ von API Name wird für benutzerdefinierte Objekte benötigt.
Beispiel:
{
"name": "SalesforceServiceCloudDataset",
"properties": {
"type": "SalesforceServiceCloudV2Object",
"typeProperties": {
"objectApiName": "MyTable__c"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<Salesforce Service Cloud 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 der Salesforce Service Cloud-Quelle und -Senke unterstützt werden.
Salesforce Service Cloud als Quelltyp
Um Daten aus Salesforce Service Cloud zu kopieren, legen Sie den Quelltyp in der Copy-Aktivität auf SalesforceServiceCloudV2Source fest. Die folgenden Eigenschaften werden im Abschnitt source der Kopieraktivität unterstützt.
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Typ | Die type-Eigenschaft der Quelle der Copy-Aktivität muss auf SalesforceServiceCloudV2Source festgelegt sein. | Ja |
Abfrage | Verwendet die benutzerdefinierte Abfrage zum Lesen von Daten. Sie können SOQL-Abfragen (Salesforce Object Query Language) nur mit Einschränkungen verwenden. Informationen zu den SOQL-Einschränkungen finden Sie in diesem Artikel. Wenn die Abfrage nicht angegeben ist, werden alle Daten des Salesforce-Objekts abgerufen, das im Dataset unter „objectApiName/reportId“ angegeben ist. | Nein (wenn „objectApiName/reportId“ im Dataset angegeben ist) |
includeDeletedObjects | Gibt an, ob die vorhandenen Datensätze oder alle Datensätze (einschließlich gelöschter Datensätze) abgefragt werden sollen. Wenn nicht angegeben, lautet das Standardverhalten „false“. Zulässige Werte sind false (Standard) und true. |
No |
Wichtig
Der Teil „__c“ von API Name wird für benutzerdefinierte Objekte benötigt.
Beispiel:
"activities":[
{
"name": "CopyFromSalesforceServiceCloud",
"type": "Copy",
"inputs": [
{
"referenceName": "<Salesforce Service Cloud input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "SalesforceServiceCloudV2Source",
"query": "SELECT Col_Currency__c, Col_Date__c, Col_Email__c FROM AllDataType__c",
"includeDeletedObjects": false
},
"sink": {
"type": "<sink type>"
}
}
}
]
Salesforce Service Cloud als Senkentyp
Um Daten in Salesforce Service Cloud zu kopieren, legen Sie den Senkentyp in der Copy-Aktivität auf SalesforceServiceCloudV2Sink fest. Die folgenden Eigenschaften werden im Abschnitt sink der Kopieraktivität unterstützt.
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Typ | Die type-Eigenschaft der Senke der Copy-Aktivität muss auf SalesforceServiceCloudV2Sink festgelegt sein. | Ja |
writeBehavior | Das Schreibverhalten für den Vorgang. Zulässige Werte: Insert und Upsert. |
Nein (Standardwert ist „Insert“) |
externalIdFieldName | Der Name des externen ID-Felds für den upsert-Vorgang. Das angegebene Feld muss als „Externes ID-Feld“ im Salesforce Service Cloud-Objekt definiert werden. Es kann keine NULL-Werte in den entsprechenden Eingabedaten haben. | Ja für „Upsert“ |
writeBatchSize | Die Zeilenanzahl der Daten, die in jedem Batch in Salesforce Service Cloud geschrieben werden. Es wird empfohlen, einen Wert zwischen 10.000 und 200.000 festzulegen. Zu wenige Zeilen in jedem Batch beeinträchtigen die Leistung der Copy-Aktivität. Zu viele Zeilen in jedem Batch können zu API-Timeouts führen. | Nein (Standardwert: 100.000) |
ignoreNullValues | Gibt an, ob NULL-Werte aus Eingabedaten während eines Schreibvorgangs ignoriert werden sollen. Zulässige 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: Daten im Zielobjekt werden auf NULL aktualisiert, wenn Sie einen upsert- oder update-Vorgang ausführen. Fügt beim Ausführen eines insert-Vorgangs einen NULL-Wert ein. |
Nein (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. | Ohne |
Beispiel: Salesforce Service Cloud-Senke in einer Copy-Aktivität
"activities":[
{
"name": "CopyToSalesforceServiceCloud",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Salesforce Service Cloud output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "SalesforceServiceCloudV2Sink",
"writeBehavior": "Upsert",
"externalIdFieldName": "CustomerId__c",
"writeBatchSize": 10000,
"ignoreNullValues": true
}
}
}
]
Datentypzuordnung für Salesforce Service Cloud
Beim Kopieren von Daten aus Salesforce Service Cloud werden die folgenden Zuordnungen von Salesforce Service Cloud-Datentypen zu den vom Dienst intern verwendeten Zwischendatentypen verwendet. Weitere Informationen dazu, wie die Kopieraktivität das Quellschema und den Datentyp zur Senke zuordnet, finden Sie unter Schema- und Datentypzuordnungen.
Salesforce Service Cloud-Datentyp | Zwischendatentyp des Diensts |
---|---|
Auto Number | String |
Checkbox | Boolean |
Währung | Decimal |
Date | Datetime |
Date/Time | Datetime |
E‑Mail | String |
id | String |
Lookup Relationship | String |
Multi-Select Picklist | String |
Number | Decimal |
Percent | Decimal |
Phone | String |
Picklist | String |
Text | String |
Text Area | String |
Text Area (Long) | String |
Text Area (Rich) | String |
Text (Encrypted) | String |
URL | String |
Hinweis
Der Salesforce Service Cloud-Typ „Number“ entspricht dem Typ „Decimal“ in den Azure Data Factory- und Azure Synapse-Pipelines als Zwischendatentyp eines Dienstes. Der Typ „Dezimal“ berücksichtigt die definierte Genauigkeit und Skalierung. Für Daten, deren Dezimalstellen die definierte Skalierung überschreiten, wird der Wert in Vorschaudaten und -kopien abgerundet. Um einen solchen Genauigkeitsverlust in Azure Data Factory und Azure Synapse Pipelines zu vermeiden, sollten Sie die Dezimalstellen auf der Seite Custom Field Definition Edit von Salesforce Service Cloud auf einen ausreichenden Wert erhöhen.
Eigenschaften der Lookup-Aktivität
Ausführliche Informationen zu den Eigenschaften finden Sie unter Lookup-Aktivität.
Upgrade des verknüpften Salesforce Service Cloud-Diensts
Die folgenden Schritte unterstützen Sie beim Upgrade Ihres verknüpften Diensts und der zugehörigen Abfragen:
Konfigurieren Sie die verbundenen Apps im Salesforce-Portal wie unter Voraussetzungen beschrieben.
Erstellen Sie einen neuen verknüpften Salesforce Service Cloud-Dienst, und konfigurieren Sie ihn wie unter Eigenschaften des verknüpften Diensts beschrieben.
Wenn Sie eine SQL-Abfrage in der Quelle der Copy-Aktivität oder der Lookup-Aktivität verwenden, die sich auf den verknüpften Legacydienst bezieht, müssen Sie sie in eine SOQL-Abfrage konvertieren. Weitere Informationen zu SOQL-Abfragen finden Sie unter Salesforce Service Cloud als Quelltyp und Salesforce Object Query Language (SOQL).
readBehavior wird durch includeDeletedObjects in der Kopier- oder Lookup-Aktivität ersetzt. Die detaillierte Konfiguration finden Sie unter Salesforce Service Cloud als Quelltyp.
Unterschiede zwischen Salesforce Service Cloud und Salesforce Service Cloud (Legacy)
Der Salesforce Service Cloud-Connector bietet neue Funktionen und ist mit den meisten Features des Salesforce Service Cloud-Connector (Legacy) kompatibel. Die nachfolgende Tabelle zeigt die Unterschiede zwischen Salesforce Service Cloud und Salesforce Service Cloud (Legacy).
Salesforce Service Cloud | Salesforce Service Cloud (Legacy) |
---|---|
Unterstützen SOQL in Salesforce Bulk API 2.0. Für SOQL-Abfragen: • Die Klauseln GROUP BY, LIMIT, ORDER BY, OFFSET oder TYPEOF werden nicht unterstützt. • Aggregatfunktionen wie COUNT() werden nicht unterstützt. Sie können Salesforce-Berichte verwenden, um sie zu implementieren. • Datumsfunktionen in GROUP BY-Klauseln werden nicht unterstützt, aber in der WHERE-Klausel. • Zusammengesetzte Adressfelder oder zusammengesetzte Geolocation-Felder werden nicht unterstützt. Alternativ können Sie die einzelnen Komponenten zusammengesetzter Felder abfragen. • Abfragen zur Beziehung von übergeordneten zu untergeordneten Elementen werden nicht unterstützt, jedoch Abfragen zur Beziehung von untergeordneten zu übergeordneten Elementen. |
Unterstützen sowohl die SQL- als auch die SOQL-Syntax. |
Objekte, die binäre Felder enthalten, werden für Abfragen nicht unterstützt. | Objekte, die binäre Felder enthalten, werden für Abfragen unterstützt. |
Unterstützt für Abfragen Objekte in der Massen-API | Unterstützt für Abfragen Objekte, die von der Massen-API nicht unterstützt werden |
Unterstützen Berichte durch Auswählen einer Berichts-ID. | Unterstützen die Abfragesyntax des Berichts, z. B. {call "<report name>"} . |
Zugehöriger Inhalt
Eine Liste der Datenspeicher, die als Quelles und Senken für die Kopieraktivität unterstützt werden, finden Sie in Unterstützte Datenspeicher.