Добрый день, Коллеги!
Сегодня хотел бы с Вами поделиться интереснейшим продуктом из MS SQL для работы с SF данными.
Продукт DBAmp предоставляет Вам коннектор для подключения к SF и работы с данными, используя всю мощь T-SQL. Да-да, теперь Вы сможете использовать JOIN и выборку всех столбцов через *.
Да, продукт платный, однако стоимость весьма демократична, как для корпоративного сегмента.
О том, как установить и подключить Вашу SF Org к MS SQL серверу, рассказывать я не буду, это более чем детально описано в официальной документации.
Данная утилита имеет два подхода работы с данными: через хранимую процедуру и SQL запросы.
Рассмотрим каждый вариант более детально.
OpenQuery
Первый более привычный для SF разработчика SOQL:
SELECT *
FROM OpenQuery( SALESFORCE ,
'SELECT Account.Name, (SELECT OwnerId FROM Account.Notes) FROM Account' )
В данном примере мы используем встроенную хранимую процедуру OpenQuery. В качестве входящих параметров мы используем:
SALESFORCE - это наше подключение к SF Org. Подключение создается отдельно.
SOQL запрос - это стандартный язык запросов, специфический для Salesforce.
По итогу выбираем все поля из результата выполнения хранимой процедуры.
T-SQL with Specific Database name
Также этот плагин позволяет использовать более привычный SQL
SELECT *
FROM SALESFORCE…Contact
**SALESFORCE…(**да три точки обязательно) - данный префикс означает, что мы отправляем запрос через специальный коннектор, который создает DBAmp
DML
Однако, не выборкой единой мы живем. Данная программа позволяет использовать также DML операции.
Рассмотрим их на примере операции Update.
пример с использованием OpenQuery
Update OpenQuery(SALESFORCE,
'Select Id, AnnualRevenue from Account
where Id=''00130000005ZsG8AAK'' ')
set AnnualRevenue = 4000
И с использованием SQL подхода
Update SALESFORCE…Account
Set AnnualRevenue = 4000
Where Id='00130000005ZsG8AAK'
Таким образом, вы можете работать с данными из SF org в Вашем MS SQL сервере, делать backup, миграции, доставать любую аналитику и сохранять это всё добро в любимый всеми финансистами EXCEL.
Bulk DML
Также этот продукт позволяет обновлять или добавлять двнных большого объема.
Если мы хотим это сделать, для начала нам нужно подготовить таблицу с данными.
Название таблицы обязательно должно начинаться с названия объекта, к которому относятся наши данные. Для примера возьмем объект Account, в таком случае название таблицы будет следующим Account_Load. Вместо Load может быть что угодно.
После создания таблицы, нам нужно создать поля для наших данных. Минимальный набор для обновления/вставки данных состоит из следующих полей:
- Id nchar(18) - поле для SF Id, в случае insert поле оставляем пустым
- Name nvarchar(80) - обязательно поле имени для каждого объекта
- Error nvarchar(255) - результат выполнения вставки/обновления в виде ошибки или сообщении об успешнйо вставки конкретной записи,
Для запуска вставки/обновления мы можем использовать следующие команды:
Exec SF_BulkOps 'Insert', 'SALESFORCE', 'Account_Load'
or
Exec SF_BulkOps 'Update', 'SALESFORCE', 'Account_Load'
В процессе выполнения обязательно заполняется поле Error, а также в случае INSERT заполняется поле Id.
Собственно, вот такое весьма интересное решение для работы с SF данными.