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, wird dieser nur aus Gründen der Abwärtskompatibilität unterstützt. Weitere Informationen finden Sie im Artikel Salesforce Service Cloud-Connector (Legacy).

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:

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.

  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 „Salesforce“, und wählen Sie den Salesforce Service Cloud-Connector aus.

    Screenshot des Salesforce Service Cloud-Connectors

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

    Screenshot, der die Konfiguration des verknüpften Diensts für die Salesforce Service Cloud zeigt

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 Nein: Quelle (wenn „SOQLQuery“ 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. Nein: Quelle (wenn „SOQLQuery“ in der Quelle angegeben ist), Senke wird nicht unterstützt

Wichtig

Der Teil „__c“ von API Name wird für benutzerdefinierte Objekte benötigt.

der API-Name für die Salesforce-Verbindung

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

Eine Liste der API-Namen für die Salesforce-Verbindung

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",
                "SOQLQuery": "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:

  1. Konfigurieren Sie die verbundenen Apps im Salesforce-Portal wie unter Voraussetzungen beschrieben.

  2. Erstellen Sie einen neuen verknüpften Salesforce Service Cloud-Dienst, und konfigurieren Sie ihn wie unter Eigenschaften des verknüpften Diensts beschrieben.

  3. 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).

  4. 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-Connectors (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 nicht unterstützt. Objekte, die binäre Felder enthalten, werden unterstützt, z. B. das Attachment-Objekt.
Unterstützen Objekte innerhalb der Massen-API. hier finden Sie weitere Informationen Unterstützen Objekte, die von der Massen-API nicht unterstützt werden, z. B. CaseStatus.
Unterstützen Berichte durch Auswählen einer Berichts-ID. Unterstützen die Abfragesyntax des Berichts, z. B. {call "<report name>"}.

Eine Liste der Datenspeicher, die als Quelles und Senken für die Kopieraktivität unterstützt werden, finden Sie in Unterstützte Datenspeicher.