次の方法で共有


Azure Data Factory または Azure Synapse Analytics を使って Salesforce Service Cloud V2 との間でデータをコピーする

適用対象: Azure Data Factory Azure Synapse Analytics

Tip

Microsoft Fabric の Data Factory (企業向けのオールインワン分析ソリューション) を試してみてください。 Microsoft Fabric では、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法については、こちらを参照してください。

この記事では、Azure Data Factory と Azure Synapse パイプラインのコピー アクティビティを使って、Salesforce Service Cloud 間でデータをコピーする方法について説明します。 この記事は、コピー アクティビティの概要を示しているコピー アクティビティの概要に関する記事に基づいています。

Important

Salesforce Service Cloud V2 コネクタでは、Salesforce Service Cloud のネイティブ サポートが強化されています。 ソリューションで Salesforce Service Cloud V1 コネクタを使用している場合は、V1 がサポート終了段階であるため、Salesforce Service Cloud コネクタをアップグレードしてください。 アップグレードされていない場合 、パイプラインは 2025 年 9 月 30 日以降に失敗します。 V2 と V1 の違いの詳細については、このセクションを参照してください。

Supported capabilities

この Salesforce Service Cloud コネクタは、次の機能でサポートされます。

Supported capabilities IR
Copy アクティビティ (ソース/シンク) ① ②
Lookup activity ① ②

① Azure 統合ランタイム ② セルフホステッド統合ランタイム

ソースまたはシンクとしてサポートされているデータ ストアの一覧については、サポートされるデータ ストアに関する表を参照してください。

具体的には、この Salesforce Service Cloud コネクタは以下をサポートします。

  • Salesforce Developer、Professional、Enterprise、または Unlimited エディション。
  • カスタム ドメインとの間でデータのコピー (カスタム ドメインは運用環境とサンドボックス環境の両方で構成できます)。

リンク サービスで apiVersion プロパティ を使用して、データの読み取りまたは書き込みに使用する API バージョンを明示的に設定することができます。 データの Salesforce Service Cloud へのコピー時に、コネクタでは BULK API 2.0 が使われます。

Prerequisites

  • Salesforce で API アクセス許可を有効にする必要があります。

  • この公式ドキュメント を参照するか、この 記事の推奨事項のステップ バイ ステップ ガイドラインを参照して、Salesforce ポータルで接続アプリを構成する必要があります。

    Important

    • 実行ユーザーには "API のみ" のアクセス許可が必要です。
    • アクセス トークンの有効期限は、更新トークンではなくセッション ポリシーを使用して変更できます。

Salesforce Bulk API 2.0 の制限

Salesforce Bulk API 2.0 を使用して、データのクエリと取り込みを行います。 Bulk API 2.0 では、バッチが自動的に作成されます。 24 時間のロール期間あたり最大 15,000 件のバッチを送信できます。 バッチが上限を超えると、エラーが表示されます。

Bulk API 2.0 では、取り込みジョブのみがバッチを使用します。 クエリ ジョブは使用しません。 詳細については、「Bulk API 2.0 Developer Guide (Bulk API 2.0 開発者ガイド)」の「How Requests Are Processed」(要求の処理方法) を参照してください。

詳細については、Salesforce Developer の制限に関する資料の「General Limits」(一般的な制限) を参照してください。

概要

パイプラインでコピー アクティビティを実行するには、次のいずれかのツールまたは SDK を使用します。

UI を使用して Salesforce Service Cloud のリンク サービスを作成する

次の手順を使用して、Azure portal UI で Salesforce Service Cloud のリンク サービスを作成します。

  1. Azure Data Factory または Synapse ワークスペースの [管理] タブに移動し、[リンク サービス] を選択して、[新規] をクリックします。

    Azure Data Factory の UI を使用した新しいリンク サービスの作成を示すスクリーンショット。

  2. Salesforce を検索し、Salesforce Service Cloud コネクタを選択します。

    Salesforce Service Cloud コネクタのスクリーンショット。

  3. サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。

    Salesforce Service Cloud のリンク サービス構成のスクリーンショット。

コネクタの構成の詳細

次のセクションでは、Salesforce Service Cloud コネクタに固有のエンティティを定義するために使用されるプロパティについて詳しく説明します。

リンクされたサービスのプロパティ

Salesforce Service Cloud リンク サービスでは、次のプロパティがサポートされます。

Property Description Required
type プロパティは SalesforceServiceCloudV2 に設定する必要があります。 Yes
environmentUrl Salesforce Service Cloud インスタンスの URL を指定します。
たとえば、カスタム ドメインからデータをコピーするには、"https://<domainName>.my.salesforce.com" を指定します。 カスタム ドメインを構成または表示する方法については、こちらの記事を参照してください。
Yes
authenticationType Salesforce Service Cloud への接続に使用される認証の種類です。
使用できる値は OAuth2ClientCredentials です。
Yes
clientId Salesforce OAuth 2.0 接続アプリのクライアント ID を指定します。 詳細については、こちらの記事を参照してください Yes
clientSecret Salesforce OAuth 2.0 接続アプリのクライアント シークレットを指定します。 詳細については、こちらの記事を参照してください Yes
apiVersion 使用する Salesforce Bulk API 2.0 のバージョンを指定します (例: 52.0)。 Bulk API 2.0 では、API バージョン 47.0 以降のみがサポートされています。 Bulk API 2.0 のバージョンについては、記事を参照してください。 より低いバージョンの API を使用すると、エラーが発生します。 Yes
connectVia データ ストアに接続するために使用される統合ランタイム。 指定されていない場合は、既定の Azure 統合ランタイムが使用されます。 No

例: 資格情報を格納する

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

例: キー コンテナーに資格情報を格納する

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

データセットを定義するために使用できるセクションとプロパティの完全な一覧については、データセットに関する記事をご覧ください。 このセクションでは、Salesforce Service Cloud データセットでサポートされるプロパティの一覧を示します。

Salesforce Service Cloud との間でデータをコピーするには、データセットの type プロパティを SalesforceServiceCloudV2Object に設定します。 次のプロパティがサポートされています。

Property Description Required
type プロパティは SalesforceServiceCloudV2Object に設定する必要があります。 Yes
objectApiName データを取得する Salesforce Service Cloud オブジェクト名。 該当するセルフホステッド統合ランタイムのバージョンは、5.44.8984.1 以降です。 ソースの場合はいいえ (ソースの "query" が指定されている場合)、シンクの場合ははい
reportId データを取得する Salesforce Service Cloud レポートの ID。 シンクではサポートされていません。 レポートを使用する場合は制限があることに注意してください。 該当するセルフホステッド統合ランタイムのバージョンは、5.44.8984.1 以降です。 ソースの場合はいいえ (ソースの "query" が指定されている場合)、シンクはサポートされていません

Important

カスタム オブジェクトには、API 名の "__c" の部分が必要となります。

Salesforce 接続 API 名

Example:

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

コピー アクティビティのプロパティ

アクティビティの定義に利用できるセクションとプロパティの完全な一覧については、パイプラインに関する記事を参照してください。 このセクションでは、Salesforce Service Cloud ソースとシンクでサポートされるプロパティの一覧を示します。

ソースの種類としての Salesforce Service Cloud

Salesforce Service Cloud からデータをコピーするには、コピー アクティビティのソースの種類を SalesforceServiceCloudV2Source に設定します。 コピー アクティビティの source セクションでは、次のプロパティがサポートされます。

Property Description Required
コピー アクティビティのソースの type プロパティは SalesforceServiceCloudV2Source に設定する必要があります。 Yes
クエリ カスタム クエリを使用してデータを読み取ります。 Salesforce オブジェクト クエリ言語 (SOQL) クエリのみを使用できます。 クエリを指定しない場合は、データセット内の "objectApiName/reportId" で指定された Salesforce オブジェクトのすべてのデータが取得されます。 いいえ (データセット内の "objectApiName/reportId" が指定されている場合)
includeDeletedObjects 既存のレコード、または削除されたものを含むすべてのレコードの、どちらのクエリを行うかを示します。 指定しない場合、既定の動作は false です。
使用可能な値: false (既定値)、true
No

Important

カスタム オブジェクトには、API 名の "__c" の部分が必要となります。

Salesforce 接続 API 名一覧

Example:

"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

Salesforce Service Cloud にデータをコピーするには、コピー アクティビティのシンクの種類を SalesforceServiceCloudV2Sink に設定します。 コピー アクティビティの sink セクションでは、次のプロパティがサポートされます。

Property Description Required
コピー アクティビティのシンクの type プロパティは SalesforceServiceCloudV2Sink に設定する必要があります。 Yes
writeBehavior 操作の書き込み動作。
使用可能な値: Insert および Upsert
いいえ (既定値は Insert)
externalIdFieldName Upsert 操作の外部 ID フィールドの名前。 指定するフィールドは、Salesforce Service Cloud オブジェクトに "External ID Field" として定義されている必要があります。 対応する入力データに NULL 値を持つことはできません。 "Upsert" の場合ははい
writeBatchSize 各バッチで Salesforce Service Cloud に書き込まれたデータの行数。 この値を 10,000 から 200,000 に設定することをお勧めします。 各バッチの行数が少なすぎると、コピーのパフォーマンスが低下します。 各バッチの行数が多すぎると、API のタイムアウトが発生する可能性があります。 いいえ (既定値は 100,000)
ignoreNullValues 書き込み操作時に入力データからの NULL 値を無視するかどうかを示します。
使用可能な値: true および false
- True: upsert または更新操作を行うときに、対象オブジェクト内のデータが変更されないようにします。 挿入操作を実行するときに、定義済みの既定値を挿入します。
- False: upsert または更新操作を行うときに、対象オブジェクト内のデータを NULL に更新します。 挿入操作を実行するときに、NULL 値を挿入します。
いいえ (既定値は false)
 maxConcurrentConnections アクティビティの実行中にデータ ストアに対して確立されるコンカレント接続数の上限。 コンカレント接続数を制限する場合にのみ、値を指定します。  No

例: コピー アクティビティの Salesforce Service Cloud シンク

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

Salesforce Service Cloud のデータ型マッピング

Salesforce Service Cloud からデータをコピーする場合、Salesforce Service Cloud データ型からサービス内の中間データ型への次のマッピングが内部的に使われます。 コピー アクティビティでソースのスキーマとデータ型がシンクにマッピングされるしくみについては、スキーマとデータ型のマッピングに関する記事を参照してください。

Salesforce Service Cloud のデータ型 サービスの中間データ型
Auto Number String
Checkbox ブール値
Currency Decimal
Date DateTime
日付/時刻 DateTime
Email String
ID String
Lookup Relationship String
Multi-Select Picklist String
Number Decimal
Percent Decimal
Phone String
Picklist String
テキスト String
Text Area String
テキストエリア(長い) String
テキスト エリア (リッチ) String
Text (Encrypted) String
URL String

Note

Salesforce Service Cloud の Number 型は、サービスの中間データ型として、Azure Data Factory および Azure Synapse パイプラインの Decimal 型にマッピングされます。 Decimal 型では、定義された有効桁数と小数点以下桁数が適用されます。 小数点以下の桁数が定義された小数点以下桁数を超えるデータの場合、その値はプレビュー データで端数が丸められ、コピーされます。 Azure Data Factory および Azure Synapse パイプラインでこのような精度の損失が発生しないようにするには、Salesforce Service Cloud の [カスタム フィールド定義の編集] ページで小数点以下の桁数をかなり大きな値に増やすことを検討してください。

Lookup アクティビティのプロパティ

プロパティの詳細については、Lookup アクティビティに関するページを参照してください。

Salesforce Service Cloud コネクタのライフサイクルとアップグレード

次の表は、Salesforce Service Cloud コネクタのさまざまなバージョンのリリース ステージと変更ログを示しています。

Version Release stage Change log
Salesforce Service Cloud V1 サポート終了が発表されました /
Salesforce Service Cloud V2 GA バージョンあり • 基本認証の代わりに OAuth2ClientCredentials 認証をサポートします。

• SOQL クエリのみをサポートします。

• レポート ID を選択してレポートをサポートします。

readBehavior は、コピー アクティビティのソースまたは参照アクティビティの includeDeletedObjects に置き換えられます。

Salesforce Service Cloud コネクタをアップグレードする

Salesforce Service Cloud コネクタのアップグレードに役立つ手順を次に示します:

  1. 前提条件」を参照して、Salesforce ポータルで接続アプリを構成します。

  2. 新しい Salesforce Service Cloud リンク サービスを作成し、「リンクされたサービスのプロパティ」を参照して構成します。

  3. V1 リンク サービスを参照する Copy アクティビティのソースまたは検索アクティビティで SQL クエリを使用する場合は、それらを SOQL クエリに変換する必要があります。 SOQL クエリの詳細については、「ソースの種類としての Salesforce Service Cloud」と「Salesforce Object Query Language (SOQL)」を参照してください。

  4. readBehavior は、コピー アクティビティのソースまたは参照アクティビティの includeDeletedObjects に置き換えられます。 詳細な構成については、「ソースの種類としての Salesforce Service Cloud」を参照してください。

コピー アクティビティによってソースおよびシンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関するセクションを参照してください。