Добрый день. Вроде все по инструкции, но не появляется поле в КЕ персональный компьютер. Хотел добавить поле корпус, и чтоб можно было поиском выбрать из списка комплектующих а не вводить руками название.
<field id="korpus" xsi:type="AttributeExternalKey" _delta="define"> <sql>korpus</sql> <target_class>Peripheral</target_class> <filter>SELECT Location AS L WHERE L.korpus = :this->korpus</filter> <edit_mode>add_remove</edit_mode> <is_null_allowed>true</is_null_allowed> <on_target_delete>DEL_MANUAL</on_target_delete> </field>
<class id="PC">
<properties>
<naming>
<attributes _delta="redefine">
<attribute id="name_id"/>
<attribute id="name"/>
</attributes>
</naming>
</properties>
<fields>
<field id="printer_list" xsi:type="AttributeLinkedSetIndirect" _delta="define">
<linked_class>lnkPrinterToPc</linked_class>
<ext_key_to_me>pc_id</ext_key_to_me>
<edit_mode>add_remove</edit_mode>
<ext_key_to_remote>printer_id</ext_key_to_remote>
</field>
<field id="peripheral_list" xsi:type="AttributeLinkedSetIndirect" _delta="define">
<linked_class>lnkPeripheralToPc</linked_class>
<ext_key_to_me>pc_id</ext_key_to_me>
<edit_mode>add_remove</edit_mode>
<ext_key_to_remote>peripheral_id</ext_key_to_remote>
</field>
<field id="monitor_list" xsi:type="AttributeLinkedSet" _delta="define">
<linked_class>Monitor</linked_class>
<ext_key_to_me>pc_id</ext_key_to_me>
<edit_mode>add_remove</edit_mode>
</field>
<field id="oslicence_id" xsi:type="AttributeExternalKey" _delta="define">
<filter><![CDATA[SELECT OSLicence WHERE osversion_id = :this->osversion_id]]></filter>
<dependencies>
<attribute id="osversion_id"/>
</dependencies>
<sql>oslicence_id</sql>
<target_class>OSLicence</target_class>
<is_null_allowed>true</is_null_allowed>
<on_target_delete>DEL_MANUAL</on_target_delete>
</field>
<field id="mb" xsi:type="AttributeString" _delta="define">
<sql>mb</sql>
<default_value/>
<is_null_allowed>true</is_null_allowed>
</field>
<field id="korpus" xsi:type="AttributeExternalKey" _delta="define">
<linked_class>PhysicalDevice</linked_class>
<sql>korpus</sql>
<edit_mode>add_remove</edit_mode>
<default_value/>
<is_null_allowed>true</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
Почему поле не появляется если открыть инфу о пк? Ошибок не было при установке, обновлении базы и кода итоп.
Чтобы поле появилось в интерфейсе, недостаточно объявить его в <fields>
. У каждого класса есть тег <presentations>
, внутри которого описывается внешний вид формы объекта (<details>
), таблицы объектов (<list>
) и формы поиска (<search>
).
Для понимания вот ман по добавлению поля в КЕ:
https://manage-wiki.openitop.org/doku.php?id=3_0_0:customization:add-attribute-sample#make_the_new_field_visible