В событии запроса учётного периода получаю список доступных опций:
Код:
import java.util.*;
import java.sql.Connection;
import ru.bitel.common.sql.*;
import ru.bitel.bgbilling.kernel.event.Event;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.kernel.tariff.option.server.bean.*;
import ru.bitel.bgbilling.server.util.Setup;
public class test_AccountingPeriod2
extends EventScriptBase
{
@Override
public void onEvent( Event event, Setup setup, ConnectionSet connectionSet )
throws Exception
{
Connection con = connectionSet.getConnection();
int cid = event.getContractId();
Date now = new Date();
boolean needNonActivated = false;
ContractTariffOptionDao ctom = new ContractTariffOptionDao(con);
List currentOptionList = ctom.list(cid, now, false, needNonActivated);
}
}
Если на договоре есть тарифные опции, вылетает ошибка:
Код:
EXCEPTIONS:
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.accounting.InetConnectionRuntime.setAccountingPeriod(InetConnectionRuntime.java:1239)
at ru.bitel.bgbilling.modules.inet.accounting.InetConnectionRuntime.splitSession(InetConnectionRuntime.java:1020)
at ru.bitel.bgbilling.modules.inet.accounting.InetConnectionRuntime.trySplitSession(InetConnectionRuntime.java:919)
at ru.bitel.bgbilling.modules.inet.accounting.FlowAgentInterface.processFlow(FlowAgentInterface.java:131)
at ru.bitel.bgbilling.modules.inet.collector.FlowListenerWorker.processPacketImpl0(FlowListenerWorker.java:248)
at ru.bitel.bgbilling.modules.inet.collector.FlowListenerWorker.processPacketImpl(FlowListenerWorker.java:141)
at ru.bitel.bgbilling.modules.inet.collector.FlowListenerWorkerNetFlow.processPacket(FlowListenerWorkerNetFlow.java:29)
at ru.bitel.bgbilling.modules.inet.collector.FlowListenerWorker.runImpl(FlowListenerWorker.java:58)
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.iks.inet.dyn.tariff_F.myAccountingPeriod_unlimF.onEvent(myAccountingPeriod_unlimF.java:113)
at ru.iks.inet.dyn.tariff_F.myAccountingPeriod_unlimF.onEvent(myAccountingPeriod_unlimF.java:37)
at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:196)
... 8 more
Если этот код запустить как глобальный скрипт поведения, то ошибки нет.
Информация о версии:
Клиент: вер. 5.2 сборка 1099 от 30.01.2013 18:56:33
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_24
Сервер: вер. 5.2 сборка 1395 от 30.01.2013 18:56:42
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_37
inet вер. 5.2 сборка 1085 от 30.01.2013 18:56:40