Salesforce は、連絡先管理、製品カタログ管理、注文管理、商談管理、および販売管理に重点を置いた顧客関係管理 (CRM) ソフトウェアを提供します。DataWorks は、Salesforce データソースからデータを読み取るための Salesforce Reader を提供します。このトピックでは、Salesforce データソースからデータを同期する機能について説明します。
データの型のマッピング
データの型 | コードエディタでのデータの型 |
address | STRING |
anyType | STRING |
base64 | BYTES |
boolean | BOOL |
combobox | STRING |
complexvalue | STRING |
currency | DOUBLE |
date | DATE |
datetime | DATE |
double | DOUBLE |
STRING | |
encryptedstring | STRING |
id | STRING |
int | LONG |
json | STRING |
long | LONG |
multipicklist | STRING |
percent | DOUBLE |
phone | STRING |
picklist | STRING |
reference | STRING |
string | STRING |
textarea | STRING |
time | DATE |
url | STRING |
geolocation | STRING |
データソースの追加
DataWorks で同期タスクを開発する前に、「データソース管理」の指示に従って、必要なデータソースを DataWorks に追加する必要があります。データソースを追加する際に、DataWorks コンソールでパラメーターのツールチップを表示して、パラメーターの意味を理解できます。
Salesforce データソースは、次のいずれかの方法で作成できます。
[公式]: Salesforce 公式 Web サイトにログインして、Salesforce エンドポイントを自動的に取得し、データソースを作成します。
[カスタム]: DataWorks の専用接続認証情報を設定するには、[カスタム] モードを使用して [Salesforce] データソースを構成します。Salesforce システムにログインし、[接続アプリケーション] を作成して、セキュリティ認証情報 ([コンシューマーキー] と [コンシューマーシークレット]) を取得する必要があります。これらの認証情報は、DataWorks への接続権限を付与します。次の手順では、構成方法について説明します。
カスタムパターンデータソースの構成
Salesforce はサードパーティのサービスです。リソースグループにアタッチされている VPC ネットワークが Salesforce プラットフォームに接続できることを確認してください。そうでない場合、データソースは作成できません。
データ同期タスクの開発
同期タスクの構成のエントリポイントと手順については、次の構成ガイドをご参照ください。
単一テーブルのデータを同期するためのバッチ同期タスクの構成
構成手順の詳細については、「コードレス UI での構成」および「コードエディタでの構成」をご参照ください。
コードエディタのすべてのパラメーターとコードサンプルについては、「付録: スクリプトのデモとパラメーターの説明」をご参照ください。
付録: スクリプトのデモとパラメーターの説明
コードエディタを使用したバッチ同期タスクの構成
コードエディタを使用してバッチ同期タスクを構成する場合、統一されたスクリプト形式の要件に基づいて、スクリプト内の関連パラメーターを構成する必要があります。詳細については、「コードエディタでタスクを構成する」をご参照ください。次の情報では、コードエディタを使用してバッチ同期タスクを構成する際に、データソースに対して構成する必要があるパラメーターについて説明します。
Reader スクリプトのデモ
例 1: Salesforce オブジェクトのクエリ
{
"type":"job",
"version":"2.0",
"steps":[
{
"stepType":"salesforce",
"parameter":{
"datasource":"",
"serviceType": "sobject",
"table": "Account",
"beginDateTime": "20230817184200",
"endDateTime": "20231017184200",
"where": "",
"column": [
{
"type": "STRING",
"name": "Id"
},
{
"type": "STRING",
"name": "Name"
},
{
"type": "BOOL",
"name": "IsDeleted"
},
{
"type": "DATE",
"name": "CreatedDate"
}
]
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"
},
"speed":{
"throttle":true,
"concurrent":1,
"mbps":"12"
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}例 2: Bulk API 1.0 を使用した Salesforce オブジェクトのクエリ
{
"type":"job",
"version":"2.0",
"steps":[
{
"stepType":"salesforce",
"parameter":{
"datasource":"",
"serviceType": "bulk1",
"table": "Account",
"beginDateTime": "20230817184200",
"endDateTime": "20231017184200",
"where": "",
"blockCompoundColumn":true,
"bulkQueryJobTimeoutSeconds":86400,
"column": [
{
"type": "STRING",
"name": "Id"
},
{
"type": "STRING",
"name": "Name"
},
{
"type": "BOOL",
"name": "IsDeleted"
},
{
"type": "DATE",
"name": "CreatedDate"
}
]
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{
"print": true
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"
},
"speed":{
"concurrent":1
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}例 3: Bulk API 2.0 を使用した Salesforce オブジェクトのクエリ
{
"type":"job",
"version":"2.0",
"steps":[
{
"stepType":"salesforce",
"parameter":{
"datasource":"",
"serviceType": "bulk2",
"table": "Account",
"beginDateTime": "20230817184200",
"endDateTime": "20231017184200",
"where": "",
"blockCompoundColumn":true,
"bulkQueryJobTimeoutSeconds":86400,
"column": [
{
"type": "STRING",
"name": "Id"
},
{
"type": "STRING",
"name": "Name"
},
{
"type": "BOOL",
"name": "IsDeleted"
},
{
"type": "DATE",
"name": "CreatedDate"
}
]
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"
},
"speed":{
"throttle":true,
"concurrent":1,
"mbps":"12"
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}例 4: SOQL クエリ文の使用
{
"type":"job",
"version":"2.0",
"steps":[
{
"stepType":"salesforce",
"parameter":{
"datasource":"",
"serviceType": "query",
"query": "select Id, Name, IsDeleted, CreatedDate from Account where Name!='Aliyun' ",
"column": [
{
"type": "STRING",
"name": "Id"
},
{
"type": "STRING",
"name": "Name"
},
{
"type": "BOOL",
"name": "IsDeleted"
},
{
"type": "DATE",
"name": "CreatedDate"
}
]
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"
},
"speed":{
"throttle":true,
"concurrent":1,
"mbps":"12"
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Reader スクリプトのパラメーター
パラメーター | 必須 | 説明 | デフォルト値 |
datasource | はい | データソースの名前。追加されたデータソースの名前と同じである必要があります。コードエディタを使用してデータソースを追加できます。 | なし |
serviceType | いいえ | 同期モード。有効な値:
| sobject |
table | はい | Salesforce オブジェクト (Account、Case、Group など)。オブジェクトはテーブルと同等です。serviceType パラメーターを sobject、bulk1、または bulk2 に設定した場合、このパラメーターは必須です。 | なし |
beginDateTime | いいえ |
| なし |
endDateTime | いいえ | なし | |
splitPk | いいえ |
| なし |
blockCompoundColumn | いいえ | 複合データ型の列をサポートするかどうかを指定します。serviceType パラメーターを bulk1 または bulk2 に設定した場合、このパラメーターは必須です。有効な値:
| true |
bulkQueryJobTimeoutSeconds | いいえ |
| 86400 |
batchSize | いいえ |
| 300000 |
where | いいえ |
| なし |
query | いいえ |
| なし |
queryAll | いいえ |
| false |
column | はい | 同期する列の名前。JSON 配列で名前を指定します。
| なし |
connectTimeoutSeconds | いいえ |
| 30 |
socketTimeoutSeconds | いいえ |
| 600 |
retryIntervalSeconds | いいえ |
| 60 |
retryTimes | いいえ |
| 3 |





