forum.bitel.ru http://forum.bitel.ru/ |
|
[6.0] Закрытие задачи в CRM на подключение http://forum.bitel.ru/viewtopic.php?f=19&t=8788 |
Страница 1 из 1 |
Автор: | crez [ 24 дек 2013, 12:30 ] |
Заголовок сообщения: | [6.0] Закрытие задачи в CRM на подключение |
Точим скрипты под 6.0. Вот с одним уперся. Помогите разобраться ![]() Скрипт: Код: import bitel.billing.server.util.*; import bitel.billing.common.*; import bitel.billing.server.contract.bean.*; import bitel.billing.server.npay.bean.*; import java.math.*; import bitel.billing.server.task.bean.*; import bitel.billing.server.admin.bean.*; import bitel.billing.server.npay.*; import bitel.billing.common.KernelConst; import ru.bitel.common.*; import ru.bitel.bgbilling.modules.npay.server.*; import java.util.*; import java.sql.*; includeBGBS( "bgbs://ru.bitel.bgbilling.kernel.script.common.bean.ScriptLibrary/contract" ); includeBGBS( "bgbs://ru.bitel.bgbilling.kernel.script.common.bean.ScriptLibrary/crm" ); includeBGBS( "bgbs://ru.bitel.bgbilling.kernel.script.common.bean.ScriptLibrary/trial" ); public void onEvent( event, setup, con, conSlave ) { task = event.getTask(); ttid = task.getTypeId(); print("Проверяем ТИП закрываемой задачи"); if ( ttid == 1 ) { // Тип задачи 1 - Подключение к сети print("ОК, закрыли задачу ТИПА 'подключение к сети'"); Calendar now = new GregorianCalendar(); ContractManager cm = new ContractManager( con ); cid = event.getContractId(); Contract contract = cm.getContractById( cid ); // для дебитовых договоров открываем триал-период if ( contract.getBalanceMode() != Contract.CREDIT_BALANCE_MODE ) { // добавляем в группу тестирования addToGroup( con, cid, GROUP_TRIAL ); // в группу живых договоров addToGroup( con, cid, GROUP_INET_ACTIVE ); // удаляем из группы очереди подключения deleteFromGroup( con, cid, GROUP_JOIN_PROC ); // устанавливаем дату начала предоставления услуг cpu = new ContractParamUtils( con ); cpu.setDateParam( cid, PARAM_START_DATE, now.getTime(), 0 ); // смотрим есть ли персональный тестовый период tp = cpu.getStringParam( cid, PARAM_TRIAL_PERIOD ); if ( tp == null ) { tp = DAYS_TEST_PERIOD; } // открываем договор setContractStatus( con, cid, KernelConst.CONTRACT_STATUS_ACTIVE, now.getTime() , "Активация тестового периода на "+tp+" дн" ); } // для кредитовых договоров активируем договор, создаем АП else { // открываем договор setContractStatus( con, cid, KernelConst.CONTRACT_STATUS_ACTIVE, now.getTime() , "Активация договора после подключения" ); Calendar startMonth = TimeUtils.getStartMonth( now ); Calendar endMonth = TimeUtils.getEndMonth( now ); ServiceObjectManager som = new ServiceObjectManager( con, NPAY_MID ); BalanceUtils bu = new BalanceUtils( con ); // проверка наличия абонплаты List serviceObjectList = som.getServiceObjectList( cid, null ); isServiceExist = false; for( ServiceObject s : serviceObjectList ) { if( s.getServiceId() == ABON_SID ) { print( "Abon already exists" ); isServiceExist = true; } } // открытие абонплаты if ( !isServiceExist ) { print( "Add AP" ); ServiceObject serviceObject = new ServiceObject(); serviceObject.setContractId( cid ); serviceObject.setServiceId( ABON_SID ); serviceObject.setDate1( TimeUtils.convertCalendarToDate( now ) ); serviceObjectList.clear(); serviceObjectList.add( serviceObject ); som.updateServiceObject( serviceObject ); } print( "Active date: " + TimeUtils.formatDate( now ) ); print( "Calс abon to date: " + TimeUtils.formatDate( endMonth ) ); BigDecimal planAccount = BigDecimal.ZERO; // предначисление до конца месяца Calculator calculator = new Calculator(); calculator.setExecutingTime( endMonth ); calculator.setPreCalc(); calculator.setActiveFromDate( now ); calculator.setServiceObjectList( serviceObjectList ); calculator.initTask( setup, 0, "mid=" + NPAY_MID ); calculator.setCids( String.valueOf( cid ) ); calculator.startTask(); print( "Precalc for time: " + TimeUtils.formatDate( endMonth ) ); if( calculator.isCalcErrors() ) { print( "Precalc to end month errors!" ); return; } Map planAccountMap = calculator.getCostCache().getContractAccounts(); if( planAccountMap.get( cid ) == null ) { print( "Can't calculate plan account" ); } planAccount = planAccountMap.get( cid ); print( "planAccount=" + planAccount ); // запуск реального начисления new RunTaskDataManager( con ).addTask( new Recalculator( NPAY_MID, now, null, 0, String.valueOf( cid ), "Автоматическое открытие абонплаты" ) ); // в группу живых договоров addToGroup( con, cid, GROUP_INET_ACTIVE ); // удаляем из группы очереди подключения deleteFromGroup( con, cid, GROUP_JOIN_PROC ); // устанавливаем дату начала предоставления услуг cpu = new ContractParamUtils( con ); cpu.setDateParam( cid, PARAM_START_DATE, now.getTime(), 0 ); } } } Лог отработки: Код: 12-24/10:09:15 INFO ["http-bio-/0.0.0.0-8443"-exec-4] ScriptEventListener - Caught event: ru.bitel.bgbilling.plugins.crm.server.bean.event.RegisterTaskClosedEvent
12-24/10:09:15 INFO [scrpt-evnt-lstnr-p-4-t-2] ScriptInstance - Invoke method Function [id:71; title:Закрытие задачи на подключение] : onEvent 12-24/10:09:15 INFO [event-proc-p-2-t-1] ScriptEventListener - Caught event: ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent 12-24/10:09:15 INFO [scrpt-evnt-lstnr-p-4-t-3] ScriptInstance - Invoke method Function [id:49; title:Изменение группы в соответствии со статусом договора] : onEvent 12-24/10:09:15 INFO ["http-bio-/0.0.0.0-8443"-exec-4] ScriptEventListener - Process time => 169 12-24/10:09:15 INFO ["http-bio-/0.0.0.0-8443"-exec-4] ScriptEventListener - Проверяем ТИП закрываемой задачи ОК, закрыли задачу ТИПА 'подключение к сети' 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'val' cannot be null 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at java.lang.reflect.Constructor.newInstance(Unknown Source) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.Util.getInstance(Util.java:386) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1039) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1339) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:825) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bitel.billing.server.contract.bean.ContractParameterManager.updateDateParam(ContractParameterManager.java:240) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bitel.billing.server.contract.bean.ContractParameterManager.setDateParam(ContractParameterManager.java:198) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at java.lang.reflect.Method.invoke(Unknown Source) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.Reflect.invokeMethod(Reflect.java:137) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.Reflect.invokeObjectMethod(Reflect.java:83) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.Name.invokeMethod(Name.java:858) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHBlock.evalBlock(BSHBlock.java:131) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHBlock.eval(BSHBlock.java:81) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHBlock.eval(BSHBlock.java:47) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHIfStatement.eval(BSHIfStatement.java:48) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHBlock.evalBlock(BSHBlock.java:131) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BSHBlock.eval(BSHBlock.java:81) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BshMethod.invokeImpl(BshMethod.java:362) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BshMethod.invoke(BshMethod.java:258) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.BshMethod.invoke(BshMethod.java:186) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.This.invokeMethod(This.java:255) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at bsh.This.invokeMethod(This.java:174) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.invoke(ScriptInstance.java:385) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$Invoker.runScriptImpl(ScriptEventListener.java:116) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener.runScript(ScriptEventListener.java:353) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$ThreadedScriptEventListener.access$0(ScriptEventListener.java:1) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$ThreadedScriptEventListener$1.call(ScriptEventListener.java:454) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at java.util.concurrent.FutureTask.run(Unknown Source) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at java.lang.Thread.run(Unknown Source) 12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40) 12-24/10:09:15 INFO [event-proc-p-2-t-1] ScriptEventListener - Process time => 26 12-24/10:09:15 INFO [event-proc-p-2-t-1] ScriptEventListener - Статус:0 Добавляем в группу 'Недостаточно средств' Удаляем из группы 'Недостаточно средств' |
Автор: | skyb [ 25 дек 2013, 05:14 ] |
Заголовок сообщения: | Re: [6.0] Закрытие задачи в CRM на подключение |
LoggingPrintStream - com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'val' cannot be null вот же, какое то поле не может быть null |
Автор: | crez [ 25 дек 2013, 11:20 ] |
Заголовок сообщения: | Re: [6.0] Закрытие задачи в CRM на подключение |
Об этом я догадался ![]() Единственное такое поле "val" нашел в таблице "setup". Я так понимаю, означает дату закрытого периода.(может я не прав) По-умолчанию был "00-00-0000". Пробовал поменять на "01-01-1980" - ошибка остается. Значит, не отсюда должно браться. Откуда? |
Автор: | skn [ 25 дек 2013, 13:09 ] |
Заголовок сообщения: | Re: [6.0] Закрытие задачи в CRM на подключение |
crez писал(а): Об этом я догадался ![]() Единственное такое поле "val" нашел в таблице "setup". Я так понимаю, означает дату закрытого периода.(может я не прав) По-умолчанию был "00-00-0000". Пробовал поменять на "01-01-1980" - ошибка остается. Значит, не отсюда должно браться. Откуда? судя по логу ошибка возникает при вызове at bitel.billing.server.contract.bean.ContractParameterManager.updateDateParam(ContractParameterManager.java:240) - установка параметра договора типа Дата |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |