Dela via


Kopiera data från och till Salesforce Service Cloud med Hjälp av Azure Data Factory eller Azure Synapse Analytics

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Den här artikeln beskriver hur du använder kopieringsaktivitet i Azure Data Factory och Azure Synapse-pipelines för att kopiera data från och till Salesforce Service Cloud. Den bygger på översiktsartikeln Kopieringsaktivitet som visar en allmän översikt över kopieringsaktiviteten.

Viktigt!

Den nya Salesforce Service Cloud-anslutningsappen ger förbättrad intern Support för Salesforce Service Cloud. Om du använder den äldre Salesforce Service Cloud-anslutningsappen i din lösning uppgraderar du din Salesforce Service Cloud-anslutning före den 11 oktober 2024. Mer information om skillnaden mellan den äldre och den senaste versionen finns i det här avsnittet .

Funktioner som stöds

Den här Salesforce Service Cloud-anslutningsappen stöds för följande funktioner:

Funktioner som stöds IR
aktiviteten Kopiera (källa/mottagare) (1) (2)
Sökningsaktivitet (1) (2)

(1) Azure Integration Runtime (2) Lokalt installerad integrationskörning

En lista över datalager som stöds som källor eller mottagare finns i tabellen Datalager som stöds.

Mer specifikt stöder den här Salesforce Service Cloud-anslutningsappen:

  • Salesforce Developer-, Professional-, Enterprise- eller Unlimited-utgåvor.
  • Kopiera data från och till en anpassad domän (Anpassad domän kan konfigureras i både produktions- och sandbox-miljöer).

Du kan uttryckligen ange den API-version som används för att läsa/skriva data via apiVersion egenskapen i den länkade tjänsten. När du kopierar data till Salesforce Service Cloud använder anslutningsappen BULK API 2.0.

Förutsättningar

  • API-behörigheten måste vara aktiverad i Salesforce.

  • Du behöver konfigurera anslutna appar i Salesforce-portalen som refererar till det här officiella dokumentet eller vår stegvisa riktlinje i rekommendationen i den här artikeln.

    Viktigt!

    • Körningsanvändaren måste ha behörigheten ENDAST API.
    • Förfallotiden för åtkomsttoken kan ändras via sessionsprinciper i stället för uppdateringstoken.

Gränser för Salesforce Bulk API 2.0

Vi använder Salesforce Bulk API 2.0 för att fråga efter och mata in data. I Bulk API 2.0 skapas batchar automatiskt åt dig. Du kan skicka upp till 15 000 batchar per rullande 24-timmarsperiod. Om batcharna överskrider gränsen visas fel.

I Bulk API 2.0 använder endast inmatningsjobb batchar. Frågejobb gör det inte. Mer information finns i Hur begäranden bearbetas i utvecklarguiden för mass-API 2.0.

Mer information finns i avsnittet "Allmänna gränser" i Salesforce-utvecklargränser.

Kom igång

Om du vill utföra aktiviteten Kopiera med en pipeline kan du använda något av följande verktyg eller SDK:er:

Skapa en länkad tjänst till Salesforce Service Cloud med hjälp av användargränssnittet

Använd följande steg för att skapa en länkad tjänst till Salesforce Service Cloud i Azure Portal användargränssnittet.

  1. Bläddra till fliken Hantera i Din Azure Data Factory- eller Synapse-arbetsyta och välj Länkade tjänster och klicka sedan på Ny:

  2. Sök efter Salesforce och välj anslutningsappen Salesforce Service Cloud.

    Skärmbild av Salesforce Service Cloud-anslutningsappen.

  3. Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.

    Skärmbild av den länkade tjänstkonfigurationen för Salesforce Service Cloud.

Konfigurationsinformation för anslutningsprogram

Följande avsnitt innehåller information om egenskaper som används för att definiera entiteter som är specifika för Salesforce Service Cloud-anslutningsappen.

Länkade tjänstegenskaper

Följande egenskaper stöds för den länkade tjänsten Salesforce Service Cloud.

Property Beskrivning Obligatoriskt
type Typegenskapen måste anges till SalesforceServiceCloudV2. Ja
environmentUrl Ange URL:en för Salesforce Service Cloud-instansen.
Ange till exempel "https://<domainName>.my.salesforce.com" att kopiera data från den anpassade domänen. Lär dig hur du konfigurerar eller visar din anpassade domän som refererar till den här artikeln.
Ja
authenticationType Typ av autentisering som används för att ansluta till Salesforce Service Cloud.
Det tillåtna värdet är OAuth2ClientCredentials.
Ja
clientId Ange klient-ID för Salesforce OAuth 2.0 Connected App. Mer information finns i den här artikeln Ja
clientSecret Ange klienthemligheten för Salesforce OAuth 2.0 Connected App. Mer information finns i den här artikeln Ja
apiVersion Ange den Salesforce Bulk API 2.0-version som ska användas, t.ex. 52.0. Bulk API 2.0 stöder endast API-version >= 47.0. Mer information om mass-API 2.0-versionen finns i artikeln. Om du använder en lägre API-version resulterar det i ett fel. Ja
connectVia Den integrationskörning som ska användas för att ansluta till datalagret. Om den inte anges använder den standardkörningen för Azure-integrering. Nej

Exempel: Lagra autentiseringsuppgifter

{
    "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"
        }
    }
}

Exempel: Lagra autentiseringsuppgifter i 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"
        }
    }
}

Egenskaper för datauppsättning

En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera datauppsättningar finns i artikeln Datauppsättningar . Det här avsnittet innehåller en lista över egenskaper som stöds av datauppsättningen Salesforce Service Cloud.

Om du vill kopiera data från och till Salesforce Service Cloud anger du datauppsättningens typegenskap till SalesforceServiceCloudV2Object. Följande egenskaper stöds.

Property Beskrivning Obligatoriskt
type Typegenskapen måste anges till SalesforceServiceCloudV2Object. Ja
objectApiName Salesforce Service Cloud-objektnamnet som du vill hämta data från. Den tillämpliga lokalt installerade integrationskörningsversionen är 5.44.8984.1 eller senare. Nej för källan (om "fråga" i källan har angetts), Ja för mottagare
reportId ID:t för Salesforce Service Cloud-rapporten för att hämta data från. Det stöds inte i mottagare. Observera att det finns begränsningar när du använder rapporter. Den tillämpliga lokalt installerade integrationskörningsversionen är 5.44.8984.1 eller senare. Nej för källan (om "fråga" i källan har angetts) stöder inte mottagare

Viktigt!

Den "__c" delen av API-namnet behövs för alla anpassade objekt.

Namn på Salesforce-anslutnings-API

Exempel:

{
    "name": "SalesforceServiceCloudDataset",
    "properties": {
        "type": "SalesforceServiceCloudV2Object",
        "typeProperties": {
            "objectApiName": "MyTable__c"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Salesforce Service Cloud linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Kopiera egenskaper för aktivitet

En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera aktiviteter finns i artikeln Pipelines . Det här avsnittet innehåller en lista över egenskaper som stöds av Salesforce Service Cloud-källa och mottagare.

Salesforce Service Cloud som källtyp

Om du vill kopiera data från Salesforce Service Cloud anger du källtypen i kopieringsaktiviteten till SalesforceServiceCloudV2Source. Följande egenskaper stöds i avsnittet kopieringsaktivitetskälla.

Property Beskrivning Obligatoriskt
type Typegenskapen för kopieringsaktivitetskällan måste anges till SalesforceServiceCloudV2Source. Ja
query Använd den anpassade frågan för att läsa data. Du kan bara använda FRÅGAN Salesforce Object Query Language (SOQL) med begränsningar. Information om SOQL-begränsningar finns i den här artikeln. Om frågan inte har angetts hämtas alla data för Salesforce-objektet som anges i "objectApiName/reportId" i datauppsättningen. Nej (om "objectApiName/reportId" i datauppsättningen har angetts)
includeDeletedObjects Anger om du vill köra frågor mot befintliga poster eller fråga alla poster, inklusive de borttagna. Om det inte anges är standardbeteendet falskt.
Tillåtna värden: false (standard), true.
Nej

Viktigt!

Den "__c" delen av API-namnet behövs för alla anpassade objekt.

Namnlista för Salesforce-anslutnings-API

Exempel:

"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 som mottagartyp

Om du vill kopiera data till Salesforce Service Cloud anger du mottagartypen i kopieringsaktiviteten till SalesforceServiceCloudV2Sink. Följande egenskaper stöds i avsnittet kopieringsaktivitetsmottagare.

Property Beskrivning Obligatoriskt
type Typegenskapen för kopieringsaktivitetsmottagaren måste anges till SalesforceServiceCloudV2Sink. Ja
writeBehavior Skrivbeteendet för åtgärden.
Tillåtna värden är Insert och Upsert.
Nej (standard är Infoga)
externalIdFieldName Namnet på det externa ID-fältet för upsert-åtgärden. Det angivna fältet måste definieras som "Externt ID-fält" i Salesforce Service Cloud-objektet. Det kan inte ha NULL-värden i motsvarande indata. Ja för "Upsert"
writeBatchSize Radantalet data som skrivits till Salesforce Service Cloud i varje batch. Föreslå att du anger det här värdet från 10 000 till 200 000. För få rader i varje batch minskar kopieringsprestandan. För många rader i varje batch kan orsaka API-timeout. Nej (standardvärdet är 100 000)
ignoreNullValues Anger om null-värden ska ignoreras från indata under en skrivåtgärd.
Tillåtna värden är sanna och falska.
- Sant: Lämna data i målobjektet oförändrade när du utför en upsert- eller uppdateringsåtgärd. Infoga ett definierat standardvärde när du utför en infogningsåtgärd.
- Falskt: Uppdatera data i målobjektet till NULL när du utför en upsert- eller uppdateringsåtgärd. Infoga ett NULL-värde när du utför en infogningsåtgärd.
Nej (standardvärdet är falskt)
 maxConcurrentConnections Den övre gränsen för samtidiga anslutningar som upprättats till datalagret under aktivitetskörningen. Ange endast ett värde när du vill begränsa samtidiga anslutningar.  Nej

Exempel: Salesforce Service Cloud-mottagare i en kopieringsaktivitet

"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
            }
        }
    }
]

Datatypsmappning för Salesforce Service Cloud

När du kopierar data från Salesforce Service Cloud används följande mappningar från Salesforce Service Cloud-datatyper till mellanliggande datatyper inom tjänsten internt. Information om hur kopieringsaktiviteten mappar källschemat och datatypen till mottagaren finns i Mappningar av schema- och datatyper.

Datatyp för Salesforce Service Cloud Tjänst interimsdatatyp
Automatiskt nummer String
Kryssruta Booleskt
Valuta Decimal
Date Datum/tid
Datum/tid Datum/tid
Email String
ID String
Uppslagsrelation String
Listruta för flera val String
Antal Decimal
Procent Decimal
Telefon String
Plocklista String
Text String
Textområde String
Textområde (lång) String
Textområde (RTF) String
Text (krypterad) String
webbadress String

Kommentar

Salesforce Service Cloud Number-typen mappas till decimaltyp i Azure Data Factory och Azure Synapse-pipelines som en tillfällig tjänstdatatyp. Decimaltyp respekterar den definierade precisionen och skalan. För data vars decimaler överskrider den definierade skalan avrundas dess värde i förhandsversionsdata och kopieras. För att undvika sådana precisionsförluster i Azure Data Factory- och Azure Synapse-pipelines kan du överväga att öka decimaltalen till ett ganska stort värde i sidan Redigera anpassad fältdefinition i Salesforce Service Cloud.

Egenskaper för uppslagsaktivitet

Mer information om egenskaperna finns i Sökningsaktivitet.

Uppgradera den länkade tjänsten Salesforce Service Cloud

Här följer steg som hjälper dig att uppgradera din länkade tjänst och relaterade frågor:

  1. Konfigurera de anslutna apparna i Salesforce-portalen genom att referera till Krav.

  2. Skapa en ny länkad Salesforce Service Cloud-tjänst och konfigurera den genom att referera till länkade tjänstegenskaper.

  3. Om du använder SQL-frågan i kopieringsaktivitetskällan eller uppslagsaktiviteten som refererar till den äldre länkade tjänsten måste du konvertera dem till SOQL-frågan. Läs mer om SOQL-fråga från Salesforce Service Cloud som källtyp och Salesforce Object Query Language (SOQL).

  4. readBehavior ersätts med includeDeletedObjects i kopieringsaktivitetskällan eller uppslagsaktiviteten. Detaljerad konfiguration finns i Salesforce Service Cloud som källtyp.

Skillnader mellan Salesforce Service Cloud och Salesforce Service Cloud (äldre)

Salesforce Service Cloud-anslutningsappen erbjuder nya funktioner och är kompatibel med de flesta funktioner i Salesforce Service Cloud-anslutningsappen (äldre). Tabellen nedan visar funktionsskillnaderna mellan Salesforce Service Cloud och Salesforce Service Cloud (äldre).

Salesforce Service Cloud Salesforce Service Cloud (äldre)
Stöd för SOQL i Salesforce Bulk API 2.0.
För SOQL-frågor:
• GROUP BY-, LIMIT-, ORDER BY-, OFFSET- eller TYPEOF-satser stöds inte.
• Mängdfunktioner som COUNT() stöds inte, du kan använda Salesforce-rapporter för att implementera dem.
• Datumfunktioner i GROUP BY-satser stöds inte, men de stöds i WHERE-satsen.
• Sammansatta adressfält eller sammansatta geoplatsfält stöds inte. Alternativt kan du köra frågor mot de enskilda komponenterna i sammansatta fält.
• Frågor om överordnad till underordnad relation stöds inte, medan frågor om underordnade till överordnade relationer stöds.
Stöd för både SQL- och SOQL-syntax.
Objekt som innehåller binära fält stöds inte när du anger fråga. Objekt som innehåller binära fält stöds när du anger fråga.
Stöd för objekt i mass-API när du anger fråga. Stöd för objekt som inte stöds med Mass-API när du anger fråga.
Supportrapport genom att välja ett rapport-ID. Stöd för frågesyntax för rapporter, till exempel {call "<report name>"}.

En lista över datalager som stöds som källor och mottagare av kopieringsaktiviteten finns i Datalager som stöds.