BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 апр 2024, 20:35

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




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Изменение лимита
СообщениеДобавлено: 15 дек 2015, 12:14 
Не в сети

Зарегистрирован: 14 янв 2013, 13:12
Сообщения: 21
Карма: 0
Необходимо написать скрипт, который будет менять лимит определённым пользователям.
Скажу сразу - этот пример не заработал http://wiki.bitel.ru/index.php/%D0%98%D ... 0%BE%D0%B2.

Переделал из другого скрипта, который закрывал/открывал шлюзы на договорах, вот такой:

import bitel.billing.server.util.*;
import bitel.billing.server.ipn.bean.*;

import ru.bitel.bgbilling.kernel.event.Event;
import ru.bitel.bgbilling.kernel.event.QueueEvent;
import ru.bitel.bgbilling.kernel.event.events.LimitChangedEvent;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;


import java.math.BigDecimal;


public void main( setup, con, conSlave )
{

BigDecimal limit = new BigDecimal(-30);

st = con.prepareStatement("SELECT contract.id, contract.comment FROM contract WHERE contract.id = 2255 ");
rs = st.executeQuery();
gm = new IPNContractStatusManager(con, 1, setup.getSetup().getModuleSetup(1));


while(rs.next())
{
dm = new LimitChangedEvent(rs.getInt(1), limit);
print("cid: "+rs.getInt(1)+" - "+" лимит " + dm.getNewLimit() );
}


}

Это тестовый пример. Мне главное получить результат хотя бы на одном договоре. Результат работы скрипта:

GENERATE_TIME: 15.12.15 09:54:10
EXECUTION_STOP_TIME: 15.12.15 09:54:10
PROCESS_TIME: 15

OUT:
cid: 2255 - лимит -30

Как по результату ответа, лимит на договоре должен был бы измениться, но на самом деле никаких изменений нет. Помогите разобраться, в чём моя ошибка. Версия билинга 5.2.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение лимита
СообщениеДобавлено: 15 дек 2015, 12:19 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Код:
LimitManager lm = new LimitManager(con);
ServerContext context = ServerContext.get();
....
while(rs.next())
{
int cid = rs.getInt(1);
lm.updateContractLimit(User.USER_SERVER, limit, cid, "Блаблабла", "");
                context.publishAfterCommit(new SystemLimitChangedEvent(cid, limit));
                context.publishAfterCommit(new LimitChangedEvent(cid, limit));
                context.commit();
print("cid: "+cid+" - "+" лимит " + dm.getNewLimit() );
}   

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение лимита
СообщениеДобавлено: 15 дек 2015, 12:45 
Не в сети

Зарегистрирован: 14 янв 2013, 13:12
Сообщения: 21
Карма: 0
Спасибо за подсказку, но я уже пробовал этот вариант. Выходит ошибка:

GENERATE_TIME: 15.12.15 10:25:34
EXECUTION_STOP_TIME: 15.12.15 10:25:34
PROCESS_TIME: 18

OUT:


EXCEPTIONS:
Typed variable declaration : Class: LimitManager not found in namespace
Typed variable declaration : Class: LimitManager not found in namespace : at Line: 19 : in file: 111 : LimitManager

Called from method: main : at Line: -1 : in file: <Called from Java Code> : <Compiled Java Code>
at bsh.BSHAmbiguousName.toClass(BSHAmbiguousName.java:74)
at bsh.BSHType.getType(BSHType.java:154)
at bsh.BSHTypedVariableDeclaration.eval(BSHTypedVariableDeclaration.java:75)
at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
at bsh.BSHBlock.eval(BSHBlock.java:81)
at bsh.BshMethod.invokeImpl(BshMethod.java:362)
at bsh.BshMethod.invoke(BshMethod.java:258)
at bsh.BshMethod.invoke(BshMethod.java:186)
at bsh.This.invokeMethod(This.java:255)
at bsh.This.invokeMethod(This.java:174)
at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.invoke(ScriptInstance.java:385)
at bitel.billing.server.script.global.bean.GlobalScriptMachine.runScriptImpl(GlobalScriptMachine.java:139)
at bitel.billing.server.script.global.bean.GlobalScriptMachine.runScript(GlobalScriptMachine.java:69)
at bitel.billing.server.script.global.bean.GlobalScriptManager.executeGlobalScript(GlobalScriptManager.java:39)
at bitel.billing.server.script.global.action.ActionExecuteScript.doAction(ActionExecuteScript.java:30)
at bitel.billing.server.Executer.doModule(Unknown Source)
at bitel.billing.server.Executer$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at bitel.billing.server.Executer.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:140)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
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)


И даже после того, как я добавляю класс:

import ru.bitel.bgbilling.kernel.contract.api.server.bean.ContractLimitManager;

ошибка не пропадает. А как правильно добавить предыдущие классы:

import ru.bitel.common.dao.AbstractDao<B>
import ru.bitel.common.dao.AbstractIdDao<ContractGroup>
import ru.bitel.bgbilling.kernel.contract.api.server.bean.ContractGroupDao

я не разобрался. Я так понимаю, что-то нужно вписывать вместо знаков <B> и <ContractGroup>.
Если с последним более-менее всё понятно, то что подставлять вместо первого?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение лимита
СообщениеДобавлено: 15 дек 2015, 12:56 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
какая версия биллинга?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение лимита
СообщениеДобавлено: 15 дек 2015, 12:57 
Не в сети

Зарегистрирован: 14 янв 2013, 13:12
Сообщения: 21
Карма: 0
5.2


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение лимита
СообщениеДобавлено: 15 дек 2015, 19:05 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
попробуйте добавить
Код:
import bitel.billing.server.contract.bean.LimitManager;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение лимита
СообщениеДобавлено: 15 дек 2015, 19:21 
Не в сети

Зарегистрирован: 14 янв 2013, 13:12
Сообщения: 21
Карма: 0
Да, сейчас на LimitManager перестала ругаться. Но стала выскакивать ошибка:

EXCEPTIONS:
Typed variable declaration : Class: ServerContext not found in namespace
Typed variable declaration : Class: ServerContext not found in namespace : at Line: 23 : in file: 111 : ServerContext

Я добавил библиотеки:

import ru.bitel.common.worker.ThreadContext;
import ru.bitel.bgbilling.kernel.base.server.DefaultContext;
import ru.bitel.bgbilling.kernel.container.managed.ContainerContext;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;

Теперь выскакивает ошибка:

EXCEPTIONS:
Class or variable not found: User.USER_SERVER
Class or variable not found: User.USER_SERVER : at Line: 39 : in file: 111 : User .USER_SERVER

at bsh.UtilEvalError.toEvalError(UtilEvalError.java:85)
at bsh.UtilEvalError.toEvalError(UtilEvalError.java:90)
at bsh.BSHAmbiguousName.toObject(BSHAmbiguousName.java:64)
at bsh.BSHAmbiguousName.toObject(BSHAmbiguousName.java:51)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:93)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at bsh.BSHArguments.getArguments(BSHArguments.java:65)
at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:69)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
at bsh.BSHBlock.eval(BSHBlock.java:81)
at bsh.BSHBlock.eval(BSHBlock.java:47)
at bsh.BSHWhileStatement.eval(BSHWhileStatement.java:72)
at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
at bsh.BSHBlock.eval(BSHBlock.java:81)
at bsh.BshMethod.invokeImpl(BshMethod.java:362)
at bsh.BshMethod.invoke(BshMethod.java:258)
at bsh.BshMethod.invoke(BshMethod.java:186)
at bsh.This.invokeMethod(This.java:255)
at bsh.This.invokeMethod(This.java:174)
at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.invoke(ScriptInstance.java:385)
at bitel.billing.server.script.global.bean.GlobalScriptMachine.runScriptImpl(GlobalScriptMachine.java:139)
at bitel.billing.server.script.global.bean.GlobalScriptMachine.runScript(GlobalScriptMachine.java:69)
at bitel.billing.server.script.global.bean.GlobalScriptManager.executeGlobalScript(GlobalScriptManager.java:39)
at bitel.billing.server.script.global.action.ActionExecuteScript.doAction(ActionExecuteScript.java:30)
at bitel.billing.server.Executer.doModule(Unknown Source)
at bitel.billing.server.Executer$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at bitel.billing.server.Executer.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
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)

Получается, что User.USER_SERVER не описан.

Вот полный скрипт:

import bitel.billing.server.util.*;
import bitel.billing.server.ipn.bean.*;

import ru.bitel.bgbilling.kernel.event.Event;
import ru.bitel.bgbilling.kernel.event.QueueEvent;
import ru.bitel.bgbilling.kernel.event.events.LimitChangedEvent;

import bitel.billing.server.contract.bean.LimitManager;

import ru.bitel.common.worker.ThreadContext;
import ru.bitel.bgbilling.kernel.base.server.DefaultContext;
import ru.bitel.bgbilling.kernel.container.managed.ContainerContext;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;


import java.math.BigDecimal;


public void main( setup, con, conSlave )
{

LimitManager lm = new LimitManager(con);
ServerContext context = ServerContext.get();
BigDecimal limit = new BigDecimal(-30);

st = con.prepareStatement("SELECT contract.id, contract.comment FROM contract WHERE contract.id = 2255 ");
rs = st.executeQuery();
gm = new IPNContractStatusManager(con, 1, setup.getSetup().getModuleSetup(1));


while(rs.next())
{

int cid = rs.getInt(1);
lm.updateContractLimit(User.USER_SERVER, limit, cid, "Блаблабла", "");
context.publishAfterCommit(new SystemLimitChangedEvent(cid, limit));
context.publishAfterCommit(new LimitChangedEvent(cid, limit));
context.commit();
print("cid: "+cid+" - "+" лимит " + dm.getNewLimit() );


}


}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение лимита
СообщениеДобавлено: 15 дек 2015, 19:24 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
см. http://bgbilling.ru/v5.2/javadoc/index.html
Код:
import ru.bitel.bgbilling.kernel.module.common.bean.User;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение лимита
СообщениеДобавлено: 16 дек 2015, 12:29 
Не в сети

Зарегистрирован: 14 янв 2013, 13:12
Сообщения: 21
Карма: 0
Спасибо. Всё работает.


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

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