Salesforce提供按需定製的軟體服務,這些服務涉及客戶關係管理的各個方面,例如從普通的連絡人管理、產品目錄到訂單管理、機會管理、銷售管理等。DataWorksData Integration支援讀取Salesforce類型的資料來源,本文為您介紹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官網自動擷取Salesforce訪問地址資訊,建立資料來源。
-
自定:如您希望為DataWorks設定專用的串連憑證,可以通過自定模式配置Salesforce資料來源。您需要登入Salesforce系統,建立Connected App以擷取安全憑證(Consumer Key和Consumer Secret),使DataWorks獲得串連授權。配置方式如下:
自訂模式資料來源配置方式
Salesforce為第三方服務,請確保資源群組綁定的VPC網路與該平台之間的連通性,否則資料來源建立失敗。
資料同步任務開發
資料同步任務的配置入口和通用配置流程可參見下文的配置指導。
單表離線同步任務配置指導
-
指令碼模式配置的全量參數和指令碼Demo請參見下文的附錄:指令碼Demo與參數說明。
附錄:指令碼Demo與參數說明
離線任務指令碼配置方式
如果您配置離線任務時使用指令碼模式的方式進行配置,您需要按照統一的指令碼格式要求,在任務指令碼中編寫相應的參數,詳情請參見指令碼模式配置,以下為您介紹指令碼模式下資料來源的參數配置詳情。
Reader指令碼Demo
案例1:查詢Salesforce Object
{
"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 API1.0查詢Salesforce Object
{
"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 API2.0查詢Salesforce Object
{
"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 Object,和表名類似,例如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 |