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

getInterfaceTitle() == null внутри InetServChangingEvent
http://forum.bitel.ru/viewtopic.php?f=44&t=10020
Страница 1 из 1

Автор:  vkulakov [ 12 дек 2014, 18:09 ]
Заголовок сообщения:  getInterfaceTitle() == null внутри InetServChangingEvent

При редактировании сервиса если не выбрать интерфейс, а сразу нажать "ОК", то внутри события "Модуль Inet => Изменяется сервис договора" interfaceTitle будет null:
Код:
InetServChangingEvent.getInetServ().getInterfaceTitle() == null; // true

У меня этот заголовок используется для генерации логина. В результате в логине у меня null.

Вложения:
interface.gif
interface.gif [ 140.31 КБ | Просмотров: 3781 ]

Автор:  Amir [ 12 дек 2014, 18:18 ]
Заголовок сообщения:  Re: getInterfaceTitle() == null внутри InetServChangingEvent

А интерфейс разве подставляется автоматически? Т.е. его не обязательно выбирать?

Автор:  vkulakov [ 12 дек 2014, 18:23 ]
Заголовок сообщения:  Re: getInterfaceTitle() == null внутри InetServChangingEvent

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

Сервис при этом нормально сохраняется и у него указан верный (единственный) интерфейс. При последующем открытии интерфейс отображается нормально.

Автор:  vkulakov [ 12 дек 2014, 18:43 ]
Заголовок сообщения:  Re: getInterfaceTitle() == null внутри InetServChangingEvent

Такое ощущение, что при создании нового сервиса getInterfaceTitle() всегда null. При редактировании сервиса туда уже записывается нормальное значение... Зачем он тогда нужен, этот getInterfaceTitle()?

Автор:  Amir [ 12 дек 2014, 19:14 ]
Заголовок сообщения:  Re: getInterfaceTitle() == null внутри InetServChangingEvent

Это вспомогательное поле. Для отображения в таблице.
А в шаблоне названия сервиса же вроде бы есть $interfaceTitle.

Автор:  Amir [ 12 дек 2014, 19:54 ]
Заголовок сообщения:  Re: getInterfaceTitle() == null внутри InetServChangingEvent

Нашел ошибку с $interfaceTitle - при использовании библиотеки устройств работало некорректно (при получении названия интерфейса использовался id устройства из дерева, а не из библиотеки). Выложили.

Автор:  vkulakov [ 12 дек 2014, 20:05 ]
Заголовок сообщения:  Re: getInterfaceTitle() == null внутри InetServChangingEvent

Amir писал(а):
Это вспомогательное поле. Для отображения в таблице.
А в шаблоне названия сервиса же вроде бы есть $interfaceTitle.

В документации про это ничего нет:
Цитата:
1. title.pattern=(<шаблон имени сервиса>), в шаблоне имени возможны переменные:
${login} - логин;
${deviceIdentifier} - идентификатор устройства, к которому привязан сервис;
${deviceTitle} - полное название устройства, к которому привязан сервис;
${interfaceId} - код интерфейса, указанного для сервиса;
${vlan} - VLAN, указанный для сервиса;
${addressRange} - адреса, указанные для сервиса;
${macAddress} - MAC-адрес(а), указанный для сервиса;
${identifier} - идентификаторы, указанные для сервиса.

А есть ли в шаблоне ещё и хост устройства (без порта)? А можно ли в шаблоне объединять несколько переменных с произвольным разделителем?

Amir писал(а):
Нашел ошибку с $interfaceTitle - при использовании библиотеки устройств работало некорректно (при получении названия интерфейса использовался id устройства из дерева, а не из библиотеки). Выложили.
[/quote]
А null для getInterfaceTitle() починили? А для getContractTitle?

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