BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 24 июн 2025, 17:49

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
СообщениеДобавлено: 08 ноя 2012, 23:19 
Не в сети
Клиент

Зарегистрирован: 15 ноя 2011, 17:56
Сообщения: 186
Карма: 0
В BGB 5.1 есть метод ContractTariffOptionActivateManager(con).activateOption(int userId, int cid, int optionId, int modeId, boolean web) и он работает, а в BGB 5.2 метод немного изменился ContractTariffOptionActivateManager(con).activateOption(ru.bitel.bgbilling.kernel.tariff.option.common.service.TariffOptionService tariffOptionService, int userId, int cid, int optionId, int modeId, boolean web) и я никак не пойму как он работает?

_________________
Версия 6.2


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 ноя 2012, 19:19 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Из скрипта вызываете?

Тогда

Код:

ServerContext context = ServerContext.get();
TariffOptionService service = context.getService( TariffOptionService.class, INET_MODULE_ID );



где INET_MODULE_ID - код модуля inet.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 ноя 2012, 21:13 
Не в сети
Клиент

Зарегистрирован: 15 ноя 2011, 17:56
Сообщения: 186
Карма: 0
А если из action (из ЛК)?

_________________
Версия 6.2


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 ноя 2012, 11:12 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
В смысле из самописного экшена?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 ноя 2012, 11:27 
Не в сети
Клиент

Зарегистрирован: 15 ноя 2011, 17:56
Сообщения: 186
Карма: 0
Да.

_________________
Версия 6.2


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 ноя 2012, 11:34 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Ну так же на самом деле. Лучше сразу вызывать через вызов сервиса TariffOptionService, как это в родном веб экшене сделано:

tariffOptionService.contractTariffOptionActivate( cid, optionId, modeId, true );

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 ноя 2012, 11:38 
Не в сети
Клиент

Зарегистрирован: 15 ноя 2011, 17:56
Сообщения: 186
Карма: 0
Спасибо, попробую!

Посмотрите пожалуйста еще одну тему касающуюся Тарифных опций
http://forum.bgbilling.ru/viewtopic.php?f=5&t=7408

_________________
Версия 6.2


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 дек 2012, 05:55 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
при вызове tariffOptionService.contractTariffOptionActivate( cid, optionId, modeId, true ) из события "Запрос учетного периода" летят ошибки:

Код:
script 12-20/11:45:15 ERROR [rdsLstnr-p-9-t-3] ScriptEventListener - Eval error: java.lang.Exception: java.lang.NullPointerException
java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.NullPointerException
        at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)
        at java.util.concurrent.FutureTask.get(FutureTask.java:91)
        at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:267)
        at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScript(DynamicScriptEventListener.java:149)
        at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.notify(DynamicScriptEventListener.java:117)
        at ru.bitel.bgbilling.kernel.event.LocalEventProcessor.request(LocalEventProcessor.java:240)
        at ru.bitel.bgbilling.kernel.event.EventProcessor.request(EventProcessor.java:848)
        at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.accountingPeriodActivate(InetServRuntime.java:313)
        at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.accountingPeriodCheck(InetServRuntime.java:401)
        at ru.bitel.bgbilling.modules.inet.runtime.InetApplication.authorization0(InetApplication.java:640)
        at ru.bitel.bgbilling.modules.inet.runtime.InetApplication.authorization(InetApplication.java:629)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authorization(InetRadiusProcessor.java:770)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authenticationImpl(InetRadiusProcessor.java:567)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:462)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:1)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.authentication(RadiusSession.java:115)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.accessRequest(RadiusSession.java:92)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequestImpl(RadiusProcessor.java:390)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:379)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:1)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequest(RadiusProcessor.java:377)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:58)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:1)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:213)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
        at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.Exception: java.lang.NullPointerException
        at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:200)
        at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener.access$0(DynamicScriptEventListener.java:1)
        at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener$1.call(DynamicScriptEventListener.java:254)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        ... 4 more
Caused by: java.lang.NullPointerException
        at ru.bitel.bgbilling.kernel.tariff.option.server.bean.ContractTariffOptionDao.getFromRS(ContractTariffOptionDao.java:209)
        at ru.bitel.bgbilling.kernel.tariff.option.server.bean.ContractTariffOptionDao.list(ContractTariffOptionDao.java:82)
        at ru.bitel.bgbilling.kernel.tariff.option.server.bean.ContractTariffOptionActivateManager.activateOptionWhithSum(ContractTariffOptionActivateManager.java:211)
        at ru.bitel.bgbilling.kernel.tariff.option.server.bean.ContractTariffOptionActivateManager.activateOption(ContractTariffOptionActivateManager.java:62)
        at ru.bitel.bgbilling.kernel.tariff.option.server.service.TariffOptionServiceImpl.contractTariffOptionActivate(TariffOptionServiceImpl.java:289)
        at ru.iks.inet.dyn.tariff.myAccountingPeriod.onEvent(myAccountingPeriod.java:87)
        at ru.iks.inet.dyn.tariff.myAccountingPeriod.onEvent(myAccountingPeriod.java:25)
        at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:196)
        ... 8 more


причем эта ошибка пишется два раза.

В чем может быть проблема?

Вот код:
Код:
      ServerContext context = new ServerContext(setup, connectionSet, 1, UserId);
         TariffOptionService tariffOptionService = context.getService( TariffOptionService.class, 1 );
         tariffOptionService.contractTariffOptionActivate( cid, optionId, modeId, true );


Если повторить код метода activateOptionWhithSum из класса ContractTariffOptionActivateManager, то ошибок нет, опция активируется, учетный период создается.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 дек 2012, 08:56 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Зачем
Код:
new ServerContext
?
вам же сказали:
Код:
ServerContext context = ServerContext.get();


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 дек 2012, 03:15 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
Cromeshnic писал(а):
Зачем
Код:
new ServerContext
?
вам же сказали:
Код:
ServerContext context = ServerContext.get();


Так тоже не работает. Эту же ошибку получаю.
Если вызов делать из глобального класса, то все работает нормально и через new ServerContext и через ServerContext.get()

Видимо какая-то проблема при вызове по Event'у


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 дек 2012, 06:32 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Зависит от евента. Вернее, где отрабатывает евент. Видимо, это происходит не в сервере или шедулере, а где-нибудь в радиусе.
Что-то такое припоминаю, связано с классом-снглтоном UserMap, который в радиусе не инициализирован.
Сделайте так перед вызовом деактивации:

Код:
if(UserMap.getMap().size()==0){
    UserMap.initUserMap(con);
}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 дек 2012, 06:34 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Ах, да, UserMap:

Код:
import ru.bitel.bgbilling.server.util.UserMap;


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 дек 2012, 03:34 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
Спасибо, помогло!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.071s | 43 Queries | GZIP : On ]