Я надеюсь, что эта статья спасет всех, кому нужно передавать данные из отдела продаж в MySQL без внешних соединителей, потому что ваше начальство просит вас об этом. Я сам долго страдал, прежде чем нашел простой способ сделать это, так что поехали!

Что вам нужно

  1. Учетная запись Salesforce Lightning (и некоторые знания об объекте salesforce)
  2. Учетные данные MySQL
  3. jsforce установлен с использованием npm (и некоторые знания node.js)
  4. Хороший редактор кода (:

Не волнуйтесь, я вместе с вами пройдусь по частям!

1. Аккаунт Salesforce Lightning

Итак, если вы еще не знаете, Salesforce сохраняет такие элементы, как счета, дела, в объекты. Объекты состоят из поля и имеют тип для каждого поля. Что мы собираемся сделать сегодня, так это импортировать все данные учетных записей в MySQL.

Получите токен безопасности

Маркер безопасности позже понадобится для подключения к Salesforce с помощью node.js.

Теперь, когда эта часть сделана, перейдем к mySQL.

2. Учетные данные MySQL

Если вы сейчас используете mySQL, вы будете знать, что есть имя пользователя и пароль, а также хост. Таким образом, вам понадобится эта информация для подключения к вашей учетной записи + базе данных, к которой вы хотите подключиться.

Вам нужно будет зайти в MySQL, щелкнуть по базе данных

Затем в раскрывающемся списке вы нажимаете на управление подключениями.

для просмотра параметров подключения.

Теперь давайте создадим новую базу данных test_db, используя «create database test_db», а затем «создадим значения таблицы test_table (где мы будем хранить test_table для загрузки данных Salesforce.

3. Скрипт Node js

Создайте каталог по вашему выбору и выполните npm init, чтобы настроить все необходимые файлы. Вам необходимо установить npm, если у вас его нет!

Теперь создайте файл config.js, чтобы ввести эти учетные данные.

После этого мы установим jsforce с помощью nps install jsforce.

Теперь давайте проведем тестовое подключение к jsforce.

На основе документации с использованием conn.login, conn.login (имя пользователя, пароль + токен безопасности salesforce). После этого вы не сможете получить код ошибки (:

Пришло время собрать все воедино. Идея состоит в том, что мы хотим сначала подключиться к mySQL и убедиться, что он подключен. Затем мы подключимся к salesforce и будем использовать оболочку jsforce для запроса данных, например, с помощью языка SQL, а затем импортировать их в mySQL (:

var jsforce = require('jsforce')
var connection = require('./config.js')
connection.connect(function (err) {
if (err) {
return console.error('error:' + err.message);
}
//console.log('Connected to MySQL');
var conn = new jsforce.Connection({
});
// password + security token
conn.login('<login email>', '<password + security token>', function (err, userInfo) {
if (err) { return console.error(err); }
// Now you can get the access token and instance URL information.
// Save them to establish connection next time.
//console.log(conn.accessToken);
//console.log(conn.instanceUrl);
// logged in user property
//console.log("User ID: " + userInfo.id);
//console.log("Org ID: " + userInfo.organizationId);
var records = []
var query = conn.query("Select Id,Name FROM Account")
.on("record", function (record) {
records.push(record);
console.log(record.Id)
let sql = 'INSERT INTO test_table VALUES (?,?)';
let data = [record.Id, record.Name]
connection.query(sql, data, (err, res, fields) => {
if (err) {
return console.error(err.message);
}
console.log('Rows affected:', res.affectedRows);
})
})
.on("end", function () {
connection.end(function (err) {
if (err) {
return console.log('error:' + err.message);
}
console.log('Close the database connection.');
});
//console.log(records[0].Id);
//console.log("total records is :" + query.totalSize);
//console.log("total fetched is :" + query.totalFetched);
})
.on("error", function (err) {
console.log(err);
})
.run({ autoFetch: true, maxFetch: 4000 });
});
})
//let sql = 'INSERT into test_db VALUES (xxx)  '

С этим у вас должно получиться вот это.

Это не так уж и сложно!

Надеюсь, это так или иначе помогло вам! пожалуйста, поделитесь этим с друзьями, если у вас тоже есть эта проблема!