Коллеги,
Подскажите пожалуйста как отобразить в списке “Персональный компьютер” столбец с назначенным контактом? Нужно для того что бы при создании отчета было понятно кто работает за компьютером.
Спасибо,
Коллеги,
Подскажите пожалуйста как отобразить в списке “Персональный компьютер” столбец с назначенным контактом? Нужно для того что бы при создании отчета было понятно кто работает за компьютером.
Спасибо,
По идее создать новый модуль. В XML написать:
<class id="PC"> <fields> <field id="main_user_id" xsi:type="AttributeExternalKey"> <sql>main_user_id</sql> <target_class>Person</target_class> <is_null_allowed>true</is_null_allowed> <on_target_delete>DEL_MANUAL</on_target_delete> </field> <field id="main_user_name" xsi:type="AttributeExternalField"> <extkey_attcode>main_user_id</extkey_attcode> <target_attcode>name</target_attcode> </field> <presentation> <list> <items> <item id="main_user_id"> <rank>100500</rank> </item> </items> </list> </presentation>
P.S. Не факт, что всё написано синтаксически верно. Это, примерный ход мысли…
Поправил XML и привел к следующему виду:
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
<constants>
</constants>
<classes>
<class id="PC">
<fields>
<field id="main_user_id" xsi:type="AttributeExternalKey">
<sql>main_user_id</sql>
<target_class>Person</target_class>
<is_null_allowed>true</is_null_allowed>
<on_target_delete>DEL_MANUAL</on_target_delete>
</field>
<field id="main_user_name" xsi:type="AttributeExternalField">
<extkey_attcode>main_user_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
</fields>
<presentation>
<list>
<items>
<item id="main_user_id">
<rank>100500</rank>
</item>
</items>
</list>
</presentation>
</class>
</classes>
<menus>
</menus>
<user_rights>
<groups>
</groups>
<profiles>
</profiles>
</user_rights>
</itop_design>
Когда запускаю toolkit то, как я понимаю, не находится класс “PC”:
Может быть при генерации пустого модуля, необходимо было указать зависимости? Если нужно, то я правильно ли понимаю что мне нужны вот эти зависимости: FunctionalCI; PhysicalDevice; ConnectableCI и как синтаксически верно их указать при генерации нового модуля?
User-Device ещё.
Да.
Нет.
Ты вносишь изменения в класс PC, значит твой модуль должен зависеть от того модуля, в модели данных которого этот класс был объявлен. Вот тут про зависимости говорили:
И еще, плохое имя модуля у тебя. Имя должно совпадать с именем директории, и советую использовать нижний регистр.
При создании нового модуля указал зависимость: itop-endusers-devices/2.5.0
Установил пустой модуль, далее изменил XML (вставил код который я привёл выше), при проверке toolkit ошибка:
Ошибку устранил добавлением _delta=“define”, в результате получился следующий код:
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
<constants>
</constants>
<classes>
<class id="PC">
<fields>
<field id="main_user_id" xsi:type="AttributeExternalKey" _delta="define">
<sql>main_user_id</sql>
<target_class>Person</target_class>
<is_null_allowed>true</is_null_allowed>
<on_target_delete>DEL_MANUAL</on_target_delete>
</field>
<field id="main_user_name" xsi:type="AttributeExternalField" _delta="define">
<extkey_attcode>main_user_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
</fields>
<presentation>
<list>
<items>
<item id="main_user_id">
<rank>100500</rank>
</item>
</items>
</list>
</presentation>
</class>
</classes>
<menus>
</menus>
<user_rights>
<groups>
</groups>
<profiles>
</profiles>
</user_rights>
</itop_design>
Появилось поле Фамилия, которое можно включить в настройках списка, однако при включении поле остается пустым, фамилии Персоны не отображаются.
Добавил зависимость itop-config-mgmt/2.2.0, добавил в строчку SELECT Person в секцию field
Так и не отображается фамилия, такое ощущение что связи нет с нужным полем, не могу понять что не так.
А зачем SELECT добавили? Вы как-то вычислить значение пытаетесь что ли?
Без SELECT так же не отображаются фамилии.
Я так понял, что SELECT используется для того, чтобы ограничить список доступных для выбора значений. Т.е. дропдаун лист ограничить.
Извините за глупый вопрос из разряда “проверьте включен ли прибор в розетку”. А вы PC с пользователем связали? Т.е. в карточке самого компа пользователь отображается?
Да, конечно) каждая КЕ “Персональный компьютер” имеет связанный контакт.
Мой код выглядит так (фамилия контакта по прежнему не хочет отображаться):
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
<constants>
</constants>
<classes>
<class id="PC">
<fields>
<field id="main_user_id" xsi:type="AttributeExternalKey" _delta="define">
<sql>main_user_id</sql>
<target_class>Person</target_class>
<is_null_allowed>true</is_null_allowed>
<on_target_delete>DEL_MANUAL</on_target_delete>
</field>
<field id="main_user_name" xsi:type="AttributeExternalField" _delta="define">
<extkey_attcode>main_user_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
</fields>
<presentation>
<list>
<items>
<item id="main_user_id">
<rank>100500</rank>
</item>
</items>
</list>
</presentation>
</class>
</classes>
<menus>
</menus>
<user_rights>
<groups>
</groups>
<profiles>
</profiles>
</user_rights>
</itop_design>
А вы на форму добавляли аттрибут main_user_id?
Вы связь-то с человеком как задаёте?
тот же вопрос)
как это выглядит в интерфейсе?
Делаю так:
Захожу в управление конфигурациями
Выбираю КЕ “Персональный компьютер”
Выбираю настроить список
Ставлю отмечаю параметр “Фамилия”
Появляется столбец “Фамилия”, в котором ничего не отображается.
Это понятно. В самой карточке-то у вас есть поле Person? В конфиге его нет. Поэтому возникает вопрос каким образом вы связываете Компьютер с человеком.
Ввиду того что я понимаю что мной упущена важная составляющая настройки, но сам определить я не могу в чём конкретно проблема, давайте идти от обратного пожалуйста уточните как должно быть? Как правильно связать компьютер с человеком для моего списка?
Спасибо,
Добавьте в конфиг класса PC
<presentation> <details> <items> <item id="main_user_id"> <rank>100500</rank> </item>
У вас на форме появится поле в котором надо будет указывать человека.