Когда на одном из проектов наша команда интегрировала системы Маркетинга и CRM, мы столкнулись с проблемами:
- справочников оказалось очень много, а в системе Маркетинга тяжело их вести;
- вручную делать синхронизацию справочников долго и неудобно;
- возможен сценарий, когда в одной системе появились новые записи, а во второй их не обновили.
Поэтому мы решили разработать собственный инструмент для синхронизации справочников между системами, в котором все будет просто и понятно. Мы добавили в него функцию автоматического обновления всех справочников по фоновому заданию. То есть сделали так, чтобы не проверять синхронизацию каждый раз.
Рассмотрим интерфейс программы (рисунок 1). Он состоит из следующих компонентов (рисунок 1):
1) Дерево − содержит все справочники системы;
2) Область параметров выбора − отображает выбранный справочник;
3) Закладка − содержит два Grid: с настройками справочника и с самим справочником.
Рисунок 1. Интерфейс программы
С помощью инструмента в левой области выбираем справочник, который нужно синхронизировать или обновить. Для примера кликнем по узлу “Физическое лицо” и выберем справочник “Марка автомобиля”. Чтобы выбрать справочник, делаем двойной клик. В области параметров выбора появляется справочник (рисунок 2).
Рисунок 2. Выбранный справочник
Здесь отображается информация об узле, название справочника, его техническое название, тип и размерность. В области есть 4 кнопки (рисунок 3):
1) Найти;
2) Создать;
3) Загрузить;
4) Выгрузить.
Рисунок 3. Область параметров выбора
Рассмотрим функции каждой кнопки.
Кнопка позволяет найти справочник в CRM. Когда мы переносим его в систему Маркетинга, то выполняем синхронизацию справочников. Чтобы найти справочник в CRM-системе, нужно указать источник справочника (таблицу в системе CRM) и нажать на кнопку “Найти” (рисунок 4).
Рисунок 4. Область параметров выбора
В качестве источника данных введем название таблицы “ZTVHL_MODEL_T”. Если в CRM есть такой справочник, то откроется вкладка “Настройка справочника” (рисунок 5).
Рисунок 5. Вкладка настройки справочника
На данной вкладке можно произвести настройку справочника. Здесь мы видим Grid со следующими столбцами:
1) Имя поля – содержит все поля указанного источника данных;
2) Краткое описание – содержит кроткое описание полей;
3) Ключ в виде чекбокса – позволяет установить ключевые поля;
4) Описание в виде чекбокса – позволяет выбрать поле, которое является описанием;
5) Домен в виде чекбокса – позволяет указать, что значение справочника мы будем получать из домена;
6) Константы – позволяет задать постоянные значения для справочника. Например, можно указать, что нам нужны значения только на английском или на английском и русском языке.
Настроим наш справочник. Мы синхронизируем справочник, который называется “Марка автомобиля”, поэтому укажем, что поле ZZVHL_MODEL – “Марка автомобиля” является ключевым полем. Также укажем, что описание будем брать из поля, которое называется DESCRIPTION (рисунок 6).
Рисунок 6. Настройка справочника
Можем задать константы, например, если хотим получать справочник только на английском и русском языке. Для этого полю SPRAS зададим постоянное значение. Нажмем на кнопку в столбце “Константы”. Появляется модальное окно с двумя вкладками: выбрать отдельное значение или выбрать интервалы (рисунок 7).
Рисунок 7. Модальное окно ввода констант
Зададим отдельные значения. Есть привязка к средству поиска, поэтому получаем значения полей из CRM с помощью вызова RFC. Выберем значения EN и RU (рисунок 8).
Рисунок 8. Выбор констант
Чтобы сохранить настройку справочника нажимаем на кнопку “Сохранить”. После этого мы получаем сообщение о том, что настройка сохранена (рисунок 9).
Рисунок 9. Сохранение настройки справочника
Для получения справочника из CRM нужно нажать на кнопку “Начитать”. Для этого переходим на вкладку “Справочник”. Здесь видим, что в справочнике уже имеются данные (рисунок 10).
Рисунок 10. Справочник
Теперь нужно синхронизировать наш справочник со справочником из CRM. Чтобы получить данные из CRM, нажимаем на кнопку “Начитать”. Мы получаем записи справочника из другой системы (рисунок 11).
Рисунок 11. Синхронизация справочника
Здесь мы видим, что в нашем справочнике в Маркетинге не хватает записей. Можем выделить конкретные записи из системы CRM и скопировать их в Маркетинг или выделить сразу все записи и скопировать весь справочник. Если нужно изменить запись или добавить новую, используйте ручной ввод.
Выделим все записи справочника и скопируем их в Маркетинг. Получим следующее (рисунок 12).
Рисунок 12. Результат синхронизации справочника CRM - Маркетинг
Кнопка позволяет создать справочник вручную. Если нам нужно ввести значения справочника, мы можем нажать на кнопку “Создать”. Для этого выбираем справочник, который хотим создать и нажимаем “Создать” (рисунок 13).
Рисунок 13. Создание справочника
Открывается вкладка справочника. Чтобы заполнить его данными, нажимаем на кнопку “Ручной ввод значений” (рисунок 14).
Рисунок 14. Ручной ввод значений справочника
Появляется модальное окно, где можем ввести записи. Добавим несколько записей (рисунок 15).
Рисунок 15. Ввод значений для справочника
Нажимаем на “OK”. Так мы создали записи в нашем справочнике (рисунок 16):
Рисунок 16. Результат ручного ввода значений справочника
При нажатии на эту кнопку можем загрузить справочник из таблицы Excel. Для примера загрузим справочник, который называется “Желаемый способ коммуникации”. В параметрах выбора видим, что у справочника тип данных CHAR с размером 3 (рисунок 17).
Рисунок 17. Параметры выбора справочника
Подготовим таблицу Excel для загрузки с учетом типа данных CHAR и размера 3 (рисунок 18).
Рисунок 18. Таблица Excel для загрузки
Сохраним файл в формате .CSV. Чтобы загрузить таблицы в систему, нажимаем в программе кнопку “Загрузить”. Появляется модальное окно с выбором файла формата .CSV (рисунок 19).
Рисунок 19. Модальное окно выбора файла для загрузки
Выбираем файл, который содержит нашу таблицу. Появляется модальное окно с предложением скопировать все записи из файла или скопировать их выборочно (рисунок 20).
Рисунок 20. Модальное окно выбора файла для загрузки
Выберем “Все записи”, чтобы скопировать весь справочник. Мы получаем следующий результат (рисунок 21):
Рисунок 21. Результат загрузки справочника из файла
Слева представлены данные из нашего файла, справа − данные, скопированные в систему.
С помощью кнопки можно выгрузить справочники из системы в таблицу Excel. Чтобы это сделать, выбираем справочник и нажимаем на кнопку “Выгрузить”.
Допустим, нужно выгрузить справочник для объекта. Для этого кликаем по узлу, который называется “Z объекты”. Дальше выбираем справочник, который мы хотим выгрузить (рисунок 22).
Рисунок 22. Выбор справочника для выгрузки из системы
Выгружаем справочник “Средство коммуникации”. Он содержит 81 запись (рисунок 23).
Рисунок 23. Часть записей справочника
Чтобы выгрузить справочник, нажимаем кнопку “Выгрузить”. Получаем сообщение (рисунок 24).
Рисунок 24. Сообщение о выгрузке справочника
Если мы откроем выгруженный файл, то получим следующий результат (рисунок 24):
Рисунок 25. Результат выгрузки справочника из системы
Таким образом мы выгрузили справочник в таблицу Excel. Мы можем изменить файл или загрузить в другую систему.
Справочники хранятся в 4 таблицах:
1) Z таблица с кодами;
2) Z таблица с описаниями кодов;
3) SAP таблица с кодами;
4) SAP таблица с описаниями кодов.
Мы добавили функционал по созданию запросов, чтобы в каждой системе не перезагружать справочники. Пользователь вводит в запрос все выбранные значения, чтобы перенести их в другие системы.
Для реализации этого функционала мы создали 3 дополнительные кнопки:
1) “Записать в запрос” – записывает выделенные записи в запрос;
2) “Внести все записи” – вносит все записи полей, которые есть в отчете;
3) “Внести избирательно” – вносит записи избирательно. Можно выделить в дереве несколько ветвей и записать их в запрос.
Рассмотрим запись в запрос.
Откроем справочник, выделим 4 записи и нажмем на кнопку “Записать в запрос” (рисунок 26).
Рисунок 26. Запись в запрос выделенных записей
После этого мы получаем сообщение, что запрос создан (рисунок 27).
Рисунок 27. Сообщение о создании запроса
Если вызвать транзакцию SE01 и посмотреть запросы, мы увидим только что созданный запрос (рисунок 28).
Рисунок 28. Созданный запрос
Наш запрос включает один объект, а именно содержимое таблицы. Если мы откроем запрос и таблицу, которую он содержит, то увидим наши 4 записи (рисунок 29).
Рисунок 29. Содержимое запроса
Чтобы внести полностью 1 или несколько справочников в запрос, используем кнопку “Внести избирательно”.
Для примера выделим два справочника “Наличие данных”, “Желаемый способ коммуникации” и запишем их в запрос (рисунок 30).
Рисунок 30. Запись в запрос нескольких справочников
В результате мы получаем сообщение о том, что запрос был создан (рисунок 31).
Рисунок 31. Сообщение о создании запроса
Если мы вызовем транзакцию SE01 и посмотрим на запрос, он будет выглядеть следующим образом (рисунок 32):
Рисунок 32. Созданный запрос
В наш запрос записалось 2 таблицы, которые являются нашими справочниками.
Данный инструмент позволяет просто и удобно ввести справочники в системе и быстро синхронизировать их между системами. Функция загрузки и выгрузки справочников позволяет хранить справочники не только в системе, но и на самом компьютере. Также в нем есть функция автоматического обновления всех справочников по фоновому заданию, что упрощает процесс синхронизации и позволяет не заморачиваться над проверкой синхронности каждый раз.