BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 14 май 2024, 22:30

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




Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 27 авг 2009, 11:34 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Есть тарифные планы с пакетом предоплаченного трафика пропорционально периоду. Как я понимаю, период берется не от действия тарифного плана, а из разрешенной соответствующей услуги.
Это нормально работает, если клиент подключается в начале месяца.
Вопрос в том, как сделать возможной смену тарифного плана.
Т.е. сейчас при смене ТП услуга (в нашем случае это "Входящий интернет-трафик") остается открытой, т.к. она нужна для других тарифных планов, поэтому пакет трафика считается за весь месяц. При этом, если смена происходит с одного тарифного плана с пакетом трафика на другой, то клиент может использовать оба пакета в полном объёме, а абонплату за каждый заплатит пропорционально периоду.
Как правильно сделать смену таких ТП в течение месяца?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 авг 2009, 11:45 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Пока никак не сделать, планируем сделать режим "Пропорционально периоду тарифа" в следующих версиях. Вообще, проще разрещать смену раз в месяц только, а то головняка много.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 авг 2009, 16:54 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Администратор писал(а):
никак не сделать

ну почему же?
чтобы и снимать абонентку и предоставлять включенный в нее траффик "пропорционально периоду" достаточно повесить на событие "запрос учетного периода" скрипт вида:
Код:
import bitel.billing.server.contract.bean.*;
import bitel.billing.common.*;
import java.util.*;

contractServiceManager = new ContractServiceManager(con);

cid       = event.getContractID();
date      = (Calendar)event.getRequestDate();
dateStart = (Calendar)date.clone();
dateEnd   = (Calendar)date.clone();

// дата окончания расчетного периода = последнее число текущего месяца, 23:59:0.0
// след. 2 строчки - то же что и: TimeUtils.moveToEndOfMonth(dateEnd)
dateEnd.set(Calendar.DAY_OF_MONTH, 1);
dateEnd.set(Calendar.DAY_OF_MONTH, dateEnd.getActualMaximum(Calendar.DAY_OF_MONTH));
dateEnd.set(Calendar.HOUR_OF_DAY, 23);
dateEnd.set(Calendar.MINUTE, 59);
dateEnd.set(Calendar.SECOND, 0);
dateEnd.set(Calendar.MILLISECOND, 0);

// дата начала расчетного периода
event.setPeriodStart(dateStart);

// дата окончания расчетного периода
event.setPeriodEnd(dateEnd);

print("RADIUS Period Request:");
print("Contract ID:  " + cid);
print("Period Start: " + TimeUtils.format(dateStart, "dd.MM.yyyy HH:mm:ss.SSS"));
print("Period End:   " + TimeUtils.format(dateEnd, "dd.MM.yyyy HH:mm:ss.SSS"));

serviceList = contractServiceManager.getContractServiceList(cid, date);
serviceDate = TimeUtils.convertCalendarToDate(dateStart);

for (ContractService service : serviceList) {
    // подключение услуг датой начала расчетного периода
    service.setDateFrom(serviceDate);
    contractServiceManager.updateContractService(service.getID().toString(), service);
    print("Service ID: " + service.getServiceID() + " start: " + TimeUtils.formatDate(dateStart));
}

event.setProcessed(true);

который проставит услугам даты:
Код:
дата начала действия услуги = дата начала учетного периода = дата 1-го подключения в текущем месяце

и все будет прекрасно работать (у меня уже оч. давно так работает), при этом рулить всем можно прямо в дереве тарифов :) проще говоря - подключился в текущем месяце - получи _все_ "пропорционально периоду" ...
но это верно только если тариф действет в рамках одного месяца, если же происходит его смена, то тут надо писать скрипт на смену тарифа в котром можно пойти, двумя путями:
- удалить учетный период за текущий месяц что приведет, при 1-м подключении на новом тарифе, к повторному срабатыванию скрипта запроса учетного периода
- изменить даты услуг в договоре на даты действия тарифа
правда тут, из за изменения дат, есть вариант отката абон. платы, если она начисляется модулем, а не скриптом (прежняя наработка будет удалена и начислена новая)

так что я полагаю Ваше утверждение "никак не сделать" не верно :) поправьте меня если я не прав

Администратор писал(а):
проще разрещать смену раз в месяц только, а то головняка много.

полностью согласен!

P.S. я не стал делать конструкцию вида:
- получить список услуг
- проставить как даты как начала так и даты окончания действия всем услугам
хотя идеологичсеки это верно (позволит удобно производить перерасчет), но не хотелось создавать в новом учетном периоде список тех же самых услуг, опять проставлять им даты, опять создавать список услуг ... в общем - не хотелось плодить простыню одних и тех же услуг которые различаются только датой

P.P.S. все это верно для 4.5 где и работает


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 ноя 2009, 20:38 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
господа разработчики, подскажите пожалуйста, как можно получить список услуг для договора? (bitel.billing.server.contract.bean.Contract.getServiceList() теперь Deprecated)
дело в том что указанный выше скрипт прекрасно работает, но возникла необходимость не просто обновлять даты услуг, а добавлять весь список разрешенных для юзера услуг, если это конечно идеологически правильно (надо ли это вообще?) ...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 ноя 2009, 17:32 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
bitel.billing.server.contract.bean.Contract.getServiceList() - был странный метод, который возвращал сохраненный в объекте Contract список объектов.
Убран. Т.к. нигде в коде не использовался. Да и смыслу в нём мало. Если нужно - можно этот же список сохранить в отдельную переменную.
Не нашёл в приведённом выше скрипте использование данного метода.


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

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
суть такова ...
вышеуказанный код прекрасно работает на 4.5 делая именно то что требовалось при его написании, т.е. он при 1-м подключении в месяце проставляет только начальные даты услуг дабы работал режим "пропорционально периоду" ... вопрос был вызван тем что захотелось не обновлять даты услуг, а добавлять весь список услуг заново, имея целую пачку услуг с датами = датам расчетного периода ... идея вроде бы неплохая, но, т.к. есть страстное желание таки перейти на 4.6 или даже на 5.0, то получается что вопрос был задан не только некорректно но и несколько поспешно :oops: вопрос скорее в том как реализовать в 4.6/5.0 работу режима "пропорционально периоду" ввиду того что там не подключаются услуги а подключаются модули? надо по аналогии с 4.5 модули подключать опред. датой? как вообще работает "пропорционально периоду" в 4.6/5.0? в 4.5 все плясало от дат действия услуг, а как сейчас?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 дек 2009, 16:47 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
snark писал(а):
суть такова ...
вышеуказанный код прекрасно работает на 4.5 делая именно то что требовалось при его написании, т.е. он при 1-м подключении в месяце проставляет только начальные даты услуг дабы работал режим "пропорционально периоду" ... вопрос был вызван тем что захотелось не обновлять даты услуг, а добавлять весь список услуг заново, имея целую пачку услуг с датами = датам расчетного периода ... идея вроде бы неплохая, но, т.к. есть страстное желание таки перейти на 4.6 или даже на 5.0, то получается что вопрос был задан не только некорректно но и несколько поспешно :oops: вопрос скорее в том как реализовать в 4.6/5.0 работу режима "пропорционально периоду" ввиду того что там не подключаются услуги а подключаются модули? надо по аналогии с 4.5 модули подключать опред. датой? как вообще работает "пропорционально периоду" в 4.6/5.0? в 4.5 все плясало от дат действия услуг, а как сейчас?


так же как и раньше работает .Только теперь разрешенные услуги берутся


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re:
СообщениеДобавлено: 08 дек 2009, 14:59 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Администратор писал(а):
планируем сделать режим "Пропорционально периоду тарифа" в следующих версиях

Как прогресс?

snark писал(а):
пойти, двумя путями:
- удалить учетный период за текущий месяц что приведет, при 1-м подключении на новом тарифе, к повторному срабатыванию скрипта запроса учетного периода
- изменить даты услуг в договоре на даты действия тарифа

Мм, а если закрыть один учетный период и открыть новый?
Вообще, где можно прочитать про суть учетных периодов как таковую? В доках по Dial-Up не нашел.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 дек 2009, 19:36 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
как я понял "учетный период" - это такой "месяц" в котором дней может быть ровно столько сколько надо, т.е. если месяц это с 1-го числа и до конца (28/30/31), то учетный период это может быть и один день и 10 и 30 и 100500 ... думаю я недалек от истины


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 дек 2009, 10:29 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Провел ряд тестов:
Есть два разных тарифа, в каждом первые 100МБ пропорционально периоду считаются за 0р/МБ, а сверх того - за 1,5 и 1,9 р. соответственно (цены здесь роли не играют). Услуга действует в течение всего месяца.
Версия 4.6

1. Ставим первый из них в виде двух периодов в течение месяца: 1-x, (x+1)-30. Учетные периоды не указаны. Пересчитываем pppoe, создаем счет, смотрим по количеству трафика превышения, сколько вычлось трафика из общего количества за месяц. Вычлось 100МБ, как если бы этот тариф стоял с периодом 1-30. Все верно.

2. То же самое, но с двумя учетными периодами: 1 - x и (x+1) - 30. Пересчитываем. Результат тот же.

3. Ставим первый с периодом 1 - x, второй - с периодом (x+1) - 30. Учетные периоды остаются такие же: 1 - x, (x+1) - 1. Пересчитываем. Получаем в сумме 200 МБ бесплатного трафика - с каждого тарифного плана.

4. То же без учетных периодов - тот же результат.

5. То же с одним периодом: 1-x. Посчиталось 100МБ - с первого тарифа, со второго весь трафик посчитался как преобладающий.

Выводы:
- Учетные периоды задают период, в течение которого учитывается наработка dial-up по классам (как-то так), но этот период не меняет пропорций снятия пакетов трафика и, тем паче, абонплат (т.к. учетные периоды к модулю абонплат отношения не имеют)
- Одинаковые тарифы с пакетами трафика с подряд идущими периодами считаются как один период (по крайней мере касаемо пакетов трафика)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 дек 2009, 10:45 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Туплю - там же указывается xx трафика "за день"/"за месяц"/"за учетный период" "пропорционально периоду"/"безусловно"

У нас стояло "за месяц"

И все же хотелось бы, чтобы появилось "пропорционально периоду действия тарифа"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 дек 2009, 10:54 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
..К тому же понятие учетного периода есть только для Dial-up, а узел тарифного плана типа "диапазон" есть и в IPN


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 дек 2009, 22:12 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
stark писал(а):
snark писал(а):
...
как вообще работает "пропорционально периоду" в 4.6/5.0? в 4.5 все плясало от дат действия услуг, а как сейчас?
так же как и раньше работает .Только теперь разрешенные услуги берутся

да, действительно так же ... в 4.6 скрипт работает как в 4.5 за исключением одного но - он не изменяет даты услуг модуля npay :( в чем загвоздка? подскажите, пожалуйста, что подправить/дописать


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 дек 2009, 21:24 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
пытаясь допилить этот скрипт под 4.6 высянилось что при создании договора из шаблона, в котором указана услуга модуля npay, она в договор как бы добавляется, но в базе ее нет и скрипт вида:
Код:
NPAY_MID = 3;

contractServiceManager = new ContractServiceManager(con);

contractId  = event.getContractID();
serviceList = contractServiceManager.getContractServiceList(contractId, NPAY_MID);

print("размер списка: " + serviceList.size());

выдает:
Код:
размер списка: 0

т.е. он ее не видит, ее для него нет :(
баг? фича? что делать то?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 дек 2009, 21:26 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
небольшое дополнение к пред. посту


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 дек 2009, 21:31 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
и еще вопрос на тему услуг

Код:
java -Dnetworkaddress.cache.ttl=3600 -Xmx256m -Djava.awt.headless=true -cp ".:./lib/*" bitel.billing.server.contract.ServiceNormalizer

Цитата:
Команду можно запускать многократно впоследствии, например, если у вас где-нибудь производится привязка абонентских плат к договору посредством занесения услуги модуля.

т.е. если я не из шаблона, а руками добавляю услугу модуля необходимо выполнять эту комманду?


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

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Раньше было понятие услуг договора, а сейчас оно устарело - услуги привязываются к договору через разрешенные услуги модуля. В этом вся и загвоздка, видимо.

Кстати, у меня такое впечатление (сужу по старым счетам и отзывам), что когда были услуги договора, трафик считался пропорционально действия тарифного плана. Хотя могу ошибаться.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 дек 2009, 18:31 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Cromeshnic писал(а):
Раньше было понятие услуг договора, а сейчас оно устарело - услуги привязываются к договору через разрешенные услуги модуля. В этом вся и загвоздка, видимо.

загвоздка в том что из API не видно услуг модуля npay, хотя вполне может статься что я не так смотрел, но в мане вроде недвусмысленно написано:
Цитата:
bitel.billing.server.contract.bean.ContractServiceManager
...
getContractServiceList

public java.util.List<ContractService> getContractServiceList(int cid,
int mid)

Возвращает список услуг для данного договора и модуля

Parameters:
cid - код договора
mid - код модуля

а он ее (услугу) не видит, хотя в старых договорах, тех которые были созданы до конвертации все прекрасно работает!

Cromeshnic писал(а):
Кстати, у меня такое впечатление (сужу по старым счетам и отзывам), что когда были услуги договора, трафик считался пропорционально действия тарифного плана.

если верить девелоперам то все по старому и работает ... например у меня скрипт просто проставляет услугам даты, а вся логика работы указывается и наглядно видна в тарифе ... собсно то что я сейчас не могу ничего сделать с услугой модуля npay и тормозит переезд на 4.6


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

Зарегистрирован: 07 май 2008, 13:34
Сообщения: 594
Откуда: Москва
Карма: 27
я думаю засада в том что есть npay_service_object поля которой полностью дублируют contract_service, соответсвенно абонки добавляются в обе таблицы, но возникает вопрос из какой таблицы берутся данные, в часности date1, date2 и тп
очень вероятно что модуль абон плат все данные тащит из npay_service_object, так как только там есть поле кол-ва ("col")


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 дек 2009, 19:22 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
bitel.billing.server.contract.bean.ContractServiceManager сейчас работает с разрешёнными услугами.
Для добавления абонплат использовать: bitel.billing.server.npay.bean.ServiceObjectManager


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 дек 2009, 19:47 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
простейший скрипт
Код:
import bitel.billing.common.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.npay.bean.*;
import java.util.*;

NPAY_MID = 3;

serviceObjectManager = new ServiceObjectManager(con, NPAY_MID);

event.setProcessed(true);

выдает:
Код:
12-14/16:34:58  INFO [pool-1-thread-9] ScriptInstance - Eval script Function [id:2; title:RADIUS - Запрос учетного периода]
12-14/16:34:58 ERROR [pool-1-thread-9] script - Eval error: Sourced file: Function [id:2; title:RADIUS - Запрос учетного периода] : Unknown class: ServiceObjectManager
Sourced file: Function [id:2; title:RADIUS - Запрос учетного периода] : Unknown class: ServiceObjectManager : at Line: 8 : in file: Function [id:2; title:RADIUS - Запрос учетного периода] : new ServiceObjectManager ( con , NPAY_MID )

        at bsh.BSHAllocationExpression.objectAllocation(Unknown Source)
        at bsh.BSHAllocationExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHAssignment.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.runScript(ScriptMachine.java:128)
        at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:227)
        at bitel.billing.server.processor.dialup.DialUpSessionRealtime.setCalculatePeriod(DialUpSessionRealtime.java:1774)
        at bitel.billing.server.processor.dialup.DialUpProcessor.connectModule(DialUpProcessor.java:210)
        at bitel.billing.server.processor.DefaultProcessor.connect(DefaultProcessor.java:612)
        at bitel.billing.server.processor.dialup.DialUpProcessor.authentification(DialUpProcessor.java:911)
        at bitel.billing.server.processor.DefaultProcessor.standartAuth(DefaultProcessor.java:176)
        at bitel.billing.server.processor.dialup.DialUpProcessor.authenticationProcess(DialUpProcessor.java:130)
        at bitel.billing.server.radius.RadiusRequestThread.processRequest(RadiusRequestThread.java:181)
        at bitel.billing.server.radius.RadiusRequestThread.run(RadiusRequestThread.java:80)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
        at java.lang.Thread.run(Thread.java:619)
12-14/16:34:58  INFO [pool-1-thread-9] script - Process time => 10

в общем виде хотелось бы вызвав:
Код:
bitel.billing.server.npay.bean.ServiceObjectManager(con, mid).getServiceObjectList(cid)

получить список услуг (bitel.billing.server.npay.bean.ServiceObject)

все чаще возникает идея забить на API и ручками прямо в базе править


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 дек 2009, 15:17 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
господа разработчки, скажите, пожалуйста, что делать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 дек 2009, 16:20 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Мда.. Если событие обрабатывается под радиусом, то только напрямую в БД писать. Проблема в том, что нет у радиуса библиотеки npay.jar с этим классом.
В будущем планируем сделать, чтобы все события обрабатывались на сервере, а прочие приложение передавали только событие на обработку и брали результат..


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 дек 2009, 16:38 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Администратор писал(а):
Если событие обрабатывается под радиусом, то только напрямую в БД писать.

работа напрямую с БД рассматривалась как вариант "тупо в лоб", хотелось бы изящнее, через API

Администратор писал(а):
Проблема в том, что нет у радиуса библиотеки npay.jar с этим классом.
В будущем планируем сделать, чтобы все события обрабатывались на сервере, а прочие приложение передавали только событие на обработку и брали результат..

сложно дать радиусу возможность ее использовать? IMHO было бы очень здорово дать радиусу возможность использовать все библиотеки БГБ, т.к. например у меня давно есть идея скрипта для dialup который использовал бы telnet из ipn, чтоб dialup мог рулить своими клиентами на NAS-е ... может пока будующее не наступило дадите ему возможность использовать все библиотеки БГБ? ;)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 дек 2009, 17:25 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Цитата:
сложно дать радиусу возможность ее использовать? IMHO было бы очень здорово дать радиусу возможность использовать все библиотеки БГБ, т.к. например у меня давно есть идея скрипта для dialup который использовал бы telnet из ipn, чтоб dialup мог рулить своими клиентами на NAS-е ... может пока будующее не наступило дадите ему возможность использовать все библиотеки БГБ? ;)

Это же не политическое решение - не давать библиотек, просто у него в lib их нет..
Вы можете подсунуть туда npay.jar, например. Но как он будет обновляться?
Радиус же пока отдельный процесс.. Вот и хотим, чтобы события обрабатывались в одном процессе, т.е. сервере, в котом есть все либы.
То же относится к шаблонам договоров, радиус не может при создании договора по шаблону выполнить инструкции для всех модулей..


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 дек 2009, 18:01 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Администратор писал(а):
Это же не политическое решение - не давать библиотек, просто у него в lib их нет..
Вы можете подсунуть туда npay.jar, например.

т.е. если положить файлик в lib то функционал API, ура, заработает?

Администратор писал(а):
Но как он будет обновляться?

а если положить .jar файлы в БД, там всего-то пару мегабайт наверное, и радиус сам их оттуда вытащит и в lib положит? так вообще можно было бы обновление всего и вся сделать - запускаем в папке сервера bg_installer, раз уж радиус сервер и коллектор своего не имеют, он вытягивает обновления, ложит их в базу, ну а радиус и коллектор их оттуда берут и кладут себе в lib ... остается только ребутнуть, хотя наверное можно их научить перегружаться после обновления ...

Администратор писал(а):
Вот и хотим, чтобы события обрабатывались в одном процессе, т.е. сервере, в котом есть все либы.

пардон, но ... вы это сделаете не сегодня и не завтра, а 4.6 и 5.0 уже сейчас есть ... в 4.5 все прекрасно работало, Вы выпустили 4.6 и 5.0 с революционными изменениями в которых средствами API уже невозможно увидеть услуги и полагаю еще что нибудь невозможно увидеть, а ведь об этих ограничениях нигде ни слова, и как результат мы имеем частично работающий API :( в контексте сервера он, конечно, работает, но БГБ это ж не только сервер, так что рождается закономерный вопрос - когда сделаете то о чем говорите? только, пожалуйста, не говорите "будет в 5.1" или, OMG, "в 5.2" ;)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 дек 2009, 18:27 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Цитата:
т.е. если положить файлик в lib то функционал API, ура, заработает?

Не уверен. Попробовать надо. Если библиотека не тащит никаких зависимостей, которых опять же нет в либах радиуса. Но вроде должно рабоать.
Впринципе, вариант с вытаскиванием радиусом библиотек из БД после апдейта сервера не так плох.
Можно апдейтить на сервер вообще все библиотеки, а остальные приложения просто пусть вытаскивают их и размещают у себя по команде..
Ещё есть вариант просто загрузки билиотек из БД прямо в память, ява это позволяет впринципе..
Хотя вариант с вытаскиванием и размещеним библиотек в файле как-то прозрачнее, конечно. Видно, какими библиотеками радиус оперирует.
В 5.0 сделать можно, вот только это же довольно значительное изменение, может пока перекантоваться подсовывая npay.jar?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 дек 2009, 18:32 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Обработку событий на центральном сервере может даже проще будет сделать для 5.0, чем это копирование библиотек. Там бардак какой-то будет с библиотеками этими..


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 дек 2009, 19:20 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Администратор писал(а):
Обработку событий на центральном сервере может даже проще будет сделать для 5.0

это можно расценивать как "будет в следующем обновлении"? ;) ну или хотя бы через одно-два обновления ...

сейчас пока напрямую через БД сделаю и буду ждать ...
я правильно понимаю что услуги npay теперь лежат не в contract_service, а в npay_service_object_<mid> и брать их надо именно оттуда?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 дек 2009, 19:22 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Цитата:
это можно расценивать как "будет в следующем обновлении"? ;) ну или хотя бы через одно-два обновления ...

Нет. Мы думаем. Если сделать так, то при остановленном сервере у вас и радиус авторизовать не сможет.

Цитата:
сейчас пока напрямую через БД сделаю и буду ждать ...
я правильно понимаю что услуги npay теперь лежат не в contract_service, а в npay_service_object_<mid> и брать их надо именно оттуда?

Правильно.


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

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


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

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


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

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