Настройка

Для первичной конвертации адресных справочников из базы BGBilling вы можете использовать BASH скрипт bgbilling_dump_address.sh Он создаёт дамп таблиц, пригодный для заливки в базу BGERP. При этом создаётся временная база данных. Загрузите скрипт, при необходимости скорректируйте в нём указанные ниже параметры.

# PzdcDoc snippet of: 'bgbilling_dump_address.sh', lines: 3 - 9

BASE="bgbilling"
HOST="127.0.0.1"
LOGIN="root"
PSWD=""

# can be cp1251 for old BGBilling versions
SRC_CHARSET="utf8"

Далее выполните на машине с mysql клиентом и доступом к mysql серверу биллинга (проще всего выполнить непосредственно на сервере БД биллинга). Скрипт создаёт временную базу _bg_address_tables, структура таблиц которой идентична таблицам BGERP. Далее в эту временную базу переносится информация адресных справочников, снимается дамп и преобразуется кодировка дампа.

Полученный дамп можно применить к БД BGERP, например так:

mysql bgcrm -ubgcrm -pcrm --default-character-set=utf8 < address_data.sql
На начальном этапе настройки, либо если адресный справочник удобнее вести в единственном биллинге - настройте периодическое выполнение скрипта первичного переноса адресов.

После первичной загрузки данных возможна настройка синхронизации справочников биллинга с адресными справочниками BGERP. При этом правка справочника будет происходить только в BGERP, а биллинг будет лишь получать обновления. Для этого следует настроить в BGBilling задачу планировщика "Обновление адресного справочника", запретить с помощью прав изменение справочников в BGBilling.

address sync task

В параметрах задачи укажите:

url=http://<CRM_IP_PORT>/getUpdatedAddressObjects?city=<CITY_CODES>

Где:

  • <CRM_IP_PORT> - IP адрес и порт BGERP;

  • <CITY_CODES> - коды городов через запятую.

Пример настройки можно посмотреть на скриншоте.

Отладка

Сделайте несколько явных изменений и обратитесь к CRM в ручном режиме по тому адресу который у вас прописан в настройках задачи.

http://serverip:9088/getUpdatedAddressObjects?city=1,2,3,4&time=1427791348291

Где time взять из БД запросом:

SELECT value FROM setup WHERE id='address.time'

Посмотрите данные в XML ответе, описаны ли изменения.