Salesforce提供按需定制的软件服务,这些服务涉及客户关系管理的各个方面,例如从普通的联系人管理、产品目录到订单管理、机会管理、销售管理等。DataWorks数据集成支持读取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 |