Salesforce propose des logiciels à la demande pour la gestion de la relation client (CRM), notamment la gestion des contacts, les catalogues de produits, la gestion des commandes, la gestion des opportunités et la gestion des ventes. L'intégration de données de DataWorks prend en charge la lecture depuis des sources de données Salesforce. Cette rubrique décrit comment utiliser Salesforce comme source de données.
Types de champs pris en charge
|
Type de champ |
Type 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 |
Ajouter une source de données
Avant de développer une tâche de synchronisation dans DataWorks, vous devez ajouter la source de données requise à DataWorks en suivant les instructions fournies dans Configuration des sources de données. Vous pouvez consulter les descriptions des paramètres dans la console DataWorks pour comprendre la signification des paramètres lors de l'ajout d'une source de données.
Vous pouvez créer une source de données Salesforce de l'une des manières suivantes :
Salesforce official : Connectez-vous au site web Salesforce pour obtenir automatiquement l'URL d'accès et créer une source de données.
-
Customize : Si vous souhaitez définir des identifiants de connexion dédiés pour DataWorks, vous pouvez configurer la source de données Salesforce en mode Customize. Vous devez vous connecter à Salesforce et créer une Connected App afin d'obtenir les identifiants de sécurité (Consumer Key et Consumer Secret), qui accordent une autorisation de connexion à DataWorks. La procédure de configuration est la suivante :
Configuration personnalisée
Salesforce est un service tiers. Assurez-vous que le VPC de votre groupe de ressources peut se connecter à la plateforme Salesforce. Dans le cas contraire, vous ne pourrez pas créer la source de données.
Tâches de synchronisation de données
Pour obtenir des informations sur le point d'entrée et la procédure de configuration d'une tâche de synchronisation, consultez les guides de configuration suivants.
Tâche de synchronisation hors ligne à table unique
Consultez Configuration en mode Assistant et Configuration en mode Script pour obtenir des instructions.
L'Annexe : Démo de script et descriptions des paramètres fournit une liste complète des paramètres ainsi qu'une démo de script pour le mode Script.
Annexe : Démonstrations de scripts et paramètres
Configurer une tâche de synchronisation par lots à l'aide de l'éditeur de code
Pour configurer une tâche de synchronisation par lots via l'éditeur de code, vous devez définir les paramètres appropriés dans le script, conformément aux exigences du format de script unifié. Pour plus d'informations, consultez la section Configuration en mode script. Les informations suivantes détaillent les paramètres obligatoires pour les sources de données lors de la configuration d'une telle tâche.
Exemples de scripts Reader
Exemple 1 : Interroger un objet 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"
}
]
}
}
Exemple 2 : Interrogation via 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"
}
]
}
}
Exemple 3 : Interrogation via 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"
}
]
}
}
Exemple 4 : Interrogation à l'aide d'une instruction 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"
}
]
}
}
Paramètres du script Reader
Paramètre | Obligatoire | Description | Valeur par défaut |
datasource | Oui | Le nom de la source de données. En mode script, vous pouvez ajouter une source de données. La valeur de ce paramètre doit correspondre au nom de la source de données ajoutée. | Aucune |
serviceType | Non | Le mode de synchronisation. Valeurs possibles :
| sobject |
table | Oui | L'objet Salesforce, similaire à un nom de table, tel que | Aucune |
beginDateTime | Non |
| Aucune |
endDateTime | Non | Aucune | |
splitPk | Non |
| Aucune |
blockCompoundColumn | Non | Spécifie le comportement lorsqu'un type de données composite est rencontré. Ce paramètre est utilisé lorsque
| true |
bulkQueryJobTimeoutSeconds | Non |
| 86400 |
batchSize | Non |
| 300000 |
where | Non |
| Aucune |
query | Non |
| Aucune |
queryAll | Non |
| false |
column | Oui | Colonnes à synchroniser. Spécifiez les colonnes sous forme de tableau JSON.
| Aucune |
connectTimeoutSeconds | Non |
| 30 |
socketTimeoutSeconds | Non |
| 600 |
retryIntervalSeconds | Non |
| 60 |
retryTimes | Non |
| 3 |
FAQ
Q : Une erreur de redirection HTTP 302 se produit lors de la configuration de la connexion à une source de données Salesforce. Comment résoudre ce problème ?
R : Vérifiez si le nom de domaine dans les champs Login URL et Authentication URL est incorrectement défini sur sfcrmapps.cn. Les instances Alibaba Cloud Salesforce doivent utiliser *.sfcrmproducts.cn, et non *.sfcrmapps.cn. Ces deux noms de domaine se ressemblent beaucoup et sont facilement confondus.
Exemples :
|
URL |
|
|
Incorrect |
|
|
Correct |
|
Remplacez le domaine dans les champs Login URL et Authentication URL par sfcrmproducts.cn pour rétablir la connexion normale.