Во-первых, давайте рассмотрим общая картина того, что Oracle BRM выставление счетов процесс делает:
- Составляет общую сумму воздействий на баланс, произошедших за последний месяц. Сюда может входить плата за использование и абонентская плата.
- Измените статус всех элементов счета, связанных с этим счетом, с ожидающих оплаты на открытые, чтобы они перестали накапливать расходы, и к ним можно было применить платежи. Кроме того, к счету добавляется дата платежа.
- Автоматически запрашивает платежи у процессора кредитных карт или запрашивает платежи, посылая счета-фактуры.
- Автоматическое обновление баланса счета клиента при регистрации платежа в базе данных BRM.
Итак, как все это делается на практике?
Прежде чем запускать биллинг brm на производстве, необходимо выполнить все предварительные шаги. Первым шагом является подготовка копии производственной среды - это может быть либо предпроизводственная, либо какая-либо тестовая среда. Этот шаг включает установку последней версии производственной среды на эту среду и копирование производственной базы данных. Далее, конфигурации среды должны отражать конфигурации производственной среды. Вот основные конфигурации, которые должны быть установлены соответствующим образом:
- см конфигурации ($HOME/pin/sys/cm/pin.conf),
o Убедитесь, что для записи loglevel установлено значение 1
o Измените запись для параметра agent_return на 0
o Измените значение параметра simulate_agent на 1
Эти два последних изменения сделаны для того, чтобы не привлекать никаких действий по резервированию во время bill-run.
- dm_oracle конфигурации ($HOME/pin/sys/dm_oracle/pin.conf),
o Установите параметр dm_bigsize в значение 8388608 или выше
o Установите параметр dm_shmsize в значение 33554432 или выше
o Установите значение dm_n_fe равным 8
o Установите значение dm_max_per_fe равным 16
o Установите dm_n_be в значение 24
o Установите dm_trans_be_max в значение 22
- pin_bill_accts конфигурации ($HOME/pin/apps/pin_billd/pin.conf),
o Проверьте уровень журнала. Измените его на соответствующее значение в зависимости от того, что необходимо проверить во время проверки счета: 1 или 3.
o Измените параметр children для pin_billd и pin_mta на 5
o Измените параметр per_batch для pin_billd и pin_mta на 20000
o Измените параметр fetch_size для pin_billd и pin_mta на 150000
- pin_inv_accts конфигурации ($HOME/pin/apps/pin_inv/pin.conf),
o Проверьте уровень журнала. Измените его на соответствующее значение в зависимости от того, что необходимо проверить во время проверки счета: 1 или 3.
o Измените параметр children для pin_billd и pin_mta на 5
o Измените параметр per_batch для pin_billd и pin_mta на 2000
o Измените параметр fetch_size для pin_billd и pin_mta на 15000
Чтобы получить наилучшую имитацию производства, пин billrun_virtual_time должен быть установлен на дату, когда будет выполняться реальный billrun на производстве. Как только это будет сделано, биллран можно запускать.
Мы ежемесячно запускаем биллинг с помощью скрипта pin_bill_day, который создает около 100.000 счетов в час. Сценарий создает счета для счетов, у которых дата выставления счета приходится на любой день до полуночи того дня, когда мы запускаем биллинг. Что же на самом деле делает скрипт pin_billd_day? Он запускает следующие утилиты биллинга:
- pin_deferred_act: Выполняет отложенные действия; например, если счет должен стать неактивным, эта утилита выполняет изменение статуса в запланированную дату.
- pin_bill_accts: Рассчитывает причитающийся остаток по счетам и создает счет на причитающийся остаток.
- pin_collect: Собирает причитающийся остаток по счетам, в которых используются кредитные карты и прямые дебетовые методы оплаты.
- pin_refund: Находит счета, на которых есть элементы возврата, и выполняет операции возврата в режиме онлайн.
- pin_inv_accts: Создает счет-фактуру для каждого счета, на который выставляется счет.
- pin_cycle_fees: Применяет воздействие на баланс платы за перенос цикла на счет клиента и отменяет продукты, у которых истек срок ожидания отмены.
Для проверки выполнения и эффективности работы скрипта pin_bill_day мы выполняем запросы к базе данных, чтобы получить информацию о том, сколько счетов уже сделано, сколько еще предстоит сделать, есть ли счета с ошибками и т.д.
После того, как часть работы по выставлению счетов в brm завершена и все счета созданы, начинается выставление счетов. После того, как счета созданы, они экспортируются в XML-документы, которые затем преобразуются в формат PDF.
Помимо упомянутых ранее запросов, существуют и другие запросы, которые необходимо выполнить после завершения выставления счетов и счетов-фактур, чтобы проверить точность данных, полученных в результате этого процесса. Мы выполняем партию запросов; вот некоторые из них:
- Провалился ли биллинг?
select * from billinfo_t where billing_state = 4 and bill_info_id'Bill Unit(1)';
-Ожидаемые результаты: Строки не найдены
- Существуют ли не выставленные счета?
select poid_id0, first_name,last_name,a.status from account_t a, account_nameinfo_t an where
a.poid_id0=an.obj_id0 и
created_t< и
not exists (select b.account_obj_id0 from bill_t b
где end_t= и
b.account_obj_id0=a.poid_id0);
-Ожидаемые результаты: Строки не найдены
- Есть ли законопроекты без номера законопроекта?
select * from bill_t where end_t= and bill_no is null;
- Ожидается: Строки не найдены
Любые найденные проблемы затем исследуются и исправляются с помощью системы контроля версий, где исправления позже включаются в следующую версию релиза.