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

Создание сервиса Inet в договоре. (CRM)
http://forum.bitel.ru/viewtopic.php?f=19&t=6958
Страница 1 из 1

Автор:  aiwbend [ 12 июл 2012, 15:50 ]
Заголовок сообщения:  Создание сервиса Inet в договоре.

Так я добавляю сервис в договор

Код:
InetServDao isd = new InetServDao(con, 15, 0);
InetServ service = new InetServ();
service.setTypeId(1);
service.setContractId(cid);
service.setDeviceId(device_id_bill);
service.setInterfaceId(port_id);
service.setAddressFrom(byte_ipadrFrom);
service.setAddressTo(byte_ipadrTo);
service.setLogin(Integer.toString(cid));
service.setPassword("Redback");
isd.updateImpl(service);


но добавляется он как-то фиктивно, приходится открывать его и кликать ОК, только после этого сервис "бронирует" за собой ip и порт и становится работоспособным.
Как понял нужно какое-то событие вызывать при добавлении? Если да то какое, если нет то как тогда?

Код:
EventProcessor.getInstance().request(new InetServChangingEvent(15, 0, service) );

Пробовал так, результата нет...

Автор:  Amir [ 12 июл 2012, 16:00 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

Попробуйте
Код:
final ServerContext context = ServerContext.get();
final InetServService servService = context.newService( InetServService.class, moduleId );
...
serv.setAddressFrom(byte_ipadrFrom);
serv.setAddressTo(byte_ipadrTo);
serv.setIpResourceId( ipResId ); // id ресурса ip адресов, из которого диапазон

servService.inetServUpdate( serv, optionList, generateLogin, generatePassword, 0 );
или
Код:
final InetServService servService = ServiceFactory.newService( InetServService.class, moduleId );
...
serv.setAddressFrom(byte_ipadrFrom);
serv.setAddressTo(byte_ipadrTo);
serv.setIpResourceId( ipResId ); // id ресурса ip адресов, из которого диапазон

servService.inetServUpdate( serv, optionList, generateLogin, generatePassword, 0 );
в зависимости от того, где работает код (первый вариант не во всех случаех отработает - ServerContext не везде есть).

generateLogin - boolean - нужно ли генерировать логин
generatePassword - boolean - нужно ли генерировать пароль (аналогично галочкам из редактора в клиенте).

Автор:  aiwbend [ 13 июл 2012, 08:19 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

Работает, спасибо!

Автор:  snark [ 16 июл 2012, 10:17 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

В вики!

Автор:  aiwbend [ 16 июл 2012, 10:39 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

Еще вопрос, как генерировать следующий свободный интерфейс на определенном устройстве?

Автор:  aiwbend [ 16 июл 2012, 11:31 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

Разобрался.

Код:
package ru.rta.bgbilling.inet;

import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import java.util.Date;
import ru.bitel.oss.systems.inventory.resource.common.DeviceInterfaceService;

public class TestNextFreeInterface
   extends GlobalScriptBase
{
   @Override
   public void execute( Setup setup, ConnectionSet connectionSet )
      throws Exception
   {
      Date d = new Date();
      ServerContext context = ServerContext.get();
      DeviceInterfaceService DeviceInterfaceService = context.newService( DeviceInterfaceService.class, 15 ); //moduleId
      int nextFreePort = DeviceInterfaceService.nextFreeInterface(909, d, d); //(int deviceId, Date dateFrom, Date dateTo)
      print (nextFreePort);
   }

}

Автор:  lan31 [ 17 сен 2012, 15:43 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

Пытаюсь создать сервис на договоре. Что тут не правильно?

EXCEPTIONS:
Method Invocation servService.inetServUpdate
Method Invocation servService.inetServUpdate : at Line: 501 : in file: CSVtoBGBilling2 : servService .inetServUpdate ( serv , InetServOption , false , false , 0 )

Код:
final ServerContext context = ServerContext.get();
final InetServService servService = context.newService( InetServService.class, 1 );
InetServ serv = new InetServ();
serv.setIpResourceId( 1 ); // id ресурса ip адресов, из которого диапазон
serv.setContractId(cid);
InetServOption = new ArrayList();
servService.inetServUpdate( serv, InetServOption, false, false, 0 );

Автор:  stark [ 17 сен 2012, 19:17 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

lan31 писал(а):
Пытаюсь создать сервис на договоре. Что тут не правильно?

EXCEPTIONS:
Method Invocation servService.inetServUpdate
Method Invocation servService.inetServUpdate : at Line: 501 : in file: CSVtoBGBilling2 : servService .inetServUpdate ( serv , InetServOption , false , false , 0 )

Код:
final ServerContext context = ServerContext.get();
final InetServService servService = context.newService( InetServService.class, 1 );
InetServ serv = new InetServ();
serv.setIpResourceId( 1 ); // id ресурса ip адресов, из которого диапазон
serv.setContractId(cid);
InetServOption = new ArrayList();
servService.inetServUpdate( serv, InetServOption, false, false, 0 );

Пополнее покажите ошибку

Автор:  lan31 [ 18 сен 2012, 07:33 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

Цитата:
Пополнее покажите ошибку

Method Invocation servService.inetServUpdate
Method Invocation servService.inetServUpdate : at Line: 502 : in file: CSVtoBGBilling2 : servService .inetServUpdate ( serv , InetServOption , false , false , 0 )

Called from method: setAddress : at Line: 183 : in file: CSVtoBGBilling2 : setAddress ( con , cpm , contract .getID ( ) , address )
Called from method: main : at Line: -1 : in file: <Called from Java Code> : <Compiled Java Code>
Target exception: java.lang.NullPointerException

at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:97)
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.BshMethod.invokeImpl(BshMethod.java:362)
at bsh.BshMethod.invoke(BshMethod.java:258)
at bsh.BshMethod.invoke(BshMethod.java:186)
at bsh.Name.invokeLocalMethod(Name.java:917)
at bsh.Name.invokeMethod(Name.java:804)
at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
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.BSHForStatement.eval(BSHForStatement.java:111)
at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
at bsh.BSHBlock.eval(BSHBlock.java:81)
at bsh.BSHBlock.eval(BSHBlock.java:47)
at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
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.Name.invokeLocalMethod(Name.java:917)
at bsh.Name.invokeMethod(Name.java:804)
at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
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.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:140)
at bitel.billing.server.script.global.bean.GlobalScriptMachine.runScript(GlobalScriptMachine.java:73)
at bitel.billing.server.script.global.bean.GlobalScriptManager.executeGlobalScript(GlobalScriptManager.java:40)
at bitel.billing.server.script.global.action.ActionExecuteScript.doAction(ActionExecuteScript.java:32)
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)

Автор:  Amir [ 19 сен 2012, 15:34 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

Не все обязательные поля заполнены.
serv.setTypeId( );

Автор:  stark [ 19 сен 2012, 17:27 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

вот тут есть пример создания сервиса

http://wiki.bgbilling.ru/index.php/%D0% ... D0%B0_INET),_ip-%D1%80%D0%B5c%D1%83%D1%80%D1%81%D1%8B,_%D1%82%D0%B8%D0%BF%D1%8B_%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB(%D0%B2_%D0%BE%D0%BF%D1%86%D0%B8%D0%B8_INET),_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%BA%D1%83_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%BE%D0%B2_%D0%BA_%D1%88%D0%BB%D1%8E%D0%B7%D0%B0%D0%BC(%D0%B2_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D1%8B_Inet).%D0%A1%D1%85%D0%B5%D0%BC%D0%B0_dhcp-mikrotik-dlink/mirotik

Автор:  lan31 [ 20 сен 2012, 09:11 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

Как преобразовать ip адрес из типа String в тип Bytes?
Необходимо чтобы воспользоваться командой:

Код:
serv.setAddressFrom(byte_ipadrFrom);
serv.setAddressTo(byte_ipadrTo);

Автор:  aardvark [ 20 сен 2012, 11:35 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

Код:
Utils.convertIntToBytes(IpUtils.convertStringIPtoInt(java.lang.String ip_value))

Как-то так можно

Автор:  Угрюмов Роман [ 19 май 2014, 18:30 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

Одно не могу понять, как по Идентификатору устройства найти его Id?
Идентификатор, это то что я забиваю в поле: Модули-> Штуе-> Устройства и ресурсы->Устройства->Основное->Идентификатор

Автор:  stark [ 19 май 2014, 18:43 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

Угрюмов Роман писал(а):
Одно не могу понять, как по Идентификатору устройства найти его Id?
Идентификатор, это то что я забиваю в поле: Модули-> Штуе-> Устройства и ресурсы->Устройства->Основное->Идентификатор



Можно методом web-сервиса InetDeviceService.deviceRoot, но оно вернет все дерево(т.е путь от корня до устройства с нужным идентификатором). Надо будет пробежаться от корня до самого низа чтобы найти устройство . Специального метода вроде нет, можно sql запросом найти по таблице inet_device_{mid}.

Автор:  Угрюмов Роман [ 21 май 2014, 10:48 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

Спасибо! Получил, Но! а что за услуги contract_service?
вижу услугу в таблице contract_service, открываю договор в клиенте, а в клиенте услуг нет.

Автор:  stark [ 21 май 2014, 13:26 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

Угрюмов Роман писал(а):
Спасибо! Получил, Но! а что за услуги contract_service?
вижу услугу в таблице contract_service, открываю договор в клиенте, а в клиенте услуг нет.



Когда то давно (до 4.6 кажется) модули не добавлялись на договор, только услуги . Потом стали добавлять модули в contratc_module, а contract_service стало использоваться как "Разрешённые услуги" и в документации про них есть фраза "Вкладка Разрешённые услуги присутствует не для всех модулей, её назначение различно и описывается в документации конкретного модуля.". В общем они используются в разных модулях по разному. Отображаются на вкладке разрешенные услуги, если есть .

Автор:  Угрюмов Роман [ 29 май 2014, 11:34 ]
Заголовок сообщения:  Re: Создание сервиса Inet в договоре.

Заработало! А как програмно из скрипта создать новое устройство Ну и соответственно программно нажать на кнопку "Перечитать на серверах"?
РЕШЕНО viewtopic.php?f=19&t=6897
Теперь как создать интерфейс на устройстве :-) ?
РЕШЕНО! http://wiki.bitel.ru/index.php/%D0%9E%D ... 0%BE%D0%B2
Господа! Ну что за прелесть Вы BGBillin! Дай бог Вам здоровья! Спасибо!

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