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

Новая версия интеграции с СОРМ МФИ Софт согласно документации 2020 года.

{toc}

h2. Как развернуть

# Скачайте архив с файлами интеграции и распакуйте в нужной директории:
{code}
yum install -y wget
wget --no-check-certificate https://docs.carbonsoft.ru/download/attachments/186286305/sorm3-mfi_20210831.tar.gz
mkdir /app/asr_billing/cfg/sorm3-mfi
tar xzf sorm3-mfi_20210831.tar.gz -C /app/asr_billing/cfg/sorm3-mfi/
{code}
# Выполните скрипт настройки, он добавит системный атрибут типам документа (паспорт, загранпаспорт и тд), добавит его всем абонентам, настроит планировщик ОС и ротацию файла журнала
{code}/app/asr_billing/cfg/sorm3-mfi/configure.sh{code}
# Исправьте файл */app/asr_billing/cfg/sorm3-mfi/config.ini* - укажите там параметры Вашего FTP. Секция FTP в конфигурационном файле должна выглядеть приблизительно так:
{code}
[ftp]
# Данные подключения к FTP
ftp_ip=10.90.1.185
ftp_login=carbon
ftp_pass=carbon
{code}

h2. Что нужно знать о выгрузках, скриптах и тд

h3. Примечания по архитектуре интеграции

* По-умолчанию автоматический делаются выгрузки:
** раз в сутки: abonents abonent_ident abonent_address abonent_service
** раз в час: undefined_payment
* Если хотите изменить частоту или набор выгрузок - поправьте */app/asr_billing/cfg/sorm3-mfi/etc-host/cron.d/sorm3-mfi-upload.sh* и перезапустите cron
* Справочники нужно выгружать только при необходимости вручную, передав имена нужных выгрузок. Примерно так:
{code}/app/asr_billing/cfg/sorm3-mfi/upload.sh ip_gateway ip_plan commutators gateways regions supplementary_service
{code}

h3. Какие выгрузки формируются

- Данные об абонентах
-* ABONENT
-* ABONENT_IDENT
-* ABONENT_SERVICE
-* ABONENT_ADDRESS
- Справочные данные
-* COMMUTATORS
-* GATEWAYS
-* IP_GATEWAY
-* IP_PLAN
-* SUPPLEMENTARY_SERVICE
-* DOC_TYPE
-* PAY_TYPE
-* UNDEFINED_PAYMENT


h3. Как сделать выгрузку вручную

Скриптом upload.sh, в качестве параметров через пробел перечислите нужные отчёты для выгрузки, например:
{code}/app/asr_billing/cfg/sorm3-mfi/upload.sh gateways{code}

Можете запустить без параметров, скрипт напшиет краткую справку и список отчётов которые можно выполнить:
{code:title=Команда}/app/asr_billing/cfg/sorm3-mfi/upload.sh{code}
{code:title=Вывод}
2021-08-11 12:17:58 скрипт запущен

Укажите какие отчёты надо выгружать. Например:

upload.sh abonent abonent_ident abonent_address abonent_service

Справочники и данные об абонентах, которые можно выгрузить этим скриптом:

abonent
abonent_address
abonent_ident
abonent_service
commutators
gateways
ip_gateway
ip_plan
regions
supplementary_service
undefined_payment
doc_type
pay_type


Ещё скрипт можно запустить с дебагом, тогда файлы будут созданы, но без выгрузки на FTP. Например:

upload.sh abonent --debug
{code}

h2. Как запустить настройку

Запустите скрипт configure.sh:
{code}/app/asr_billing/cfg/sorm3-mfi/configure.sh all{code}

Если нужно выполнить только какую-то часть, например добавить массово атрибут новым абонентам, укажите это первым агрументом функции, например:
{code}
./configure.sh prepare_references
{code}

Если запустить скрипт без парамеров, он выведет справку
{code}
Укажите, что нужно настроить:

prepare_references - создать реквизит с типами документов, удостоверяющих личность
prepare_abonents - добавить всем абонентам реквизит с типом документа Паспорт гражданина РФ
make_doc_type - сформировать справочник с типами документов для выгрузки на СОРМ
install_cron - настроить CRON
install_logrotate - настроить logrotate
prepare_payment_report - выгрузить справочник используемых платёжных систем и подготовить sql для выгрузки платежей
all - всё вышеперечисленное


Например:

configure.sh all
{code}

h2. Отладка

Если выгрузка не прошла, или произошла с какой-либо ошибкой (пустые файлы, или оборванные "на середине"), посмотреть, как проходила выгрузка можно в файле журнала на сервере:
{code:title=Путь к файлу журнала}/app/asr_billing/var/log/sorm3_upload.log{code}
Есть три наиболее распространённые причины.

h3. 1. Проблема с CRON
Если выгрузка совсем не проходила и данных в журнале нет, возможно есть проблема с планировщиком задач - он может быть выключен, может неправильно сконфигурирован, или самим скриптом /etc/cron.d/sorm3-mfi-upload.sh - возможно на нём не установлены права на выполнение.

* Возможно cron просто выключен, включить можно командой:
{code}/etc/init.d/crond start{code}
* Убедитесть что файл /etc/init.d/cron исполняемый:
{code}chmode a+x /etc/init.d/crond{code}
* Проверьте, чтобы скрипт имел следующие права
{code} [root@carbontesst]# ll /app/asr_billing/cfg/sorm3-mfi/etc-host/cron.d/sorm3-mfi-upload
-rw-r--r-- 1 root root /app/asr_billing/cfg/sorm3-mfi/etc-host/cron.d/sorm3-mfi-upload{code} Выставить данные права можно с помощью команды
{code}chmod 644 /app/asr_billing/cfg/sorm3-mfi/etc-host/cron.d/sorm3-mfi-upload{code}
* Если есть какие-то ошибки в работе, Вы можете найти информацию о них в файле */var/log/cron*. К сожалению, отладка крона уже выходит за рамки документации продукта Carbon Billing. Пожалуйста, обратитесь к документации CRON если это Ваш случай.

h3. 2. Проблема в формировании выгрузки (в отчётах)

Мы написали краткую статью по отладке отчётов: [CarbonBilling:Отладка отчетов]. По ней Вы можете решить такую проблему.

h3. 3. Проблема с выгрузкой на FTP

Наша система резервного копирования так же использует FTP-сервера для хранения резервных копий удалённо.

В документаци по отладке выгрузки резервных копий мы описали распространённые причины, почему данные могут не выгружаться: [ALARM Ошибка автоматической резервной копии!|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=51019784#Системамониторинга-ALARMОшибкаавтоматическойрезервнойкопии\!]

h3. 4. Можно формировать выгрузки, но не выгружать на FTP, чтобы их отлаживать?

Можно, для этого добавьте флаг *--debug* скрипту upload.sh, например:
{code}/app/asr_billing/cfg/sorm3-mfi/upload.sh regions ip_plan --debug{code}
Если справочники в биллинге заполнены и по структуре запросов есть подходящие данные для выгрузки, то в выводе скрипт напишет пути к файлам:
{code}
...
2021-08-11 12:03:01 Пукть к файлу: /app/asr_billing/var/sorm3_data/done//REGIONS_20210811_1203.csv
...
2021-08-11 12:03:01 Пукть к файлу: /app/asr_billing/var/sorm3_data/done//IP_PLAN_20210811_1203.csv
{code}
Если в биллинге не заведены данные, которы можно выгрузить, то скрипт напишет что файлы сырой выгрузки пусты, например:
{code}
2021-08-11 12:02:49 Файл /app/asr_billing/var/sorm3_data/gateways.csv_raw пуст
2021-08-11 12:02:49 Файл /app/asr_billing/var/sorm3_data/undefined_payment.csv_raw пуст
{code}
Отладить это Вы можете по статье [CarbonBilling:Отладка отчетов]