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

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

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

!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}