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访问地址信息,创建数据源。
自定义:通过指定您自己部署的Connected App的Consumer Key和Consumer Secret,自动获取Salesforce访问地址,创建数据源。
自定义模式数据源配置方式
数据同步任务开发
数据同步任务的配置入口和通用配置流程可参见下文的配置指导。
单表离线同步任务配置指导
操作流程请参见通过向导模式配置离线同步任务、通过脚本模式配置离线同步任务。
脚本模式配置的全量参数和脚本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 |