Общее описание алгоритма импорта:
Из базы биллинга выбирается следующий договор с текстовым полем
= 0 (код поля настраивается, само поле нужно создать в биллинге).Наименование контрагента извлекается из комментария договора биллинга.
Производится поиск в базе контрагентов с названием, включающем в себя название контрагента договора, для всех найденных контрагентов сверяются
(адреса, телефоны, паспортные данные и т.п.). При совпдадении хотя бы одного из подтверждающих параметров контрагент считается установленным.Если в шаге 2 контрагент не найден, то контрегент ищется по расстояние Левенштейна между двумя наименованиями не превышает указанного в конфигурации значения, то контрагент считается установленным. К наименованию контрагента в BGCRM добавляется новый вариант написания через символ пайпа (|). В дальнейшем правильный вариант написания предстоит установить оператору.
, после чего для найденных контрагентов определяется степень несовпадения наименования с наименованием контрагента договора. ЕслиЕсли контрагент не найден при прямом и обратном поиске - создаётся новый контрагент.
К созданному контрагенту привязывается договор, в него импортируются параметры договора.
Для настройки импорта контрагентов из базы договов биллинга добавьте в конфигурацию правила импорта:
bgbilling:creator.confirmParameters=<confirm_params> bgbilling:creator.searchParameters=<search_params> bgbilling:creator.titleDistance=<title_dist> bgbilling:creator.importParameters=<import_params>
Где:
- подтверждающие параметры контрагента, коды через запятую; |
- ключевые параметры контрагента, коды через запятую; |
- максимальное расстояние Левенштейна; |
- импортируемые из договора параметры контрагента. |
Далее одно или несколько правил определения группы контрагента из номера договора:
bgbilling:creator.parameterGroupRule.<id>.paramGroupId=<param_group> # необязательный параметр, если шаблона нет - то группа выставляется всем контрагентам bgbilling:creator.parameterGroupRule.<id>.contractTitlePattern=<title_pattern>
Где:
- уникальный числовой идентификатор правила, правила просматриваются в порядке их идентификаторов; |
группа параметров контрагента; | -
REGEXP выражение, с которым сравнивается номер договора. | -
И для каждого из серверов биллинга записи:
# bgbilling:creator.server.<id>.billingId=<billing_id> bgbilling:creator.server.<id>.user=<user> bgbilling:creator.server.<id>.pswd=<pswd> bgbilling:creator.server.<id>.paramMapping=<mapping> bgbilling:creator.server.<id>.pageSize=<page_size> #
Где:
- уникальный числовой идентификатор; |
идентификатор биллинга; | - строковый
- логин и пароль пользователя биллинга, под которым осуществляется импорт; |
- количество договоров для импорта, выбираемых за один раз; |
- соотношение договоров контрагента и биллинга, разделённые точкой с запятой пары для простых параметров и [ ]: [ ] - для спискового типа. |
При импорте поддерживаются параметры договоров и, соответственно, контрагентов типа: "дата", "текст", "адрес", "телефон", "список". Параметры дата и текст перетирают значение параметра в договора, адрес, телефон и список - дополняют.
Пример конфигурации импорта контрагентов:
# загрузчик контрагентов # дата рожд, адреса услуг, сот. телефон(ы), паспорт с.-н. bgbilling:creator.confirmParameters=73,12,14,74 # поиск по с.-н. паспорта, адресам услуг, сот. телефонам bgbilling:creator.searchParameters=74,12,14 # расстояние по Левинштейну bgbilling:creator.titleDistance=2 # кодовая фр., дата рожд., с.-н. пасп., д.в. пасп., кем выд. пасп, адрес проп., тел. гор, тел. сот, адрес(а) усл. bgbilling:creator.importParameters=72,73,74,75,76,77,78,14,12 # # группа параметров контрагента bgbilling:creator.parameterGroupRule.1.paramGroupId=3 # bgbilling:creator.server.1.billingId=ds bgbilling:creator.server.1.user=bgcrm bgbilling:creator.server.1.pswd=bgcrmv2 bgbilling:creator.server.1.paramMapping=72:456;73:386;74:457;75:458;76:459;77:460;78:401;14:399;12:42;46:378;115[1,2]:421[14575,14576] bgbilling:creator.server.1.pageSize=10 # bgbilling:creator.server.2.billingId=tks bgbilling:creator.server.2.user=bgcrm bgbilling:creator.server.2.pswd=bgcrmv2 bgbilling:creator.server.2.paramMapping=72:95;73:51;74:96;75:97;76:98;77:99;78:59;14:60;12:9,80,83 bgbilling:creator.server.2.pageSize=10
Импорт контрагента можно инициировать вручную в карточке договора, либо настроить в планировщике.
Для настройки импорта контрагента по таймеру добавьте в конфигурацию планировщика класс , например:
scheduler.task.1.class=ru.bgcrm.plugin.bgbilling.creator.CustomerCreator scheduler.task.1.minutes=2,12,22,32,42,52
Мониторить выполнение задачи можно по логам.