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

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
(Примечание)
(Первичная настройка)
 
(5 промежуточных версий не показаны.)
Строка 1: Строка 1:
-
'''Внимание . Все описанное ниже актуально для версий младше 6.1. Для версий с 6.1  задачу надо добавлять по другому. Статью необходимо поправить'''
+
== Первичная настройка ==
-
Для первичной конвертации адресных справочников из базы BGBilling версии 5.1 - 5.2 вы можете использовать BASH скрипт [[Файл:BGBilling_dump_address.sh]].
+
Для первичной конвертации адресных справочников из базы BGBilling версии 5.1 - 7.0 вы можете использовать BASH скрипт [[Файл:BGBilling_dump_address.sh]].
Скрипт создаёт дамп таблиц, пригодный для заливки в базу BGCRM. При этом создаётся временная база данных.
Скрипт создаёт дамп таблиц, пригодный для заливки в базу BGCRM. При этом создаётся временная база данных.
-
Загрузите скрипт, при необходимости скорректируйте в нём параметры:
+
Загрузите скрипт, при необходимости скорректируйте в нём указанные ниже параметры. Для BGBilling с версии 6.2 и выше SRC_CHARSET должен быть установлен в utf8.
<pre>
<pre>
BASE="bgbilling"
BASE="bgbilling"
Строка 28: Строка 28:
</pre>
</pre>
-
После первичной загрузки данных возможна настройка синхронизации справочников биллинга с адресными справочниками BCRM.
+
После первичной загрузки данных возможна настройка синхронизации справочников биллинга с адресными справочниками BGCRM.
 +
 
 +
При этом правка справочника будет происходить _только_ в BGCRM, а биллинг будет лишь получать обновления. На начальном этапе настройки, либо если адресный справочник удобнее вести в единственном биллинге - просто настройте периодическое выполнение скрипта первичного переноса адресов.
 +
 
Для этого следует настроить в BGBilling задачу планировщика "Обновление адресного справочника", запретить с помощью прав изменение справочников в BGBilling.
Для этого следует настроить в BGBilling задачу планировщика "Обновление адресного справочника", запретить с помощью прав изменение справочников в BGBilling.
-
Если задачи нет в планировщике, добавьте её запросом в SQL редакторе:
+
Если задачи нет в планировщике (версия биллинга младше 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" );
Строка 48: Строка 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-ке, описаны ли изменения.

Личные инструменты