Синхронизация справочников

Синхронизация справочников













Разработчик АтлантКонсалт Доминик Кузьмицкий делится опытом, как избежал ручной синхронизации справочников с помощью инструмента, который автоматизировал процесс. Разберем функции инструмента на примере синхронизации систем SAP Marketing и SAP CRM.


Когда на одном из проектов наша команда интегрировала системы Маркетинга и CRM, мы столкнулись с проблемами:

- справочников оказалось очень много, а в системе Маркетинга тяжело их вести;

- вручную делать синхронизацию справочников долго и неудобно;

- возможен сценарий, когда в одной системе появились новые записи, а во второй их не обновили.

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

Рассмотрим интерфейс программы (рисунок 1). Он состоит из следующих компонентов (рисунок 1):

1)      Дерево − содержит все справочники системы;

2)      Область параметров выбора − отображает выбранный справочник;

3)      Закладка − содержит два Grid: с настройками справочника и с самим справочником.


Рис 1.pngРисунок 1. Интерфейс программы


С помощью инструмента в левой области выбираем справочник, который нужно синхронизировать или обновить. Для примера кликнем по узлу “Физическое лицо” и выберем справочник “Марка автомобиля”. Чтобы выбрать справочник, делаем двойной клик.  В области параметров выбора появляется справочник (рисунок 2).


Рис 2.pngРисунок 2. Выбранный справочник


Здесь отображается информация об узле, название справочника, его техническое название, тип и размерность. В области есть 4 кнопки (рисунок 3):

1)      Найти;

2)      Создать;

3)      Загрузить;

4)      Выгрузить.


Рис 3.pngРисунок 3. Область параметров выбора


Рассмотрим функции каждой кнопки.

1) Кнопка “Найти”

Кнопка позволяет найти справочник в CRM. Когда мы переносим его в систему Маркетинга, то выполняем синхронизацию справочников.  Чтобы найти справочник в CRM-системе, нужно указать источник справочника (таблицу в системе CRM) и нажать на кнопку “Найти” (рисунок 4).


Рис 4.pngРисунок 4. Область параметров выбора


В качестве источника данных введем название таблицы “ZTVHL_MODEL_T”. Если в CRM есть такой справочник, то откроется вкладка “Настройка справочника” (рисунок 5).


Рис 5.pngРисунок 5. Вкладка настройки справочника


На данной вкладке можно произвести настройку справочника. Здесь мы видим Grid со следующими столбцами:

1)      Имя поля – содержит все поля указанного источника данных;

2)      Краткое описание – содержит кроткое описание полей;

3)      Ключ в виде чекбокса – позволяет установить ключевые поля;

4)      Описание в виде чекбокса – позволяет выбрать поле, которое является описанием;

5)      Домен в виде чекбокса – позволяет указать, что значение справочника мы будем получать из домена;

6)      Константы – позволяет задать постоянные значения для справочника. Например, можно указать, что нам нужны значения только на английском или на английском и русском языке.

Настроим наш справочник. Мы синхронизируем справочник, который называется “Марка автомобиля”, поэтому укажем, что поле ZZVHL_MODEL – “Марка автомобиля” является ключевым полем. Также укажем, что описание будем брать из поля, которое называется DESCRIPTION (рисунок 6).  


Рис 6.pngРисунок 6. Настройка справочника


Можем задать константы, например, если хотим получать справочник только на английском и русском языке. Для этого полю SPRAS зададим постоянное значение. Нажмем на кнопку в столбце “Константы”. Появляется модальное окно с двумя вкладками: выбрать отдельное значение или выбрать интервалы (рисунок 7).


Рис 7.pngРисунок 7. Модальное окно ввода констант


Зададим отдельные значения. Есть привязка к средству поиска, поэтому получаем значения полей из CRM с помощью вызова RFC. Выберем значения EN и RU (рисунок 8).


Рис 8.pngРисунок 8. Выбор констант


Чтобы сохранить настройку справочника нажимаем на кнопку “Сохранить”. После этого мы получаем сообщение о том, что настройка сохранена (рисунок 9).


Рис 9.pngРисунок 9. Сохранение настройки справочника


Для получения справочника из CRM нужно нажать на кнопку “Начитать”.  Для этого переходим на вкладку “Справочник”. Здесь видим, что в справочнике уже имеются данные (рисунок 10).  


Рис 10.png

Рисунок 10. Справочник


Теперь нужно синхронизировать наш справочник со справочником из CRM. Чтобы получить данные из CRM, нажимаем на кнопку “Начитать”. Мы получаем записи справочника из другой системы (рисунок 11).


Рис 11.png

Рисунок 11. Синхронизация справочника


Здесь мы видим, что в нашем справочнике в Маркетинге не хватает записей. Можем выделить конкретные записи из системы CRM и скопировать их в Маркетинг или выделить сразу все записи и скопировать весь справочник. Если нужно изменить запись или добавить новую, используйте ручной ввод.

Выделим все записи справочника и скопируем их в Маркетинг. Получим следующее (рисунок 12).


Рис 12.pngРисунок 12. Результат синхронизации справочника CRM - Маркетинг


2)  Кнопка “Создать”

Кнопка позволяет создать справочник вручную. Если нам нужно ввести значения справочника, мы можем нажать на кнопку “Создать”. Для этого выбираем справочник, который хотим создать и нажимаем “Создать” (рисунок 13).


Рис 13_2.png

Рисунок 13. Создание справочника


Открывается вкладка справочника. Чтобы заполнить его данными, нажимаем на кнопку “Ручной ввод значений” (рисунок 14).


Рис 14.pngРисунок 14. Ручной ввод значений справочника


Появляется модальное окно, где можем ввести записи. Добавим несколько записей (рисунок 15).


Рис 15.png

Рисунок 15. Ввод значений для справочника


Нажимаем на “OK”. Так мы создали записи в нашем справочнике (рисунок 16):


Рис 16.pngРисунок 16. Результат ручного ввода значений справочника


3) Кнопка “Загрузить”

При нажатии на эту кнопку можем загрузить справочник из таблицы Excel. Для примера загрузим справочник, который называется “Желаемый способ коммуникации”. В параметрах выбора видим, что у справочника тип данных CHAR с размером 3 (рисунок 17).


Рис 17.pngРисунок 17. Параметры выбора справочника


Подготовим таблицу Excel для загрузки с учетом типа данных CHAR и размера 3 (рисунок 18).


Рис 18.png

Рисунок 18. Таблица Excel для загрузки


Сохраним файл в формате .CSV. Чтобы загрузить таблицы в систему, нажимаем в программе кнопку “Загрузить”. Появляется модальное окно с выбором файла формата .CSV (рисунок 19).


Рис 19.png

Рисунок 19. Модальное окно выбора файла для загрузки


Выбираем файл, который содержит нашу таблицу. Появляется модальное окно с предложением скопировать все записи из файла или скопировать их выборочно (рисунок 20).


Рис 20.png

Рисунок 20. Модальное окно выбора файла для загрузки


Выберем “Все записи”, чтобы скопировать весь справочник. Мы получаем следующий результат (рисунок 21):


Рис 21.pngРисунок 21. Результат загрузки справочника из файла


Слева представлены данные из нашего файла, справа − данные, скопированные в систему.


4) Кнопка “Выгрузить”

С помощью кнопки можно выгрузить справочники из системы в таблицу Excel. Чтобы это сделать, выбираем справочник и нажимаем на кнопку “Выгрузить”.

Допустим, нужно выгрузить справочник для объекта. Для этого кликаем по узлу, который называется “Z объекты”. Дальше выбираем справочник, который мы хотим выгрузить (рисунок 22).


Рис 22.png

Рисунок 22. Выбор справочника для выгрузки из системы


Выгружаем справочник “Средство коммуникации”. Он содержит 81 запись (рисунок 23).


Рис 23.png

Рисунок 23. Часть записей справочника


Чтобы выгрузить справочник, нажимаем кнопку “Выгрузить”. Получаем сообщение (рисунок 24).


Рис 24.pngРисунок 24. Сообщение о выгрузке справочника


Если мы откроем выгруженный файл, то получим следующий результат (рисунок 24):


Рис 25.png

Рисунок 25. Результат выгрузки справочника из системы


Таким образом мы выгрузили справочник в таблицу Excel. Мы можем изменить файл или загрузить в другую систему.


Функционал по записи данных в запрос

Справочники хранятся в 4 таблицах:

1)      Z таблица с кодами;

2)      Z таблица с описаниями кодов;

3)      SAP таблица с кодами;

4)      SAP таблица с описаниями кодов.


Мы добавили функционал по созданию запросов, чтобы в каждой системе не перезагружать справочники. Пользователь вводит в запрос все выбранные значения, чтобы перенести их в другие системы.


Для реализации этого функционала мы создали 3 дополнительные кнопки:

1)      “Записать в запрос” – записывает выделенные записи в запрос;

2)      “Внести все записи” – вносит все записи полей, которые есть в отчете;

3)      “Внести избирательно” – вносит записи избирательно. Можно выделить в дереве несколько ветвей и записать их в запрос.


Рассмотрим запись в запрос.

Откроем справочник, выделим 4 записи и нажмем на кнопку “Записать в запрос” (рисунок 26).


Рис 26.pngРисунок 26. Запись в запрос выделенных записей


После этого мы получаем сообщение, что запрос создан (рисунок 27).


Рис 27.png

Рисунок 27. Сообщение о создании запроса


Если вызвать транзакцию SE01 и посмотреть запросы, мы увидим только что созданный запрос (рисунок 28).


Рис 28.pngРисунок 28. Созданный запрос



Наш запрос включает один объект, а именно содержимое таблицы. Если мы откроем запрос и таблицу, которую он содержит, то увидим наши 4 записи (рисунок 29).


Рис 29.png

Рисунок 29. Содержимое запроса


Чтобы внести полностью 1 или несколько справочников в запрос, используем кнопку “Внести избирательно”.

Для примера выделим два справочника “Наличие данных”, “Желаемый способ коммуникации” и запишем их в запрос (рисунок 30). 


Рис 30.pngРисунок 30. Запись в запрос нескольких справочников


В результате мы получаем сообщение о том, что запрос был создан (рисунок 31).


Рис 31.png

Рисунок 31. Сообщение о создании запроса


Если мы вызовем транзакцию SE01 и посмотрим на запрос, он будет выглядеть следующим образом (рисунок 32):


                                                 Рис 32.png

Рисунок 32. Созданный запрос

В наш запрос записалось 2 таблицы, которые являются нашими справочниками.


Заключение

Данный инструмент позволяет просто и удобно ввести справочники в системе и быстро синхронизировать их между системами. Функция загрузки и выгрузки справочников позволяет хранить справочники не только в системе, но и на самом компьютере. Также в нем есть функция автоматического обновления всех справочников по фоновому заданию, что упрощает процесс синхронизации и позволяет не заморачиваться над проверкой синхронности каждый раз.

Подписаться на рассылку
 * — поля обязательные к заполнению
Подождите немного, идет отправка ...
Пресс-центр Все новости