Просмотр Исходного

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

h3. Первичные настройки
Для настройки отчётов *СОРМ* необходимо перейти в раздел *Управление абонентами и тарифами - Оборудование - Настройки СОРМ*. Если до этого Вы ещё не проводили данные настройки - будет открыто окно Мастера создания СОРМ. В нем будет предложено заполнить только название и схему. Если в списке схем нет необходимой для Вас схемы - Вы можете выбрать пользовательскую схему и настроить её под Ваши требования.
Все логи по данному функционалу находятся в файле */var/log/sorm.log*

!master_sorm.png|border=1!

h3. Основные настройки


!sorm.png|border=1!

После выбора схемы и нажатия кнопки *Сохранить* биллинг автоматически создаст в БД все настройки для данной схемы, такие как:

*Разделитель.* Разделитель будет общим на все отчёты, которые будут созданы в рамках этой схемы. Пример разделителя *;*(точка с запятой)

*Формат даты.* Формат даты будет общим для всех отчётов, которые будут создан в рамках это схемы. Он будет распространяться на *все* поля, которые можно распознать как дату.
Пример формата даты *%Y-%m-%d %H:%M:%S*
В данном случае:
%Y - год
%m - месяц
%d - день
%H - час
%M - минута
%S - секунда
Вы можете настроить любой формат даты, используя эти переменные

*Поля в кавычках.* Если данная опция выставлена - биллинг автоматически обернет каждое отдельное поле из отчёта в двойные кавычки.

*Кодировка.* utf-8 или cp1251. Файлы, выгружаемые на ftp или доступные для скачивания будут иметь указанную кодировку. Кодировка распространяется на все отчёты.

Так же на основной странице доступны кнопки *Установить настройки схемы* и *Подготовить отчёты*.
Кнопка *Установить настройки схемы* заменяет все текущие настройки из списка на стандартные, которые соответствуют выбранной схеме
Кнопка *Подготовить отчёты* удаляет все текущие отчёты и создает новые стандартные, которые соответствуют выбранной схеме

h3. Список отчётов

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


!sorm_reports.png|border=1!

h3. Настройки отчётов
Каждый отчёт содержит в себе имя, SQL запрос и набор настроек.

!main_settings_sorm.png|border=1!
!extened_settings_sorm.png|border=1!

{info}Внимание: при составлении SQL отчёта обязательно добавляйте последним полем *уникальный ключ* для этого отчёта. *Уникальный ключ* при этом может быть составным, например abonent_id:user_id c помощью операции конкатенации. Последнее поле никогда не будет выгружено в окончательной выгрузке и нужно только для того, чтобы в будущем формировать периодические выгрузки. Добавляйте *уникальный ключ* даже тогда, когда периодические выгрузки нужно выгружать всегда целиком, т.к. последнее поле всегда не будет попадать в выгрузку{info}
1)*Период выгрузки*. Определяет интервал, через который будет запускаться данный отчёт. Доступные периоды: ежечасно, ежедневно, только вручную.
2)*Генератор названий*. Определяет как именно будут названы файлы при выгрузке на ftp сервер. В генераторе названий доступны те же переменные, что и в формате даты.
{warning} Примечание: В генераторе названий обязательно формат даты указывайте между символами | и | {warning}
Пример генератора названий: *abonents-periodic-|%y%m%d_%H%M%S|.csv*
При такой настройке в название файла будет попадать время формирования файла в указанном формате
3)*Папка на FTP*. В этом поле необходимо указать путь до папки на FTP сервере, в которую необходимо выгружать отчёт. Если данной папки не существует на FTP сервере - выгрузка не произойдет
4)*Формат периодичных отчётов* Определяет в каком именно формате будут выгружаться периодичные отчёты, сформированные по указанному SQL шаблону.
*Всегда целиком* - означает, что каждый периодический отчёт будет сформирован полностью по всем записям, которые попадут в SQL выборку
*Только изменения* - означает, что в каждый периодический отчёт попадет только та запись, которая изменилась с предыдущей выгрузки.

h4. Общая логика работы для периодической выгрузки:
1) Если это первая периодическая выгрузка и на биллинге нет данных о последней успешной выгрузке на FTP сервер - будут выгружены полностью все записи исходя из SQL запроса
2) Если выгрузка на FTP прошла успешно - на биллинге будет сохранен выгруженный файл в директории */var/local/sorm/reports/abonents/actual/* где *abonents* - имя отчёта в веб интерфейсе.
В этом файле последним полем будет указан *уникальный ключ*
3) Если происходит периодическая выгрузка и биллинг находит последний актуальный файл в папке с тем именем, которое указано у отчёта в качестве имени - начинается сравнение строк по ключам: биллинг смотрит текущий файл и последний актуальный и сравнивает строки с одинаковыми ключами друг с другом. Если в строках находятся изменения - текущая строка попадает в выгрузку. Если выгрузка на FTP проходит успешно - текущий актуальный файл заменяется.
{info} Внимание: Актуальный файл на биллинге меняется только для выгрузок на FTP и только в том случае, если выгрузка прошла успешно. При ручном скачивании в csv или при выводе в веб интерфейсе актуальный файл меняться на биллинге не будет!{info}

h3. Ручной запуск отчётов
Каждый отчёт можно выгрузить вручную и проверить какую именно информацию он выводит. Для выполнения отчёта необходимо нажать кнопку *Выполнить* в настройках нужного отчёта или выбрать соответствующее действие в разделе *Действия* в списке отчётов*. После этого будет открыт раздел запуска отчёта.
!sorm_run.png|border=1!
Переда запуском отчёта Вы сможете выбрать в каком именно формате необходимо запустить отчёт и за какой период.
*Формат*:
Выгрузить в формате csv. Выгружает локально на Вашу машину csv файл с указанными настройками и кодировкой.
Выгрузить на FTP. Выгружает файл на FTP сервер.
{info} Внимание: При успешной выгрузке файла на FTP сервер, на биллинге будет создан актуальный файл, с которым потом будет проходить сравнение в периодической выгрузке{info}
Выполнить в веб - интерфейсе. Показывает информацию в виде таблице в веб - интерфейсе биллинга