BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
СообщениеДобавлено: 08 ноя 2016, 12:16 
Не в сети

Зарегистрирован: 14 окт 2013, 16:25
Сообщения: 151
Карма: 0
Добрый день.
Подскажите как сделать. Есть договор, в нем экземпляр модуля Inet, в котором заведем сервис. Необходимо из сервиса каким-то образом извлечь IP адрес и добавить его в текстовое поле в самом договоре. Т.е. при добавлении сервиса в экземпляре Inet, указанный IP адрес должен автоматически добавляться в текстовое поле договора.


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

Зарегистрирован: 14 окт 2013, 16:25
Сообщения: 151
Карма: 0
Забыл указать что биллинг 6.2.


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

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Как то так.
Код:
package ru.ellcom.bgbilling.scripts.inet;

import bitel.billing.common.IPUtils;
import bitel.billing.server.contract.bean.ContractParameterManager;
import org.apache.log4j.Logger;
import ru.bitel.bgbilling.kernel.module.common.bean.User;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScript;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.modules.inet.api.common.bean.InetServ;
import ru.bitel.bgbilling.modules.inet.api.server.event.InetServChangingEvent;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import ru.bitel.oss.systems.inventory.resource.common.bean.IpResourceSubscription;
import ru.bitel.oss.systems.inventory.resource.server.bean.IpResourceSubscriptionDao;

import java.net.InetAddress;
import java.sql.Connection;


public class PasteIPToContractParam extends EventScriptBase<InetServChangingEvent> implements EventScript<InetServChangingEvent> {

    private static final Logger logger = Logger.getLogger(PasteIPToContractParam.class);

    @Override
    public void onEvent(InetServChangingEvent event, Setup setup, ConnectionSet connectionSet) throws Exception {
        Connection con = connectionSet.getConnection();
        int INET_MODULE_ID = 12;
        int TEXT_PARAM_ID = 1;

        ContractParameterManager cpm = new ContractParameterManager(con);
        InetServ service = event.getInetServ();
        IpResourceSubscriptionDao ipResourceSubscriptionDao = new IpResourceSubscriptionDao(con, INET_MODULE_ID);

        IpResourceSubscription ip = ipResourceSubscriptionDao.get(service.getIpResourceSubscriptionId());
        byte[] ipAddr = ip.getAddressFrom();
        cpm.updateStringParam(event.getContractId(),TEXT_PARAM_ID, InetAddress.getByAddress(ipAddr).toString(), User.USER_SERVER);

    }
}


Вешается на событие "Изменяется сервис договора"
Изображение

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


Последний раз редактировалось Phricker 08 ноя 2016, 13:31, всего редактировалось 1 раз.

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

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Изображение

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 ноя 2016, 13:34 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Ну и да.
Выдает NPE (java.lang.NullPointerException), если не указан IP адрес :D
Но я и не претендовал на законченный скрипт

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


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

Зарегистрирован: 09 фев 2011, 15:28
Сообщения: 1092
Карма: 135
А обязательно лезть в подписки на ресурсы? Вроде адрес в самом сервисе фигурирует. И еще маленькое дополнение:
Код:
String ipStr = InetAddress.getByAddress(serv.getAddressFrom()).getHostAddress();

Вот так адрес будет без начального слэша.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 ноя 2016, 13:48 
Не в сети

Зарегистрирован: 14 окт 2013, 16:25
Сообщения: 151
Карма: 0
Phricker писал(а):
Ну и да.
Выдает NPE (java.lang.NullPointerException), если не указан IP адрес :D
Но я и не претендовал на законченный скрипт

А как можно обработать подобное исключение?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 ноя 2016, 13:49 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
barguzin2 писал(а):
А обязательно лезть в подписки на ресурсы? Вроде адрес в самом сервисе фигурирует.

Тьфу точно, прошляпил его в IDE.
Вот что значит кофе с утра не выпить, сижу туплю.
Значит будет выглядеть как то так.

Код:
    @Override
    public void onEvent(InetServChangingEvent event, Setup setup, ConnectionSet connectionSet) throws Exception {
        Connection con = connectionSet.getConnection();
        int INET_MODULE_ID = 12;
        int TEXT_PARAM_ID = 1;

        ContractParameterManager cpm = new ContractParameterManager(con);
        InetServ service = event.getInetServ();
        byte[] ipAddr = service.getAddressFrom();
        cpm.updateStringParam(event.getContractId(),TEXT_PARAM_ID, InetAddress.getByAddress(ipAddr).getHostAddress(), User.USER_SERVER);

    }

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


Последний раз редактировалось Phricker 08 ноя 2016, 13:58, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 ноя 2016, 13:57 
Не в сети

Зарегистрирован: 14 окт 2013, 16:25
Сообщения: 151
Карма: 0
Я правильно понимаю что на java.lang.NullPointerException надо использовать проверку на null Вот эту переменную ?
InetServ service = event.getInetServ();


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 ноя 2016, 13:58 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Не. По идее проверять надо ipAddr

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


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

Зарегистрирован: 14 окт 2013, 16:25
Сообщения: 151
Карма: 0
Благодарю за помощь. В целом все работает как и хотелось.


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

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


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

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


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

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