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 にデータソースを追加する必要があります。詳細については、「データソースの追加と管理」をご参照ください。
Salesforce では、次のいずれかの方法でデータソースを追加できます。
Salesforce 公式: Salesforce の公式 Web サイトにログインして、Salesforce のアクセスアドレスを取得します。次に、アクセスアドレスに基づいてデータソースを追加します。
カスタム: 接続アプリケーションの [コンシューマーキー] と [コンシューマーシークレット] を指定して、Salesforce のアクセスアドレスを取得します。次に、アクセスアドレスに基づいてデータソースを追加します。
カスタムモードでデータソースを追加する
単一テーブルのデータを同期するためのバッチ同期タスクの設定
設定手順の詳細については、「コードレス UI を使用したバッチ同期タスクの設定」および「コードエディターを使用したバッチ同期タスクの設定」をご参照ください。
コードエディターを使用してバッチ同期タスクを設定する場合に設定されるすべてのパラメーターと実行されるコードについては、「付録: コードとパラメーター」をご参照ください。
付録: コードとパラメーター
コードエディターを使用したバッチ同期タスクの設定
コードエディターを使用してバッチ同期タスクを設定する場合は、コードエディターの形式要件に基づいて、関連データソースのリーダーのパラメーターを設定する必要があります。形式要件の詳細については、「コードエディターを使用したバッチ同期タスクの設定」をご参照ください。以下の情報は、コードエディターのリーダーのパラメーターの設定の詳細について説明しています。
Salesforce Reader 用コード
例 1: Salesforce オブジェクトのクエリ
{
"type":"job",
"version":"2.0",
"steps":[
{
"stepType":"salesforce",
"parameter":{
"datasource":"", // データソース名
"serviceType": "sobject", // 同期モード
"table": "Account", // Salesforce オブジェクト
"beginDateTime": "20230817184200", // 開始日時
"endDateTime": "20231017184200", // 終了日時
"where": "", // 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", // Bulk API 1.0 を使用
"table": "Account", // Salesforce オブジェクト
"beginDateTime": "20230817184200", // 開始日時
"endDateTime": "20231017184200", // 終了日時
"where": "", // 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", // Bulk API 2.0 を使用
"table": "Account", // Salesforce オブジェクト
"beginDateTime": "20230817184200", // 開始日時
"endDateTime": "20231017184200", // 終了日時
"where": "", // 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: Salesforce Object Query Language (SOQL) ステートメントを実行してデータをクエリする
{
"type":"job",
"version":"2.0",
"steps":[
{
"stepType":"salesforce",
"parameter":{
"datasource":"", // データソース名
"serviceType": "query", // SOQL ステートメントを使用
"query": "select Id, Name, IsDeleted, CreatedDate from Account where Name!='Aliyun' ", // SOQL クエリ
"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"
}
]
}
}
Salesforce 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 |