Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

  1. Из базы биллинга выбирается следующий договор с текстовым полем Код контрагента = 0 (код поля настраивается, само поле нужно создать в биллинге).

  2. Наименование контрагента извлекается из комментария договора биллинга.

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

  4. Если в шаге 2 контрагент не найден, то контрегент ищется по ключевым параметрам, после чего для найденных контрагентов определяется степень несовпадения наименования с наименованием контрагента договора. Если расстояние Левенштейна между двумя наименованиями не превышает указанного в конфигурации значения, то контрагент считается установленным. К наименованию контрагента в BGCRM добавляется новый вариант написания через символ пайпа (|). В дальнейшем правильный вариант написания предстоит установить оператору.

  5. Если контрагент не найден при прямом и обратном поиске - создаётся новый контрагент.

  6. К созданному контрагенту привязывается договор, в него импортируются параметры договора.

Для настройки импорта контрагентов из базы договов биллинга добавьте в конфигурацию правила импорта:

Блок кода
languagejavaruby
linenumbersfalse
bgbilling:creator.confirmParameters=<confirm_params>
bgbilling:creator.searchParameters=<search_params>
bgbilling:creator.titleDistance=<title_dist>
bgbilling:creator.importParameters=<import_params>
bgbilling:creator.importBillingIds=<billing_ids>

Где:

  • <confirm_params> - подтверждающие параметры контрагента, коды через запятую;
  • <search_params> - ключевые параметры контрагента, коды через запятую;
  • <title_dist> - максимальное расстояние Левенштейна;
  • <import_params> - импортируемые из договора параметры контрагента;
  • <billing_ids> - идентификаторы биллингов, из которых запускается импорт, если не указано - каждый запуск в планировщике инициирует импорт для всех биллингов.

...

Блок кода
languageruby
linenumbersfalse
# необязательный параметр, если шаблона нет - то группа выставляется всем контрагентам
bgbilling:creator.parameterGroupRule.<id>.contractTitlePattern=<title_pattern>
#
bgbilling:creator.parameterGroupRule.<id>.paramGroupId=<param_group>
bgbilling:creator.parameterGroupRule.<id>.titlePatternId=<title_pattern_id>

Где:

  • <id> - уникальный числовой идентификатор правила, правила просматриваются в порядке их идентификаторов;
  • <param_group> - группа параметров контрагента;
  • <title_pattern> - REGEXP выражение выражение, с которым сравнивается номер договора;
  • <title_pattern_id> - код шаблона имени контрагента.

...

Блок кода
languageruby
linenumbersfalse
#
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>
#

Где:

  • <id> - уникальный числовой идентификатор;
  • <billing_id> - строковый идентификатор биллинга;
  • <user>, <pswd> - логин и пароль пользователя биллинга, под которым осуществляется импорт;
  • <page_size> - количество договоров для импорта, выбираемых за один раз;
  • <mapping> - соотношение договоров контрагента и биллинга, разделённые точкой с запятой пары <код параметра контрагента>:<код параметра договора> для простых параметров и <код параметра контрагента>[<коды значений спискового параметра через запятую>]:<код параметра договора>[<коды значений спискового параметра через запятую>] - для спискового типа; если маппинг не задан, то код значения спискового параметра будет импортирован "как есть" из биллинга.

Дополнительные необязательные параметры:

Блок кода
languageruby
linenumbersfalse
# 
bgbilling:creator.server.<id>.minCustomerTitleLength=<minTitleLength>
#

Где:

  • <minTitleLength> - мнимально допустимая длина наименования контрагента (комментария договора) с которым будет предпринята попытка импорта, если параметр не указан, то значение по-умолчанию равно 10.

При импорте поддерживаются параметры договоров и, соответственно, контрагентов типа: "дата", "текст", "адрес", "телефон", "список". Параметры дата и текст перетирают значение параметра в договора, адрес, телефон и список - дополняют.

Параметр контрагента типа email может быть импортирован из аналогичного либо текстового параметра биллинга.

Пример конфигурации импорта контрагентов:

...

Для настройки импорта контрагента по таймеру добавьте в конфигурацию планировщика класс ru.bgcrm.plugin.bgbilling.creator.CustomerCreator, например:

Блок кода
languageruby
linenumbersfalse
scheduler.task.1.class=ru.bgcrm.plugin.bgbilling.creator.CustomerCreator
scheduler.task.1.minutes=2,12,22,32,42,52

...

Документация BGCRM 3.0