Пример метода для создание сервиса через дин. код:
Код:
public void createIpoeServiceStep(List<String> service) throws SQLException, BGException {
ContractModuleManager cmm = new ContractModuleManager(conn);
// Инициализируем веб-сервис для работы с сервисами модуля IPoE
ServerContext context = ServerContext.get();
InetServService iss = context.getService(InetServService.class, 27);
int contractId = Integer.valueOf(service.get(0));
String identifier = service.get(2);
String addressFrom = service.get(3);
String addressTo = service.get(4);
// Добавляем модуль IPoE на договор
cmm.addContractModule(contractId, 27);
EventProcessor.getInstance().publish(new ContractModifiedEvent(66, contractId));
// Добавляем сервис на договор
InetServ serv = new InetServ();
serv.setId(0);
serv.setParentId(0);
serv.setContractId(contractId);
serv.setContractObjectId(0);
serv.setTypeId(1);
serv.setLogin("");
serv.setPassword("");
serv.setDateFrom(new Date(1420059600000l));
serv.setDeviceId(2);
serv.setDeviceState((short) 1);
serv.setInterfaceId(1);
serv.setAddressFrom(Utils.convertIntToBytes(IPUtils.convertStringIPtoInt(addressFrom)));
serv.setAddressTo(Utils.convertIntToBytes(IPUtils.convertStringIPtoInt(addressTo)));
serv.setIdentifierList(Arrays.asList(identifier));
serv.setIpResourceId(0);
serv.setIpResourceSubscriptionId(0);
serv.setVlan(-1);
serv.setSessionCountLimit(0);
serv.setAccessCode(0);
serv.setStatus(0);
serv.setComment("");
iss.inetServUpdate(serv, new LinkedList<InetServOption>(), true, true, 0);
}
Step - потому что я их создаю в цикле. Есть пример на PHP.
Чтобы пересохранить существующий сервис можно попробовать так сделать:
Код:
InetServ serv = iss.inetServGet(servId);
iss.inetServUpdate(serv, new LinkedList<InetServOption>(), true, true, 0);
Как-то так.