forum.bitel.ru http://forum.bitel.ru/ |
|
ContractTariffManager и сервисы Inet на договоре http://forum.bitel.ru/viewtopic.php?f=44&t=9930 |
Страница 1 из 1 |
Автор: | oldb0y [ 15 ноя 2014, 14:30 ] |
Заголовок сообщения: | ContractTariffManager и сервисы Inet на договоре |
Здравствуйте. Есть код, который в зависимости от значения спискового параметра добавляет ТП(глоб. тарифный план) на договор. В этой группе ТП передаются опции для Inet модуля. Работает, только часть кода, которая добавляет ТП на договор, а вот оповещение сервиса на договоре не происходит (то есть опции не обновляются для сервиса). Подозреваю, что необходимо добавить какой-то метод, чтобы оповестить сервисы на договоре об изменениях в ТП. Подскажите, какой метод нужно добавить? Собственно, часть кода которая добавляет ТП на договор: Код: ContractTariffManager CTM = new ContractTariffManager( con ); ContractTariff CT = new ContractTariff(); CT.setContractId( contractId ); CT.setTariffPlanId( GT ); CT.setDate1( EventDate ); CTM.updateContractTariff( CT ); Весрии: Код: Сервер: вер. 6.0 сборка 1756 от 11.06.2014 17:26:36 inet вер. 6.0 сборка 1400 от 11.06.2014 15:20:15 Важное примечание: Если в клиенте открыть ТП договора, нажать кнопку ОК, далее открыть сервис договора, нажать ОК, то опции применяются. Иначе, ничего не происходт. Собственно отсюда и предположение, что есть метод или класс, которые оповещает все компоненты. |
Автор: | Phricker [ 15 ноя 2014, 15:04 ] |
Заголовок сообщения: | Re: ContractTariffManager и сервисы Inet на договоре |
Это в другой подфорум надо было, и там же среди первых тем есть viewtopic.php?f=19&t=9813 |
Автор: | oldb0y [ 17 ноя 2014, 09:15 ] |
Заголовок сообщения: | Re: ContractTariffManager и сервисы Inet на договоре |
Phricker Спасибо, буду изучать. Мне кажется и здесь контекст задачи подходит, и для того раздела тоже. |
Автор: | oldb0y [ 17 ноя 2014, 10:49 ] |
Заголовок сообщения: | Re: ContractTariffManager и сервисы Inet на договоре |
Данное решение не срабатывает. Что еще можно посмотреть? Код: ContractTariffManager CTM = new ContractTariffManager( con );
ContractTariff CT = new ContractTariff(); CT.setContractId( contractId ); CT.setTariffPlanId( GT ); CT.setDate1( EventDate ); CTM.updateContractTariff( CT ); EventProcessor.getInstance().publishAfterCommit(new ContractTariffUpdateEvent(0, contractId, CT, true)); //EventProcessor.getInstance().publish(new ContractTariffUpdateEvent(0, contractId, CT, true)); |
Автор: | Phricker [ 17 ноя 2014, 12:06 ] |
Заголовок сообщения: | Re: ContractTariffManager и сервисы Inet на договоре |
Ошибку выдает какую-то или же просто не устанавливает опции? |
Автор: | oldb0y [ 17 ноя 2014, 12:19 ] |
Заголовок сообщения: | Re: ContractTariffManager и сервисы Inet на договоре |
Ни ошибок, ни варнингов. server.script.log Код: 11-17/12:15:45 INFO ["http-bio-/0.0.0.0-8080"-exec-7] ScriptEventListener - Caught event: ru.bitel.bgbilling.kernel.event.events.ContractParamBeforeChangeEvent
11-17/12:15:45 INFO ["http-bio-/0.0.0.0-8080"-exec-7] ScriptEventListener - Process time => 6 11-17/12:15:45 INFO ["http-bio-/0.0.0.0-8080"-exec-7] ScriptEventListener - Caught event: ru.bitel.bgbilling.kernel.event.events.ContractParamBeforeChangeEvent 11-17/12:15:45 INFO ["http-bio-/0.0.0.0-8080"-exec-7] ScriptEventListener - Process time => 2 11-17/12:15:45 INFO ["http-bio-/0.0.0.0-8080"-exec-7] ScriptEventListener - Caught event: ru.bitel.bgbilling.kernel.event.events.ContractParamBeforeChangeEvent 11-17/12:15:45 INFO [dyn-clss-evnt-lstnr-p-4-t-17] LoggingPrintStream - Update CT cid: 56 11-17/12:15:45 INFO ["http-bio-/0.0.0.0-8080"-exec-7] ScriptEventListener - Process time => 74 |
Автор: | oldb0y [ 18 ноя 2014, 09:33 ] |
Заголовок сообщения: | Re: ContractTariffManager и сервисы Inet на договоре |
Вот это судя по всему MQ логам экшн UpdateContractTariffPlan, который оповещает Inet-модули... Код: [17/Nov/2014:12:43:18 +0600] 0.163 200 117 "POST /executer HTTP/1.1" UID=1 module=contract&cid=56&BGBillingSecret=XXX&pos=0&id=235&tpid=98&action=UpdateContractTariffPlan&date2=&comment=&date1=17.11.2014& Какие методы еще возможно подключить для оповещения? Незнаю на сколько это важно... Но во всех подключаемых ТП не установленны, ни цена, ни услуга - только модуль и опция. Класс работает "Перед изменением параметров договора". |
Автор: | stark [ 18 ноя 2014, 12:16 ] |
Заголовок сообщения: | Re: ContractTariffManager и сервисы Inet на договоре |
oldb0y писал(а): Данное решение не срабатывает. Что еще можно посмотреть? Код: ContractTariffManager CTM = new ContractTariffManager( con ); ContractTariff CT = new ContractTariff(); CT.setContractId( contractId ); CT.setTariffPlanId( GT ); CT.setDate1( EventDate ); CTM.updateContractTariff( CT ); EventProcessor.getInstance().publishAfterCommit(new ContractTariffUpdateEvent(0, contractId, CT, true)); //EventProcessor.getInstance().publish(new ContractTariffUpdateEvent(0, contractId, CT, true)); Еще нужно добавить : Код: EventProcessor.getInstance().publishAfterCommit(new ContractTariffChangedEvent( cid);
|
Автор: | Phricker [ 18 ноя 2014, 12:38 ] |
Заголовок сообщения: | Re: ContractTariffManager и сервисы Inet на договоре |
stark писал(а): Еще нужно добавить : Код: EventProcessor.getInstance().publishAfterCommit(new ContractTariffChangedEvent( cid)); А Димон ничего не сказал (((( У вас кстати скобка не была закрыта |
Автор: | oldb0y [ 18 ноя 2014, 12:53 ] |
Заголовок сообщения: | Re: ContractTariffManager и сервисы Inet на договоре |
stark Пошел процесс! Остался последний шаг. Оповещение происходит, но Inet-сервис его "не слушает". Иначе говоря, теперь в клиенте достаточно открыть Сервис, нажать сохранить и тогда опции применяются. Помогите найти последний метод? |
Автор: | stark [ 18 ноя 2014, 13:04 ] |
Заголовок сообщения: | Re: ContractTariffManager и сервисы Inet на договоре |
oldb0y писал(а): stark Пошел процесс! Остался последний шаг. Оповещение происходит, но Inet-сервис его "не слушает". Иначе говоря, теперь в клиенте достаточно открыть Сервис, нажать сохранить и тогда опции применяются. Помогите найти последний метод? Если тариф изменить вручную на договоре, то сервис тоже не поменяет опцию? |
Автор: | oldb0y [ 18 ноя 2014, 13:24 ] |
Заголовок сообщения: | Re: ContractTariffManager и сервисы Inet на договоре |
stark Нет не меняет. Пока не откроешь сервис, и не нажмешь Сохранить. |
Автор: | Amir [ 18 ноя 2014, 18:57 ] |
Заголовок сообщения: | Re: ContractTariffManager и сервисы Inet на договоре |
Значит скрипт отрабатывает корректно. По умолчанию опции на сервисе не меняеются пока нет активной сессии. Однако, можно добавить обработчик сервисов без сессий, а также можно добавить обработчик, реагирующий на события (после изменения нужно перезапустить InetAccounting): http://bgbilling.ru/v6.1/doc/ch17s07s01.html (в самом низу). |
Автор: | oldb0y [ 19 ноя 2014, 09:23 ] |
Заголовок сообщения: | Re: ContractTariffManager и сервисы Inet на договоре |
Phricker stark Amir Спасибо вам ребята! Все опции передаются, как только NAS'ку послал на биллинг. Вариант "без сессий" изучу нужен ли он в таком случае (ресурсы). Ps Ну как так. Почему форум дал мне апнуть карму только Phricker. |
Автор: | skyb [ 20 ноя 2014, 04:12 ] |
Заголовок сообщения: | Re: ContractTariffManager и сервисы Inet на договоре |
oldb0y писал(а): Ps Ну как так. Почему форум дал мне апнуть карму только Phricker. да он читер, постоянно помогают все, а апается только ему ((( ![]() ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |