O Salesforce oferece software sob demanda para gerenciamento de relacionamento com clientes (CRM), incluindo gerenciamento de contatos, catálogos de produtos, gerenciamento de pedidos, gerenciamento de oportunidades e gerenciamento de vendas. A integração de dados do DataWorks suporta leitura de fontes de dados do Salesforce. Este tópico descreve como usar o Salesforce como uma fonte de dados.
Tipos de campo suportados
|
Tipo de campo |
Tipo 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 |
Adicionar uma fonte de dados
Antes de desenvolver uma tarefa de sincronização no DataWorks, adicione a fonte de dados necessária ao DataWorks seguindo as instruções em Data source configuration. É possível visualizar as descrições dos parâmetros no console do DataWorks para entender o significado de cada parâmetro ao adicionar uma fonte de dados.
Crie uma fonte de dados do Salesforce de uma das seguintes formas:
Salesforce official: Faça login no site do Salesforce para obter automaticamente a URL de acesso e criar uma fonte de dados.
-
Customize: Para definir credenciais de conexão dedicadas para o DataWorks, configure a fonte de dados Salesforce no modo Customize. Faça login no Salesforce e crie um Connected App para obter as credenciais de segurança (Consumer Key e Consumer Secret), concedendo autorização de conexão ao DataWorks. O procedimento de configuração é o seguinte:
Custom configuration
O Salesforce é um service de terceiros. Certifique-se de que o VPC do seu grupo de recursos possa se conectar à plataforma Salesforce. Caso contrário, não será possível criar a fonte de dados.
Tarefas de sincronização de dados
Para obter informações sobre o ponto de entrada e o procedimento de configuração de uma tarefa de sincronização, consulte os guias de configuração a seguir.
Tarefa de sincronização offline de tabela única
Consulte Configuring in wizard mode e Configuring in script mode para obter instruções.
O Appendix: Script demo and parameter descriptions fornece uma lista completa de parâmetros e um exemplo de script para o modo de script.
Apêndice: Demonstrações de scripts e parâmetros
Configure uma tarefa de sincronização em lote usando o editor de código
Para configurar uma tarefa de sincronização em lote usando o editor de código, defina os parâmetros relacionados no script conforme os requisitos do formato de script unificado. Para mais informações, consulte Script mode configuration. A seguir, são descritos os parâmetros que devem ser configurados para as fontes de dados ao configurar uma tarefa de sincronização em lote pelo editor de código.
Demonstrações de scripts do Reader
Exemplo 1: Consultar um objeto do 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"
}
]
}
}
Exemplo 2: Consulta usando 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"
}
]
}
}
Exemplo 3: Consulta usando 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"
}
]
}
}
Exemplo 4: Consulta usando uma instrução 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 do script do Reader
Parâmetro | Obrigatório | Descrição | Padrão |
datasource | Sim | O nome da fonte de dados. No modo de script, é possível adicionar uma fonte de dados. O valor deste parâmetro deve corresponder ao nome da fonte de dados adicionada. | Nenhum |
serviceType | Não | O modo de sincronização. Valores válidos:
| sobject |
table | Sim | O objeto do Salesforce, equivalente a um nome de tabela, como | Nenhum |
beginDateTime | Não |
| Nenhum |
endDateTime | Não | Nenhum | |
splitPk | Não |
| Nenhum |
blockCompoundColumn | Não | Define o comportamento quando um tipo de dado composto é encontrado. Este parâmetro é aplicável quando
| true |
bulkQueryJobTimeoutSeconds | Não |
| 86400 |
batchSize | Não |
| 300000 |
where | Não |
| Nenhum |
query | Não |
| Nenhum |
queryAll | Não |
| false |
column | Sim | As colunas a sincronizar. Especifique-as como um array JSON.
| Nenhum |
connectTimeoutSeconds | Não |
| 30 |
socketTimeoutSeconds | Não |
| 600 |
retryIntervalSeconds | Não |
| 60 |
retryTimes | Não |
| 3 |
Perguntas Frequentes
P: Ocorre um erro de redirecionamento HTTP 302 ao configurar o login de uma fonte de dados do Salesforce. Como solucionar esse problema?
R: Verifique se o nome de domínio nos campos Login URL e Authentication URL foi definido incorretamente como sfcrmapps.cn. As instâncias do Salesforce na Alibaba Cloud devem usar *.sfcrmproducts.cn, e não *.sfcrmapps.cn. Os dois nomes de domínio são muito parecidos e podem ser facilmente confundidos.
Exemplos:
|
URL |
|
|
Incorreto |
|
|
Correto |
|
Substitua o domínio nos campos Login URL e Authentication URL por sfcrmproducts.cn para restaurar o login normal.