Документация BILLmanager 6

Принцип работы модуля "Выгрузка для СОРМ"

Статья описывает логику формирования выгружаемых файлов и информацию о данных, которые можно выгружать с помощью модуля. Информация представлена в форме таблиц.

Содержание таблиц:

  • поле — наименование полей выгружаемых справочников;
  • значение — данные, которые будут в файле выгрузки для соответствующих полей справочников. Может содержать:
    • значение поля. Например, ФИО Клиента для справочника Клиенты;
    • объяснение, как будет получено значение поля. Например, как будет получено Имя пользователя для справочника Клиенты;
    • указание источника данных в формате "таблица.поле". Например, значение ИНН для справочника Клиенты будет получено из поля vatnum таблицы БД profile;
  • отслеживается — информация о том, будет ли запись выгружена повторно, если значение объекта изменится;
  • комментарий.

Логика работы модуля

Для каждого выбранного справочника формируется отдельный файл. Файлы выгрузки располагаются в отдельной папке. Если в настройках активна опция Использовать общую папку для всех файлов выгрузки, то все файлы выгрузки будут расположены в общей папке. Необходимые папки будут созданы автоматически при первой выгрузке справочников или при изменении пути в настройках модуля.

Название файла состоит из названия справочника и даты выгрузки, например, payment_2023_06_16_04_14_50. Каждый объект в файле выгружается на новой строке, поля отделяются указанным в настройках разделителем, каждое значение поля берётся в кавычки, например:

Пример содержания файла
"3_19"/"587"/"2023-06-16 03:27:46"/"11750.0000"/"RUB"/"Банковский перевод"/"bank-account=123465789 bank-name=<bank_name>"/"4"/""

"3_19"/"589"/"2023-06-16 04:14:07"/"-1.5000"/"RUB"/"ЮKassa"/""/"4"/""

Объект в файле выгрузки — это строка с данными, например, клиент, платёж и т.д.

Если отсутствует значение для выгрузки, то будет сформирована строка "".

Если в настройках справочника поле выключено, то оно отсутствует в структуре файла. Если выключить все поля справочника, то будет сформирован пустой файл.

Если объект уже выгружался, то при изменении он будет выгружен повторно с новым значением. Например, при изменении статуса платежа или данных клиента.

Если перед выгрузкой объект был несколько раз изменён, то будет выгружено только его последнее значение. Например, у ВМ сменилось три владельца. В выгрузку попадут данные последнего владельца.

Выбор плательщика

Справочник Клиенты

Алгоритм выбора плательщика зависит от опции Выгружать данные отдельно по каждому договору в настройках модуля:

  • опция включена — для каждой пары "клиент-договор" будут созданы отдельные записи, плательщик при этом выбирается из договора;
  • опция выключена — для клиента выбирается последний (по ID) не выключенный плательщик. Если у клиента есть договор на таком плательщике, то будет выгружен он, иначе договор не будет выгружен.

Чтобы включить опцию:

  1. Перейдите в раздел ИнструментыВыгрузка для СОРМ.
  2. Активируйте справочник Выгружать данные клиентов → активируйте опцию Выгружать данные отдельно по каждому договору.

ID клиента формируется по шаблону:

  • "account.id_contract.id" — если опция включена и у клиента есть договор;
  • "account.id" — если опция выключена или договора нет.

Другие справочники

Для других справочников ID клиента формируется аналогично выгрузке, описанной выше. Если включена опция Выгружать данные отдельно по каждому договору, то для формирования ID выбирается последний (по ID) подписанный договор:

  • подписанных договоров нет — будет выбран последний договор;
  • договоры отсутствуют — будет использован шаблон без ID договора — "account.id".

Клиенты

Файл выгрузки формируется на основе данных клиентов, зарегистрированных в BILLmanager у всех провайдеров.

Поле

Значение

Отслеживается

Комментарий

ID клиента

См. описание в разделе Выбор плательщика

Да


ФИО клиента

Контактное лицо

Да


Название юридического лица

profile.name

Да

Для физического лица пустое

ИНН

profile.vatnum

Да


Email

user.email

Да


Имя пользователя

user.name

Будет выбран первый пользователь (по ID) с полными правами. Если таких нет, то первый пользователь

Да


IP регистрации

account.registration_ip

Нет


Стандарт связи абонента

0

Нет

Значение всегда: "не конкретизированный стандарт"

Номер договора

contract.id

Да


Статус клиента

0

Нет

Значение всегда: "клиент подключён"

Дата заключения договора

contract.signdate

Нет


Тип клиента

profile.profiletype != 1

Да

  • 0 - ФЛ
  • 1 - ЮЛ

Дата рождения

profileparam.value, где intname = "passport_birthdate"

Да

Выгружается из данных паспорта

Тип паспортных данных

0

Да

Значение всегда: "структурированные паспортные данные"

Серия паспорта

Первые 4 цифры из profileparam.value, где intname = "passport"

Да


Номер паспорта

Последние 6 цифр из profileparam.value, где intname = "passport"

Да


Дата выдачи паспорта

profileparam.value, где intname = "passport_date"

Да


Кем выдан паспорт

profileparam.value, где intname = "passport_org"

Да


Тип документа

"Паспорт РФ"

Нет


Контактное лицо

profile.person

Да


Контактные телефоны

profile.phone

Да


Тип данных адреса

1

Нет

Значение всегда: "неструктурированный адрес"

Адрес

Формируется из полей таблицы profile

Да


Дата начала интервала, на котором актуальна информация

Для первой выгрузки записи: дата заключения договора

Для последующих: дата выгрузки

Нет


Внутренние пользователи

Файл выгрузки формируется на основе данных пользователей всех клиентов, зарегистрированных в BILLmanager на всех провайдерах.

Поле

Значение

Отслеживается

ID клиента

См. описание в разделе Выбор плательщика

Да

Имя пользователя

user.name

Да

ФИО

user.realname

Да

Номер телефона

user.phone

Да

Дата создания пользователя

Дата первой записи в таблице history_user

Нет

История авторизации пользователей

Содержимое файла выгрузки зависит от опции Option EnableDbAuthlog в конфигурационном файле платформы /usr/local/mgr5/etc/billmgr.conf:

  • если опция есть, то данные берутся из таблицы core_auth_log;
  • если опция отсутствует, то данные берутся из файла /usr/local/mgr5/var/billmgr.auth.log.

Начиная с версии BILLmanager 6.77 фиксируются данные о Сетевом порте и User-agent авторизации. Данные будут фиксироваться только для новых авторизаций, выполненных после обновления платформы до актуальной версии.

Пример:

  • Сетевой порт: 56190;
  • Данные о User-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/114.0.

При первой выгрузке все записи об авторизации считаются новыми, поэтому модуль СОРМ выгрузит их все. В последующие запуски будут выгружены только новые записи авторизации с момента последней выгрузки.

Отслеживаемые поля отсутствуют.

Поле

Алгоритм выгрузки из БД

Алгоритм выгрузки из файла

Дата и время авторизации

core_auth_log.auth_date

Данные до первой табуляции

IP адрес

core_auth_log.ip

Данные от первой табуляции до второй

Сетевой порт

core_auth_log.port

Данные от третьей табуляции до четвёртой

User-agent

core_auth_log.user_agent

Данные от четвёртой табуляции до пятой (или до конца строки, если табуляции нет)

Email

user.email

user.email

Номер телефона

user.phone

user.phone

Платежи

Файл выгрузки формируется на основе данных всех платежей, зарегистрированных в BILLmanager.

Выгрузка производится для всех платежей, включая банковские.

Поле

Значение

Отслеживается

Комментарий

ID клиента

См. описание в разделе Выбор плательщика

Нет


ID платежа

payment.id

Да


Дата и время платежа

payment.createdate

Нет


Сумма платежа

payment.paymethodamount

Нет


Валюта

payment.currency

Нет


Метод оплаты

paymethod.name_ru

Нет


Неструктурированная информация

"bank-account=счёт_абонента bank-name=банк_абонента"

Нет

Только для банковских платежей

Статус

payment.status

Да


Банковские платежи

Файл выгрузки формируется на основе данных всех банковских платежей, зарегистрированных в BILLmanager.

Отслеживаемые поля отсутствуют.

Поле

Значение

ID клиента

См. описание в разделе Выбор плательщика

ID платежа

payment.id

Дата и время платежа

payment.createadate

Сумма платежа

payment.amount

Имя банка

profileparam.value, где intname = "bankname"

Банковский счёт абонента

profileparam.value, где intname = "rs"

IP-адреса

Выгружаются адреса IPv4 и IPv6 из таблицы ip в БД. На момент выгрузки услуга для IP-адреса должна быть открыта или находиться в обработке, а дата окончания услуги должна быть позже даты выгрузки.

Отслеживаемые поля отсутствуют.

Поле

Значение

Комментарий

ID клиента

См. описание в разделе Выбор плательщика


IP-адрес

ip.name


Тип IP-адреса

1

Значение всегда: "публичный адрес"

Дата выдачи

item.opendate


Домены

Выгружаются данные услуг с типом продукта "Домен". На момент выгрузки услуга домена должна быть открыта или находиться в обработке, а дата окончания должна быть позже даты выгрузки.

При первой выгрузке все записи о доменах считаются новыми, поэтому модуль СОРМ выгрузит их все.  В последующие запуски будут выгружены только новые записи авторизации с момента последней выгрузки.

Запись будет выгружена повторно, если изменится владелец услуги или услуга будет выпущена заново.

Отслеживаемые поля отсутствуют.

Поле

Значение

Комментарий

ID клиента

См. описание в разделе Выбор плательщика


Данные административного владельца домена

Формируются из данных таблицы service_profileparam


Данные технического владельца домена

Формируются из данных таблицы service_profileparam


Имя домена

itemparam.value, где intname = "domain"

Значения в punycode не конвертируются к стандартному виду

Регистратор

Имя задаётся в соответствии с processingmodule.module


Дата выдачи

item.opendate


Сообщения из запросов

Выгружаются все сообщения переписки "сотрудник-клиент", кроме резюме, внутренних комментариев и скрытых сообщений.

Если тикет был разделён, сообщения отделённого тикета будут выгружены повторно, начиная с того сообщения, с которого произошло разделение. Остальные изменения не отслеживаются для повторной выгрузки.

Поле

Значение

Наименование запроса

ticket.name

Сообщение

ticket_message.message

Дата сообщения

ticket_message.date_post

Имя пользователя

user.name

ID пользователя

user.id