Синхронизация справочников адресов с BGBilling
Материал из BiTel WiKi
(Новая страница: «Для первичной конвертации адресных справочников из базы BGBilling версии 5.1 - 5.2 вы можете испо…») |
(→Первичная настройка) |
||
(6 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | Для первичной конвертации адресных справочников из базы BGBilling версии 5.1 - | + | == Первичная настройка == |
+ | Для первичной конвертации адресных справочников из базы BGBilling версии 5.1 - 7.0 вы можете использовать BASH скрипт [[Файл:BGBilling_dump_address.sh]]. | ||
Скрипт создаёт дамп таблиц, пригодный для заливки в базу BGCRM. При этом создаётся временная база данных. | Скрипт создаёт дамп таблиц, пригодный для заливки в базу BGCRM. При этом создаётся временная база данных. | ||
- | Загрузите скрипт, при необходимости скорректируйте в нём параметры | + | Загрузите скрипт, при необходимости скорректируйте в нём указанные ниже параметры. Для BGBilling с версии 6.2 и выше SRC_CHARSET должен быть установлен в utf8. |
<pre> | <pre> | ||
BASE="bgbilling" | BASE="bgbilling" | ||
Строка 27: | Строка 28: | ||
</pre> | </pre> | ||
- | После первичной загрузки данных возможна настройка синхронизации справочников биллинга с адресными справочниками | + | После первичной загрузки данных возможна настройка синхронизации справочников биллинга с адресными справочниками BGCRM. |
+ | |||
+ | При этом правка справочника будет происходить _только_ в BGCRM, а биллинг будет лишь получать обновления. На начальном этапе настройки, либо если адресный справочник удобнее вести в единственном биллинге - просто настройте периодическое выполнение скрипта первичного переноса адресов. | ||
+ | |||
Для этого следует настроить в BGBilling задачу планировщика "Обновление адресного справочника", запретить с помощью прав изменение справочников в BGBilling. | Для этого следует настроить в BGBilling задачу планировщика "Обновление адресного справочника", запретить с помощью прав изменение справочников в BGBilling. | ||
- | Если задачи нет в планировщике | + | Если задачи нет в планировщике (версия биллинга младше 6.1) добавьте её запросом в SQL редакторе: |
<pre> | <pre> | ||
INSERT INTO scheduled_class(title, class) VALUES ("Обновление адресного справочника", "ru.bitel.bgbilling.kernel.task.server.TaskUpdateAddressDirectory" ); | INSERT INTO scheduled_class(title, class) VALUES ("Обновление адресного справочника", "ru.bitel.bgbilling.kernel.task.server.TaskUpdateAddressDirectory" ); | ||
Строка 47: | Строка 51: | ||
* '''<city_codes>''' - коды городов через запятую. | * '''<city_codes>''' - коды городов через запятую. | ||
Пример настройки можно посмотреть на скриншоте. | Пример настройки можно посмотреть на скриншоте. | ||
+ | |||
+ | == Отладка == | ||
+ | сделайте несколько явных изменений и обратитесь к crm в ручном режиме по тому адресу который у вас прописан в настройках задачи | ||
+ | <pre> | ||
+ | http://serverip:9088/getUpdatedAddressObjects?city=1,2,3,4&time=1427791348291 | ||
+ | </pre> | ||
+ | где time взять из БД запросом | ||
+ | <pre> | ||
+ | SELECT value FROM setup WHERE id='address.time' | ||
+ | </pre> | ||
+ | Посмотрите данные в xml-ке, описаны ли изменения. |
Текущая версия на 19:17, 31 августа 2016
Первичная настройка
Для первичной конвертации адресных справочников из базы BGBilling версии 5.1 - 7.0 вы можете использовать BASH скрипт Файл:BGBilling dump address.sh. Скрипт создаёт дамп таблиц, пригодный для заливки в базу BGCRM. При этом создаётся временная база данных. Загрузите скрипт, при необходимости скорректируйте в нём указанные ниже параметры. Для BGBilling с версии 6.2 и выше SRC_CHARSET должен быть установлен в utf8.
BASE="bgbilling" HOST="127.0.0.1" LOGIN="root" PSWD="" SRC_CHARSET="cp1251" TARGET_CHARSET="utf8" BASE_TEMP="_bg_address_tables" DUMP_FILE="address_data.sql" COMMAND_SQL="mysql -h$HOST -u$LOGIN -p$PSWD" COMMAND_DUMP="mysqldump -h$HOST -u$LOGIN -p$PSWD --default-character-set=$SRC_CHARSET --skip-set-charset"
Далее выполните на машине с mysql клиентом и доступом к mysql серверу биллинга (проще всего выполнить непосредственно на сервере БД биллинга). Скрипт создаёт временную базу "_bg_address_tables", структура таблиц которой идентична таблицам BGCRM. Далее в эту временную базу переносится информация адресных справочников, снимается дамп и преобразуется кодировка дампа.
Полученный дамп можно применить к БД BGCRM, например так:
mysql bgcrm -ubgcrm -pcrm --default-character-set=utf8 < address_data.sql
После первичной загрузки данных возможна настройка синхронизации справочников биллинга с адресными справочниками BGCRM.
При этом правка справочника будет происходить _только_ в BGCRM, а биллинг будет лишь получать обновления. На начальном этапе настройки, либо если адресный справочник удобнее вести в единственном биллинге - просто настройте периодическое выполнение скрипта первичного переноса адресов.
Для этого следует настроить в BGBilling задачу планировщика "Обновление адресного справочника", запретить с помощью прав изменение справочников в BGBilling.
Если задачи нет в планировщике (версия биллинга младше 6.1) добавьте её запросом в SQL редакторе:
INSERT INTO scheduled_class(title, class) VALUES ("Обновление адресного справочника", "ru.bitel.bgbilling.kernel.task.server.TaskUpdateAddressDirectory" );
В параметрах задачи укажите:
url=http://<CRM_IP_PORT>/getUpdatedAddressObjects?city=<city_codes>
, где:
- <CRM_IP_PORT> - IP адрес и порт BGCRM;
- <city_codes> - коды городов через запятую.
Пример настройки можно посмотреть на скриншоте.
Отладка
сделайте несколько явных изменений и обратитесь к crm в ручном режиме по тому адресу который у вас прописан в настройках задачи
http://serverip:9088/getUpdatedAddressObjects?city=1,2,3,4&time=1427791348291
где time взять из БД запросом
SELECT value FROM setup WHERE id='address.time'
Посмотрите данные в xml-ке, описаны ли изменения.