BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 30 июн 2010, 18:32 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
Приходит письмо об ошибке работы бгскрипта:
Function [id:6; title:Переоткрытие шлюза при занесении расхода]: using deprecated method [public int bitel.billing.server.script.bean.event.Event.getContractID()]
Скрипт, естественно, успешно не отрабатывается


сам скрипт:
Код:
import java.util.*;
import bitel.billing.server.contract.bean.*;

import bitel.billing.server.ipn.bean.*;
import ru.bitel.bgbilling.server.util.ModuleSetup;

//Определяем cid договора:

cid = event.getContractID();
contract = new ContractManager(con).getContractByID(cid);
//Закрыт
modset = new ModuleSetup(con, 1);
(new IPNContractStatusManager(con, 1, modset)).changeStatus(cid, 2, 0, true);

//Открыт
modset = new ModuleSetup(con, 1);
(new IPNContractStatusManager(con, 1, modset)).changeStatus(cid, 0, 0, true);



и еще много подобных с getContractByID(cid), как быть и что делать ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2010, 18:33 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
попробуйте ID написать вот так: Id

Код:
getContractById

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2010, 18:35 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
не, постойте, ЕСТЕСТВЕННО при этом он должен отрабатываться :roll: это просто ПРЕДУПРЕЖДЕНИЕ что метод устарел.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2010, 18:50 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
прошу прощения, действительно работает, не удалось установить сразу причину, потому как очень много глюков с переходом на 5.1 произошло.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2010, 19:00 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
loginex писал(а):
прошу прощения, действительно работает, не удалось установить сразу причину, потому как очень много глюков с переходом на 5.1 произошло.

вы 5.1. поставили на боевую систему? О.О

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2010, 19:14 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
Phricker писал(а):
loginex писал(а):
прошу прощения, действительно работает, не удалось установить сразу причину, потому как очень много глюков с переходом на 5.1 произошло.

вы 5.1. поставили на боевую систему? О.О

не я, директор, ночью... пока я спал... партизан :evil:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2010, 19:24 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
loginex писал(а):
не я, директор, ночью... пока я спал... партизан :evil:

T_T Представил нашего директора который ночью заходит по ssh на сервер и ставит апдейт. Страшная картина

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2010, 19:31 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
ой а я даже и представлять не буду :roll:

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2010, 19:45 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Фигасе директора О_о...от таких неутаишь нечего %)

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 июл 2010, 14:15 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
Новая проблема: нет возможности установить Адрес абонента в договоре, объекты существуют в Справочники->Другие, но не отображаются при занесении их в договор.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 июл 2010, 14:19 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
:cry:


Вложения:
Комментарий к файлу: а тут все есть
addr2.jpg
addr2.jpg [ 91.75 КБ | Просмотров: 9400 ]
Комментарий к файлу: нет адресов
addr1.jpg
addr1.jpg [ 146.23 КБ | Просмотров: 9400 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 июл 2010, 16:08 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
1) в поле Улица введите название Улицы на которой находиться искомый дом...
2) выберите из предложенного списка улицу
3) двойным кликом выберите дом


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 июл 2010, 16:27 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
skn писал(а):
1) в поле Улица введите название Улицы на которой находиться искомый дом...
2) выберите из предложенного списка улицу
3) двойным кликом выберите дом

:facepalm: спасибо :oops:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 июл 2010, 19:25 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
Новая проблема: глючит интерфейс диллера
глюк выражается вот в чем:
заходим в кабинет диллера, кидаем деньги на счет абоненту, он их получает(так же это видно в "Приходе", если смотреть через клиент биллинга договор клиента), но выскакивает сообщение об ошибке(ниже скрин), однако окно при этом не закрывается, если нажать еще на "ОК" то будет зачислен еще один платеж.
Если зайти в "Просмотр отчета", то после обновления на 5.1 больше ничего там не отображается, за предыдущие месяцы на версии 5.0 отчеты показывает(скрин 2 ниже).


Вложения:
Комментарий к файлу: скрин2
idealer2.jpg
idealer2.jpg [ 170.57 КБ | Просмотров: 9377 ]
Комментарий к файлу: скрин1
idealer.jpg
idealer.jpg [ 187.55 КБ | Просмотров: 9377 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 июл 2010, 20:52 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
вот еще в логах
Код:
Jul 1, 2010 5:34:48 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet bitel.billing.server.card.idealer.IDealerExecuter threw exception
java.lang.NoSuchMethodError: bitel.billing.server.script.bean.event.PaymentEvent.<init>(Lbitel/billing/server/contract/bean/Payment;)V
        at bitel.billing.server.card.bean.DPaymentManager.addPayment(DPaymentManager.java:532)
        at bitel.billing.server.card.action.idealer.ActionPaymentAdd.doAction(ActionPaymentAdd.java:105)
        at bitel.billing.server.card.idealer.IDealerExecuter.doModule(IDealerExecuter.java:137)
        at bitel.billing.server.card.idealer.IDealerExecuter.doPost(IDealerExecuter.java:190)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:37)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)
Jul 1, 2010 5:35:00 PM org.apache.tomcat.util.http.Parameters processParameters
WARNING: Parameters: Invalid chunk ignored.




Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 июл 2010, 15:35 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
Сведения об ошибке на веб-странице

Агент пользователя: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
штамп времени: Fri, 2 Jul 2010 09:32:21 UTC


Сообщение: 'documentElement' - есть null или не является объектом
Строка: 331
Символ: 2
Код: 0
URI-код: http://host.xnxx.ru:8080/bgbilling/id/engine.js


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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 июл 2010, 20:03 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
stark писал(а):
как получаете ошибку ? просто заходите в интерфейс дилера ?

последнее обновление помогло. ошибка вылетала при нажатии на "ОК" после ввода суммы платежа.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 июл 2010, 18:36 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
возвращаясь к скриптам поведения. Не работает вот такой скрипт(не изменяется статус договора):
Код:
import bitel.billing.server.call.bean.Login;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.script.bean.event.*;
import bitel.billing.server.service.bean.*;
import bitel.billing.server.npay.bean.*;
import bitel.billing.common.KernelConst;
import java.util.*;
import bitel.billing.server.ipn.bean.*;
import ru.bitel.bgbilling.server.util.ModuleSetup;


GROUP_ERROR_BALANCE = 62;
cid = event.getContractID();
date = event.getGenerateTime().clone();
contract = new ContractManager(con).getContractByID(cid);

payment = event.getPayment();
pt = payment.getPaymentTypeID();

cl = contract.getBalanceLimit();

balance = new BalanceUtils(con);
cb = balance.getBalance(date.getTime(), cid);

ContractStatusManager statusManager = new ContractStatusManager(con);
status = statusManager.getStatus(cid, date);

if (status != null) {
   cs = status.getStatus();
} else {
   ContractStatus status = new ContractStatus();
   status.setContractId(cid);
   status.setDate1(date);
   status.setDate2(null);
   status.setStatus(KernelConst.CONTRACT_STATUS_ACTIVE);
   status.setComment("Инициализация статуса сервером");
   statusManager.changeStatus(status, 0);
   cs = status.getStatus();
};

NPAY_MID = 2;
csm = new ContractServiceManager(con);
List sl = csm.getContractServiceList(cid, NPAY_MID);

print("Contract Limit: " + cl);
print("Contract Balance: " + cb);

for (Iterator it=sl.iterator(); it.hasNext(); ) {
   cs = (ContractService)it.next();
   print (cs.getServiceTitle());
}

if (pt == -1) { // Изменение лимита
   if ((cb.floatValue() >= cl.floatValue()) && (cs == KernelConst.CONTRACT_STATUS_SUSPENDED)) {
      // Баланс больше лимита. Подключаем договор.
      cg = contract.getGroups();
      cg = cg & ~(1L<<GROUP_ERROR_BALANCE);
      query = "UPDATE contract SET gr=? WHERE id=?";
      psUpdate = con.prepareStatement(query);
      psUpdate.setLong(1, cg);
      psUpdate.setInt(2, cid);
      psUpdate.executeUpdate();
      
      ContractStatusManager statusManager = new ContractStatusManager(con);
      status = statusManager.getStatus(cid, date);
      status.setContractId(cid);
      status.setDate1(date);
      status.setDate2(null);
      status.setStatus(KernelConst.CONTRACT_STATUS_ACTIVE);
      status.setComment("Смена статуса сервером - подключен по изменению лимита");
      statusManager.changeStatus(status, 0);
   } else if ((cb.floatValue() < cl.floatValue()) && (cs == KernelConst.CONTRACT_STATUS_ACTIVE)) {
      // Баланса ниже лимита. Приостанавливаем договор.
      cg = contract.getGroups();
      cg = cg | (1L<<GROUP_ERROR_BALANCE);
      query = "UPDATE contract SET gr=? WHERE id=?";
      psUpdate = con.prepareStatement(query);
      psUpdate.setLong(1, cg);
      psUpdate.setInt(2, cid);
      psUpdate.executeUpdate();
   
      ContractStatusManager statusManager = new ContractStatusManager(con);
      status = statusManager.getStatus(cid, date);
      status.setContractId(cid);
      status.setDate1(date);
      status.setDate2(null);
      status.setStatus(KernelConst.CONTRACT_STATUS_SUSPENDED);
      status.setComment("Смена статуса сервером - приостановлен, поступивших средств недостаточно");
      statusManager.changeStatus(status, 0);
   }
} else { // Пришёл реальный платёж
   if ((cb.floatValue() >= cl.floatValue()) && (cs == KernelConst.CONTRACT_STATUS_SUSPENDED)) {
      // Баланс больше лимита. Подключаем договор.
      cg = contract.getGroups();
      cg = cg & ~(1L<<GROUP_ERROR_BALANCE);
      query = "UPDATE contract SET gr=? WHERE id=?";
      psUpdate = con.prepareStatement(query);
      psUpdate.setLong(1, cg);
      psUpdate.setInt(2, cid);
      psUpdate.executeUpdate();
      
      ContractStatusManager statusManager = new ContractStatusManager(con);
      status = statusManager.getStatus(cid, date);
      status.setContractId(cid);
      status.setDate1(date);
      status.setDate2(null);
      status.setStatus(KernelConst.CONTRACT_STATUS_ACTIVE);
      status.setComment("Смена статуса сервером - подключен по поступлению платежа");
      statusManager.changeStatus(status, 0);
      
      //Открыть шлюз
      modset = new ModuleSetup(con, 1);
      (new IPNContractStatusManager(con, 1, modset)).changeStatus(cid, 0, 0, true);

   }
}


Он срабатывает при приходе платежа. Однако он не работает на 5.1. В письмо приходит сообщение:
Цитата:
ID события: bgbs.contract.script.error
Время регистрации события: 06.07.2010 16:30:39

Contract 116
GENERATE_TIME: 06.07.10 16:30:39
EXECUTION_STOP_TIME: 06.07.10 16:30:39
PROCESS_TIME: 37

OUT:
Contract Limit: 0.00
Contract Balance: 699.00


WARNINGS:
Function [id:3; title:Смена статуса договора при поступлении платежа]: using deprecated method [public int bitel.billing.server.script.bean.event.Event.getContractID()]
Function [id:3; title:Смена статуса договора при поступлении платежа]: using deprecated method [public bitel.billing.server.contract.bean.ContractStatus bitel.billing.server.contract.bean.ContractStatusManager.getStatus(int,java.util.Calendar)]


Смысл этого скрипта в том, чтобы изменять статус договора из "приостановлен" в "подключен", ну еще он выводит договор из спец группы, в которую попадают люди, у тех, у кого баланс отрицательный.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 июл 2010, 18:42 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Никаких ошибок в логе не видно. Варнинги уберите, переписав код (см.Api, в т.ч. раздел deprecated).

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 июл 2010, 20:35 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
вот теперь скрипт
Код:
import bitel.billing.server.call.bean.Login;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.script.bean.event.*;
import bitel.billing.server.service.bean.*;
import bitel.billing.server.npay.bean.*;
import bitel.billing.common.KernelConst;
import java.util.*;
import bitel.billing.server.ipn.bean.*;
import ru.bitel.bgbilling.server.util.ModuleSetup;


GROUP_ERROR_BALANCE = 62;
cid = event.getContractId();
date = event.getGenerateTime().clone();
contract = new ContractManager(con).getContractByID(cid);

payment = event.getPayment();
pt = payment.getPaymentTypeID();

cl = contract.getBalanceLimit();

balance = new BalanceUtils(con);
cb = balance.getBalance(date.getTime(), cid);

ContractStatus statusManager = new ContractStatus();
status = statusManager.getStatus(cid, date);

if (status != null) {
   cs = status.getStatus();
} else {
   ContractStatus status = new ContractStatus();
   status.setContractId(cid);
   status.setDate1(date);
   status.setDate2(null);
   status.setStatus(KernelConst.CONTRACT_STATUS_ACTIVE);
   status.setComment("Инициализация статуса сервером");
   statusManager.changeStatus(status, 0);
   cs = status.getStatus();
};

NPAY_MID = 2;
csm = new ContractServiceManager(con);
List sl = csm.getContractServiceList(cid, NPAY_MID);

print("Contract Limit: " + cl);
print("Contract Balance: " + cb);

for (Iterator it=sl.iterator(); it.hasNext(); ) {
   cs = (ContractService)it.next();
   print (cs.getServiceTitle());
}

if (pt == -1) { // Изменение лимита
   if ((cb.floatValue() >= cl.floatValue()) && (cs == KernelConst.CONTRACT_STATUS_SUSPENDED)) {
      // Баланс больше лимита. Подключаем договор.
      cg = contract.getGroups();
      cg = cg & ~(1L<<GROUP_ERROR_BALANCE);
      query = "UPDATE contract SET gr=? WHERE id=?";
      psUpdate = con.prepareStatement(query);
      psUpdate.setLong(1, cg);
      psUpdate.setInt(2, cid);
      psUpdate.executeUpdate();
     
      ContractStatus statusManager = new ContractStatus();
      status = statusManager.getStatus(cid, date);
      status.setContractId(cid);
      status.setDate1(date);
      status.setDate2(null);
      status.setStatus(KernelConst.CONTRACT_STATUS_ACTIVE);
      status.setComment("Смена статуса сервером - подключен по изменению лимита");
      statusManager.changeStatus(status, 0);
   } else if ((cb.floatValue() < cl.floatValue()) && (cs == KernelConst.CONTRACT_STATUS_ACTIVE)) {
      // Баланса ниже лимита. Приостанавливаем договор.
      cg = contract.getGroups();
      cg = cg | (1L<<GROUP_ERROR_BALANCE);
      query = "UPDATE contract SET gr=? WHERE id=?";
      psUpdate = con.prepareStatement(query);
      psUpdate.setLong(1, cg);
      psUpdate.setInt(2, cid);
      psUpdate.executeUpdate();
   
      ContractStatus statusManager = new ContractStatus();
      status = statusManager.getStatus(cid, date);
      status.setContractId(cid);
      status.setDate1(date);
      status.setDate2(null);
      status.setStatus(KernelConst.CONTRACT_STATUS_SUSPENDED);
      status.setComment("Смена статуса сервером - приостановлен, поступивших средств недостаточно");
      statusManager.changeStatus(status, 0);
   }
} else { // Пришёл реальный платёж
   if ((cb.floatValue() >= cl.floatValue()) && (cs == KernelConst.CONTRACT_STATUS_SUSPENDED)) {
      // Баланс больше лимита. Подключаем договор.
      cg = contract.getGroups();
      cg = cg & ~(1L<<GROUP_ERROR_BALANCE);
      query = "UPDATE contract SET gr=? WHERE id=?";
      psUpdate = con.prepareStatement(query);
      psUpdate.setLong(1, cg);
      psUpdate.setInt(2, cid);
      psUpdate.executeUpdate();
     
      ContractStatus statusManager = new ContractStatus();
      status = statusManager.getStatus(cid, date);
      status.setContractId(cid);
      status.setDate1(date);
      status.setDate2(null);
      status.setStatus(KernelConst.CONTRACT_STATUS_ACTIVE);
      status.setComment("Смена статуса сервером - подключен по поступлению платежа");
      statusManager.changeStatus(status, 0);
     
      //Открыть шлюз
      modset = new ModuleSetup(con, 1);
      (new IPNContractStatusManager(con, 1, modset)).changeStatus(cid, 0, 0, true);

   }
}


такой еррор приходит в письме:
Цитата:
Contract 116
GENERATE_TIME: 06.07.10 18:33:51
EXECUTION_STOP_TIME: 06.07.10 18:33:51
PROCESS_TIME: 15

OUT:


EXCEPTIONS:
Sourced file: Function [id:3; title:Смена статуса договора при поступлении платежа] : Error in method invocation: Method getStatus( int, java.util.GregorianCalendar ) not found in class'bitel.billing.server.contract.bean.ContractStatus' : at Line: 26 : in file: Function [id:3; title:Смена статуса договора при поступлении платежа] : statusManager .getStatus ( cid , date )

java.util.concurrent.ExecutionException: Sourced file: Function [id:3; title:Смена статуса договора при поступлении платежа] : Error in method invocation: Method getStatus( int, java.util.GregorianCalendar ) not found in class'bitel.billing.server.contract.bean.ContractStatus' : at Line: 26 : in file: Function [id:3; title:Смена статуса договора при поступлении платежа] : statusManager .getStatus ( cid , date )

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:371)
at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:129)
at bitel.billing.server.script.bean.event.EventProcessor.processContractEvent(EventProcessor.java:299)
at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:217)
at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:201)
at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:188)
at bitel.billing.server.contract.action.ActionUpdateContractPayment.doAction(ActionUpdateContractPayment.java:179)
at bitel.billing.server.Executer.doModule(Unknown Source)
at bitel.billing.server.Executer.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:37)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: Sourced file: Function [id:3; title:Смена статуса договора при поступлении платежа] : Error in method invocation: Method getStatus( int, java.util.GregorianCalendar ) not found in class'bitel.billing.server.contract.bean.ContractStatus' : at Line: 26 : in file: Function [id:3; title:Смена статуса договора при поступлении платежа] : statusManager .getStatus ( cid , date )

at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:77)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at bsh.BSHAssignment.eval(BSHAssignment.java:77)
at bsh.Interpreter.eval(Interpreter.java:653)
at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:352)
at bitel.billing.server.script.bean.ScriptMachine$SimpleScriptRunner.runScript(ScriptMachine.java:70)
at bitel.billing.server.script.bean.ScriptMachine.runScriptImpl(ScriptMachine.java:190)
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:361)
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)
... 1 more


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 июл 2010, 23:37 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
попробуйте заменить

Код:
status = statusManager.getStatus(cid, date);


на

Код:
status = statusManager.getStatus(cid, date.getTime());


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 июл 2010, 14:40 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
попробовал. теперь
Цитата:
ID события: bgbs.contract.script.error
Время регистрации события: 07.07.2010 12:39:00

Contract 116
GENERATE_TIME: 07.07.10 12:39:00
EXECUTION_STOP_TIME: 07.07.10 12:39:00
PROCESS_TIME: 16

OUT:


EXCEPTIONS:
Sourced file: Function [id:3; title:Смена статуса договора при поступлении платежа] : Error in method invocation: Method getStatus( int, java.util.Date ) not found in class'bitel.billing.server.contract.bean.ContractStatus' : at Line: 26 : in file: Function [id:3; title:Смена статуса договора при поступлении платежа] : statusManager .getStatus ( cid , date .getTime ( ) )

java.util.concurrent.ExecutionException: Sourced file: Function [id:3; title:Смена статуса договора при поступлении платежа] : Error in method invocation: Method getStatus( int, java.util.Date ) not found in class'bitel.billing.server.contract.bean.ContractStatus' : at Line: 26 : in file: Function [id:3; title:Смена статуса договора при поступлении платежа] : statusManager .getStatus ( cid , date .getTime ( ) )

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:371)
at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:129)
at bitel.billing.server.script.bean.event.EventProcessor.processContractEvent(EventProcessor.java:299)
at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:217)
at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:201)
at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:188)
at bitel.billing.server.contract.action.ActionUpdateContractPayment.doAction(ActionUpdateContractPayment.java:179)
at bitel.billing.server.Executer.doModule(Unknown Source)
at bitel.billing.server.Executer.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:37)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: Sourced file: Function [id:3; title:Смена статуса договора при поступлении платежа] : Error in method invocation: Method getStatus( int, java.util.Date ) not found in class'bitel.billing.server.contract.bean.ContractStatus' : at Line: 26 : in file: Function [id:3; title:Смена статуса договора при поступлении платежа] : statusManager .getStatus ( cid , date .getTime ( ) )

at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:77)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at bsh.BSHAssignment.eval(BSHAssignment.java:77)
at bsh.Interpreter.eval(Interpreter.java:653)
at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:352)
at bitel.billing.server.script.bean.ScriptMachine$SimpleScriptRunner.runScript(ScriptMachine.java:70)
at bitel.billing.server.script.bean.ScriptMachine.runScriptImpl(ScriptMachine.java:190)
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:361)
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)
... 1 more


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 июл 2010, 15:52 
Не в сети
Аватара пользователя

Зарегистрирован: 19 мар 2009, 16:15
Сообщения: 210
Откуда: Уфа
Карма: 27
У Вас несколько раз встречается
Код:
ContractStatus statusManager = new ContractStatus();

вместо
Код:
ContractStatusManager statusManager = new ContractStatusManager();

:)

Не думаю, что это работало бы на 4.6\5.0 :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 июл 2010, 16:09 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
работало с 4.6 до 5.0, точно уже не помню, брал вроде из вики, немного модифицировав. теперь в 5.1
bitel.billing.server.contract.bean.ContractStatusManager.getStatus(int, Calendar) убрали в депрекейтед, да так убрали, что теперь этот скрипт вообще не пашет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 июл 2010, 16:14 
Не в сети
Аватара пользователя

Зарегистрирован: 19 мар 2009, 16:15
Сообщения: 210
Откуда: Уфа
Карма: 27
Вы понимаете, что у Вас статус менеджером назывался обыкновенный объект ContractStatus (bean)? Который никакого getStatus( int, Calendar ) вообще не имеет.
Внимательно мой предыдущий пост перечитайте и свой код посмотрите :)

Вообщем, вот:
Код:
....
ContractStatus statusManager = new ContractStatus();
status = statusManager.getStatus(cid, date);
status.setContractId(cid);
status.setDate1(date);
status.setDate2(null);
....

А должно быть:
Код:
....
ContractStatusManager statusManager = new ContractStatusManager();
status = statusManager.getStatus(cid, date);
status.setContractId(cid);
status.setDate1(date);
status.setDate2(null);
....

И так три раза у Вас встречается. Повторюсь, этот код не мог работать на 5.0, т.к. сущность (ContractStatus) и ее менеджер (ContractStatusManager) - это разные классы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 июл 2010, 16:19 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
я понимаю, у меня так и было, как вы написали
Цитата:
ContractStatusManager statusManager = new ContractStatusManager();

но больше это не работает, тем более вываливаются варнинги о том, что ContractStatusManager.getStatus в депрекейтеде.
в Api 5.1 написано использовать ContractStatus.getStatus


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 июл 2010, 16:29 
Не в сети

Зарегистрирован: 01 окт 2009, 13:19
Сообщения: 56
Карма: 0
на данный момент скрипт имеет вид:
Код:
import bitel.billing.server.call.bean.Login;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.script.bean.event.*;
import bitel.billing.server.service.bean.*;
import bitel.billing.server.npay.bean.*;
import bitel.billing.common.KernelConst;
import java.util.*;
import bitel.billing.server.ipn.bean.*;
import ru.bitel.bgbilling.server.util.ModuleSetup;


GROUP_ERROR_BALANCE = 62;
cid = event.getContractId();
date = event.getGenerateTime().clone();
contract = new ContractManager(con).getContractByID(cid);

payment = event.getPayment();
pt = payment.getPaymentTypeID();

cl = contract.getBalanceLimit();

balance = new BalanceUtils(con);
cb = balance.getBalance(date.getTime(), cid);

ContractStatusManager statusManager = new ContractStatusManager(con);
status = statusManager.getStatus(cid, date.getTime());

if (status != null) {
   cs = status.getStatus();
} else {
   ContractStatusManager statusManager = new ContractStatusManager(con);
   status.setContractId(cid);
   status.setFromDate(date);
   status.getToDate(null);
   status.setStatus(KernelConst.CONTRACT_STATUS_ACTIVE);
   status.setComment("Инициализация статуса сервером");
   statusManager.changeStatus(status, 0);
   cs = status.getStatus();
};

NPAY_MID = 2;
csm = new ContractServiceManager(con);
List sl = csm.getContractServiceList(cid, NPAY_MID);

print("Contract Limit: " + cl);
print("Contract Balance: " + cb);

for (Iterator it=sl.iterator(); it.hasNext(); ) {
   cs = (ContractService)it.next();
   print (cs.getServiceTitle());
}

if (pt == -1) { // Изменение лимита
   if ((cb.floatValue() >= cl.floatValue()) && (cs == KernelConst.CONTRACT_STATUS_SUSPENDED)) {
      // Баланс больше лимита. Подключаем договор.
      cg = contract.getGroups();
      cg = cg & ~(1L<<GROUP_ERROR_BALANCE);
      query = "UPDATE contract SET gr=? WHERE id=?";
      psUpdate = con.prepareStatement(query);
      psUpdate.setLong(1, cg);
      psUpdate.setInt(2, cid);
      psUpdate.executeUpdate();
     
      ContractStatusManager statusManager = new ContractStatusManager(con);
      status = statusManager.getStatus(cid, date.getTime());
      status.setContractId(cid);
      status.setFromDate(date);
      status.getToDate(null);
      status.setStatus(KernelConst.CONTRACT_STATUS_ACTIVE);
      status.setComment("Смена статуса сервером - подключен по изменению лимита");
      statusManager.changeStatus(status, 0);
   } else if ((cb.floatValue() < cl.floatValue()) && (cs == KernelConst.CONTRACT_STATUS_ACTIVE)) {
      // Баланса ниже лимита. Приостанавливаем договор.
      cg = contract.getGroups();
      cg = cg | (1L<<GROUP_ERROR_BALANCE);
      query = "UPDATE contract SET gr=? WHERE id=?";
      psUpdate = con.prepareStatement(query);
      psUpdate.setLong(1, cg);
      psUpdate.setInt(2, cid);
      psUpdate.executeUpdate();
   
      ContractStatusManager statusManager = new ContractStatusManager(con);
      status = statusManager.getStatus(cid, date.getTime());
      status.setContractId(cid);
      status.setFromDate(date);
      status.getToDate(null);
      status.setStatus(KernelConst.CONTRACT_STATUS_SUSPENDED);
      status.setComment("Смена статуса сервером - приостановлен, поступивших средств недостаточно");
      statusManager.changeStatus(status, 0);
   }
} else { // Пришёл реальный платёж
   if ((cb.floatValue() >= cl.floatValue()) && (cs == KernelConst.CONTRACT_STATUS_SUSPENDED)) {
      // Баланс больше лимита. Подключаем договор.
      cg = contract.getGroups();
      cg = cg & ~(1L<<GROUP_ERROR_BALANCE);
      query = "UPDATE contract SET gr=? WHERE id=?";
      psUpdate = con.prepareStatement(query);
      psUpdate.setLong(1, cg);
      psUpdate.setInt(2, cid);
      psUpdate.executeUpdate();
     
      ContractStatusManager statusManager = new ContractStatusManager(con);
      status = statusManager.getStatus(cid, date.getTime());
      status.setContractId(cid);
      status.setFromDate(date);
      status.getToDate(null);
      status.setStatus(KernelConst.CONTRACT_STATUS_ACTIVE);
      status.setComment("Смена статуса сервером - подключен по поступлению платежа");
      statusManager.changeStatus(status, 0);
     
      //Открыть шлюз
      modset = new ModuleSetup(con, 1);
      (new IPNContractStatusManager(con, 1, modset)).changeStatus(cid, 0, 0, true);

   }
}


ошибок нет, но скрипт что-то не работает, в логах
Цитата:
07-07/14:32:18 INFO [http-8080-3] script - Process event cid:31; event:Event bitel.billing.server.script.bean.event.PaymentEvent cid: 31; module: 0; type: 1; userId: 7
07-07/14:32:18 INFO [http-8080-3] script - Process event cid:31; event:Event bitel.billing.server.script.bean.event.PaymentEvent cid: 31; module: 0; type: 1; userId: 7
07-07/14:32:18 INFO [http-8080-3] script - Process time => 32
07-07/14:32:18 INFO [http-8080-3] script - Contract Limit: 0.00
Contract Balance: 756.00


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 июл 2010, 16:35 
Не в сети
Аватара пользователя

Зарегистрирован: 19 мар 2009, 16:15
Сообщения: 210
Откуда: Уфа
Карма: 27
loginex писал(а):
я понимаю, у меня так и было, как вы написали
Цитата:
ContractStatusManager statusManager = new ContractStatusManager();

но больше это не работает, тем более вываливаются варнинги о том, что ContractStatusManager.getStatus в депрекейтеде.
в Api 5.1 написано использовать ContractStatus.getStatus

Warnings - это предупреждения, но не ошибки, т.е. скрипт при этом отрабатывает корректно.

По поводу API 5.1 там написано
Цитата:
использовать public ContractStatus getStatus( int cid, Date date )

имелось ввиду у ContractStatusManager использовать public функцию getStatus( int, Date ), которая возвращает ContractStatus.
Исправим описание, т.к. оно и правда немного двусмысленное.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 июл 2010, 16:41 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
loginex писал(а):
ошибок нет, но скрипт что-то не работает, в логах
Цитата:
07-07/14:32:18 INFO [http-8080-3] script - Process event cid:31; event:Event bitel.billing.server.script.bean.event.PaymentEvent cid: 31; module: 0; type: 1; userId: 7
07-07/14:32:18 INFO [http-8080-3] script - Process event cid:31; event:Event bitel.billing.server.script.bean.event.PaymentEvent cid: 31; module: 0; type: 1; userId: 7
07-07/14:32:18 INFO [http-8080-3] script - Process time => 32
07-07/14:32:18 INFO [http-8080-3] script - Contract Limit: 0.00
Contract Balance: 756.00

скрипт работает , но мы не значем какая у вас логика и что вы хотите получить ..денлайте выводы (print ) , выводите переменные, разбирайтесь почему не работает


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу 1, 2  След.

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


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

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


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

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