Salesforce ofrece software bajo demanda para la gestión de relaciones con clientes (CRM). Este servicio incluye la gestión de contactos, catálogos de productos, pedidos, oportunidades y ventas. La integración de datos de DataWorks admite la lectura desde orígenes de datos de Salesforce. En este tema se describe cómo usar Salesforce como origen de datos.
Tipos de campo compatibles
|
Tipo de campo |
Tipo de DataWorks |
|
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 |
Agregar un origen de datos
Antes de desarrollar una tarea de sincronización en DataWorks, debe agregar el origen de datos necesario a DataWorks siguiendo las instrucciones de Data source configuration. Consulte las descripciones de los parámetros en la consola de DataWorks para comprender su significado al agregar un origen de datos.
Cree un origen de datos de Salesforce mediante uno de los siguientes métodos:
Salesforce official: inicie sesión en el sitio web de Salesforce para obtener automáticamente la URL de acceso y crear un origen de datos.
-
Customize: si desea establecer credenciales de conexión dedicadas para DataWorks, configure el origen de datos de Salesforce en el modo Customize. Inicie sesión en Salesforce y cree una Connected App para obtener las credenciales de seguridad (Consumer Key y Consumer Secret), lo cual otorga autorización de conexión a DataWorks. El procedimiento de configuración es el siguiente:
Configuración personalizada
Salesforce es un servicio de terceros. Asegúrese de que la VPC de su resource group pueda conectarse a la plataforma de Salesforce. De lo contrario, no podrá crear el origen de datos.
Tareas de sincronización de datos
Para obtener información sobre el punto de entrada y el procedimiento para configurar una tarea de sincronización, consulte las siguientes guías de configuración.
Tarea de sincronización sin conexión de tabla única
Consulte Configuring in wizard mode y Configuring in script mode para ver las instrucciones.
El Appendix: Script demo and parameter descriptions proporciona una lista completa de parámetros y una demostración de script para el modo de script.
Apéndice: demostraciones de scripts y parámetros
Configurar una tarea de sincronización por lotes mediante el editor de código
Si desea configurar una tarea de sincronización por lotes mediante el editor de código, debe configurar los parámetros correspondientes en el script según los requisitos unificados de formato de script. Para obtener más información, consulte Script mode configuration. A continuación se describen los parámetros que debe configurar para los orígenes de datos cuando configura una tarea de sincronización por lotes mediante el editor de código.
Demostraciones de scripts de Reader
Ejemplo 1: consultar un objeto de 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"
}
]
}
}
Ejemplo 2: consulta mediante Bulk API 1.0
{
"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"
}
]
}
}
Ejemplo 3: consulta mediante Bulk API 2.0
{
"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"
}
]
}
}
Ejemplo 4: consulta mediante una instrucción 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"
}
]
}
}
Parámetros del script de Reader
Parámetro | Obligatorio | Descripción | Predeterminado |
datasource | Sí | Nombre del origen de datos. En el modo de script, puede agregar un origen de datos. El valor de este parámetro debe coincidir con el nombre del origen de datos agregado. | Ninguna |
serviceType | No | Modo de sincronización. Valores válidos:
| sobject |
table | Sí | Objeto de Salesforce, similar a un nombre de tabla, como | Ninguna |
beginDateTime | No |
| Ninguna |
endDateTime | No | Ninguna | |
splitPk | No |
| Ninguna |
blockCompoundColumn | No | Especifica el comportamiento cuando se encuentra un tipo de dato compuesto. Este parámetro se usa cuando
| true |
bulkQueryJobTimeoutSeconds | No |
| 86400 |
batchSize | No |
| 300000 |
where | No |
| Ninguna |
query | No |
| Ninguna |
queryAll | No |
| false |
column | Sí | Columnas que desea sincronizar. Especifique las columnas como una matriz JSON.
| Ninguna |
connectTimeoutSeconds | No |
| 30 |
socketTimeoutSeconds | No |
| 600 |
retryIntervalSeconds | No |
| 60 |
retryTimes | No |
| 3 |
Preguntas frecuentes
P: Se produce un error de redireccionamiento HTTP 302 cuando configuro el inicio de sesión de un origen de datos de Salesforce. ¿Cómo soluciono este problema?
R: Compruebe si el nombre de dominio en los campos Login URL y Authentication URL está configurado incorrectamente como sfcrmapps.cn. Las instancias de Salesforce de Alibaba Cloud deben usar *.sfcrmproducts.cn, no *.sfcrmapps.cn. Ambos nombres de dominio son muy similares y se confunden fácilmente.
Ejemplos:
|
URL |
|
|
Incorrecta |
|
|
Correcta |
|
Reemplace el dominio en los campos Login URL y Authentication URL por sfcrmproducts.cn para restablecer el inicio de sesión normal.