forum.bitel.ru
http://forum.bitel.ru/

как реализовать скрипт (понижение лимита)?
http://forum.bitel.ru/viewtopic.php?f=22&t=3829
Страница 1 из 1

Автор:  Alkazar [ 08 апр 2010, 19:14 ]
Заголовок сообщения:  как реализовать скрипт (понижение лимита)?

Пытаюсь написать скрипт понижения лимита на 10 дней и последующего восстановления. Сам в программировании не силен. Написал по мотивам Снижение лимита при внесении расхода вот это:
Код:
import bitel.billing.server.contract.bean.*;
import java.util.*;
import bitel.billing.server.util.*;
import bitel.billing.common.TimeUtils;
import bitel.billing.server.script.bean.event.EventProcessor;
import bitel.billing.server.script.bean.event.PaymentEvent;
import java.math.BigDecimal;

if( event.getFlag() != 1 ) {
    return;
};
 
int cid = event.getContractID();
cm = new ContractManager( con );
c = cm.getContractByID( cid );

int cid = c.getID();
   limit = 1000;
   period = 10;
   
    LimitManager limitManager = new LimitManager(con);
   
    //меняем лимит:
    limitManager.updateContractLimit(0, limit, cid, "понижение лимита", String.valueOf(period));
 
    //добавляем задание на возвращение лимита:
    Calendar dt = new GregorianCalendar();
    dt.add(6, period);
 
    task = new LimitChangeTask();
    task.setContractId(cid);
    task.setDate(dt);
    task.setUserId(uid);
    task.setSubSumm(limit);
 
    limitManager.addMoveTask(task);


Выполняется с ошибкой
Код:
GENERATE_TIME: 08.04.10 16:53:01
EXECUTION_STOP_TIME: 08.04.10 16:53:01
PROCESS_TIME: 24

OUT:


ERROR:


EXCEPTIONS:
Sourced file: Function [id:5; title:Понижение лимита на 10 дней] : Error in method invocation: Method updateContractLimit( int, int, int, java.lang.String, java.lang.String ) not found in class'bitel.billing.server.contract.bean.LimitManager' : at Line: 30 : in file: Function [id:5; title:Понижение лимита на 10 дней] : limitManager .updateContractLimit ( 0 , limit , cid , "понижение лимита" , String .valueOf ( period ) )

java.util.concurrent.ExecutionException: Sourced file: Function [id:5; title:Понижение лимита на 10 дней] : Error in method invocation: Method updateContractLimit( int, int, int, java.lang.String, java.lang.String ) not found in class'bitel.billing.server.contract.bean.LimitManager' : at Line: 30 : in file: Function [id:5; title:Понижение лимита на 10 дней] : limitManager .updateContractLimit ( 0 , limit , cid , "понижение лимита" , String .valueOf ( period ) )

   at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)
   at java.util.concurrent.FutureTask.get(FutureTask.java:91)
   at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine.runScriptImpl(ScriptMachine.java:359)
   at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:128)
   at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:239)
   at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:182)
   at bitel.billing.server.script.bean.event.EventProcessor.run(EventProcessor.java:140)
Caused by: Sourced file: Function [id:5; title:Понижение лимита на 10 дней] : Error in method invocation: Method updateContractLimit( int, int, int, java.lang.String, java.lang.String ) not found in class'bitel.billing.server.contract.bean.LimitManager' : at Line: 30 : in file: Function [id:5; title:Понижение лимита на 10 дней] : limitManager .updateContractLimit ( 0 , limit , cid , "понижение лимита" , String .valueOf ( period ) )

   at bsh.BSHMethodInvocation.eval(Unknown Source)
   at bsh.BSHPrimaryExpression.eval(Unknown Source)
   at bsh.BSHPrimaryExpression.eval(Unknown Source)
   at bsh.Interpreter.eval(Unknown Source)
   at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:310)
   at bitel.billing.server.script.bean.ScriptMachine$SimpleScriptRunner.runScript(ScriptMachine.java:69)
   at bitel.billing.server.script.bean.ScriptMachine.runScriptImpl(ScriptMachine.java:189)
   at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine.access$0(ScriptMachine.java:1)
   at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:349)
   at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:1)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   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:619)


WARNINGS:


Не могу понять почему не найден метод updateContractLimit в классе bitel.billing.server.contract.bean.LimitManager ?

Автор:  dimOn [ 08 апр 2010, 19:39 ]
Заголовок сообщения:  Re: как реализовать скрипт (понижение лимита)?

Потмоу что внимательнее гляньте в JavaDoc, там и нет такого метода

Автор:  dimOn [ 08 апр 2010, 19:41 ]
Заголовок сообщения:  Re: как реализовать скрипт (понижение лимита)?

Там есть метод
Код:
public void updateContractLimit( int uid, BigDecimal newValue, int cid, String comment, String days )

и limit должен быть не целым, а BigDecimal

попробуйте так
Код:
limitManager.updateContractLimit(0, new BigDecimal( limit ), cid, "понижение лимита", String.valueOf(period));

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/