Добавить новый тип программного обеспечения

Подскажите пожалуйста, каким образом можно добавить новый тип программного обеспечения в Software catalog

Переопределите значения атрибута type в классе Software в datamodel.itop-config-mgmt.xml. Но я бы не рекомендовал этого делать, если на то нет веской причины.

Если внимательно присмотреться к значениям этого поля, то можно заметить, что все они являются названиями дочерних классов, наследующих от SoftwareInstance (WebServer, Middleware, DBServer, PCSoftware, OtherSoftware). В самом классе SoftwareInstace (а значит и в дочерних) объявлен атрибут software_id (ссылка на класс Software), для которого указан вот такой filter:

  ...
  <field id="software_id" xsi:type="AttributeExternalKey">
    <filter><![CDATA[SELECT Software WHERE type = :this->finalclass]]></filter>
  ...

При создании любого SoftwareInstance, например WebServer, этот фильтр позволяет указать в поле software_id только тот объект Software, у которого в поле type установлено значение, совпадающее с классом создаваемого объекта, то есть WebServer.

Таким образом, просто добавив новые значения в поле type класса Software, использовать их по предполагаемому назначению не получится. Вероятно, вы создали новый класс от SoftwareInstace (скажем, ProxyServer), тогда вам действительно необходимо добавить соответствующее значение по поле type класса Software.

Надеюсь, немного прояснил ситуацию.

1 лайк

Не получается создать новый класс SoftwareInstance
В toolkit ошибок нет.
Во время установки iTOP выдает ошибку на 20%

The data model could not be compiled. Please check the setup error log

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="ProxySoftware" _delta="define">
	<parent>SoftwareInstance</parent>
	<properties>
		<category>bizmodel,searchable</category>
		<abstract>false</abstract>
		<key_type>autoincrement</key_type>
		<db_table>proxy</db_table>
		<db_key_field>id</db_key_field>
			<db_final_class_field/>
			<naming>
			<format>%1$s</format>
			<attributes>
				<attribute id="name"/>
			</attributes>
			</naming>
			<display_template/>
			<icon>images/squid.png</icon>
			<reconciliation>
			<attributes>
				<attribute id="name"/>
				<attribute id="org_id"/>
				<attribute id="organization_name"/>
			</attributes>
			</reconciliation>
	</properties>
	<methods/>
		<presentation>
		<details>
          <items>
            <item id="name">
              <rank>10</rank>
            </item>
            <item id="org_id">
              <rank>20</rank>
            </item>
            <item id="status">
              <rank>30</rank>
            </item>
            <item id="business_criticity">
              <rank>40</rank>
            </item>
            <item id="system">
              <rank>50</rank>
            </item>
            <item id="software">
              <rank>60</rank>
            </item>
            <item id="software_license">
              <rank>70</rank>
            </item>
            <item id="path">
              <rank>80</rank>
            </item>
            <item id="move2production">
              <rank>100</rank>
            <item id="description">
              <rank>130</rank>
            </item>
            <item id="contacts_list">
              <rank>140</rank>
            </item>
            <item id="documents_list">
              <rank>150</rank>
            </item>
            <item id="tickets_list">
              <rank>160</rank>
            </item>
			<item id="applicationsolutions_list">
              <rank>165</rank>
            </item>
			<item id="middlewareinstances_list">
              <rank>167</rank>
            </item>
            <item id="providercontracts_list">
              <rank>170</rank>
            </item>
          </items>
        </details>
		</presentation>
	</class>
  </classes>
  <menus>
	<menu id="ConfigManagementOverview" xsi:type="DashboardMenuNode" _delta="must_exist">
	<definition>
      <cells>
        <cell id="0" _delta="must_exist">
          <dashlets>
            <dashlet id="121" xsi:type="DashletBadge" _delta="define">
              <rank>20</rank>
              <class>ProxySoftware</class>
            </dashlet>
          </dashlets>
        </cell>
      </cells>
    </definition>
	</menu>
  </menus>
  <user_rights>
    <groups>
    </groups>
    <profiles>
    </profiles>
  </user_rights>
</itop_design>

Log:

2015-10-07 23:42:49 - Info - operation 'async_action', peak memory usage. 6694976
2015-10-07 23:42:49 - Info - operation 'async_action', peak memory usage. 6668672
2015-10-07 23:42:49 - Info - Data file: '/tmp/itop-eSDYp8'
2015-10-07 23:42:49 - Info - Starting backup of localhost/12(suffix:'')
2015-10-07 23:42:49 - Info - Executing command: mysqldump --opt --default-character-set=utf8 --add-drop-database --single-transaction --host='localhost'  --user=xxxxx --password=xxxxx --result-file='/tmp/itop-eSDYp8' '12' 
2015-10-07 23:42:50 - Info - Archive: /var/www/html/data/iTop-backup-2015-10-07.zip created
2015-10-07 23:42:50 - Info - operation 'async_action', peak memory usage. 6679232
2015-10-07 23:42:50 - Info - Compiling data model.
2015-10-07 23:42:51 - Error - Data model source file (xml) could not be loaded - found errors in module: ProxyServer
2015-10-07 23:42:51 - Error - Load error: File: /var/www/html/extensions/proxyserver/datamodel.proxyserver.xml Line:82 Message:expected '>'

2015-10-07 23:42:51 - Error - Load error: File: /var/www/html/extensions/proxyserver/datamodel.proxyserver.xml Line:83 Message:Opening and ending tag mismatch: items line 34 and details

2015-10-07 23:42:51 - Error - Load error: File: /var/www/html/extensions/proxyserver/datamodel.proxyserver.xml Line:84 Message:Opening and ending tag mismatch: details line 33 and presentation

2015-10-07 23:42:51 - Error - Load error: File: /var/www/html/extensions/proxyserver/datamodel.proxyserver.xml Line:85 Message:Opening and ending tag mismatch: presentation line 32 and class

2015-10-07 23:42:51 - Error - Load error: File: /var/www/html/extensions/proxyserver/datamodel.proxyserver.xml Line:86 Message:expected '>'

2015-10-07 23:42:51 - Error - Load error: File: /var/www/html/extensions/proxyserver/datamodel.proxyserver.xml Line:109 Message:Opening and ending tag mismatch: classes line 5 and itop_design

2015-10-07 23:42:51 - Error - Load error: File: /var/www/html/extensions/proxyserver/datamodel.proxyserver.xml Line:110 Message:Premature end of data in tag itop_design line 2

2015-10-07 23:42:51 - Error - An exception occurred: The data model could not be compiled. Please check the setup error log at line 495 in file /var/www/html/setup/applicationinstaller.class.inc.php
2015-10-07 23:42:51 - Call stack:
2015-10-07 23:42:51 - #0 /var/www/html/setup/applicationinstaller.class.inc.php(217): ApplicationInstaller::DoCompile(...)
2015-10-07 23:42:51 - #1 /var/www/html/setup/wizardsteps.class.inc.php(2060): ApplicationInstaller->ExecuteStep(...)
2015-10-07 23:42:51 - #2 /var/www/html/setup/ajax.dataloader.php(150): WizStepSummary->AsyncAction(...)
2015-10-07 23:42:51 - Info - operation 'async_action', peak memory usage. 12671200

Исправляйте ошибки из лога и ставьте снова) Можно воспользоваться каким-нибудь онлайн переводчиком.

Чтобы тулкит выдавал ошибки, модуль должен быть установлен. Нужно сначала ставить пустой модуль, затем загонять в него модель, а после проходить тулкитом.

1 лайк

Toolkit выдал ошибки примерно такие же как ошибки в логе.
Toolkit говорит что незакрыты теги, хотя на самом деле все закрыто.

File: /var/www/html/extensions/proxyserver/datamodel.proxyserver.xml Line:82 Message:expected '>'

File: /var/www/html/extensions/proxyserver/datamodel.proxyserver.xml Line:83 Message:Opening and ending tag mismatch: items line 34 and details

File: /var/www/html/extensions/proxyserver/datamodel.proxyserver.xml Line:84 Message:Opening and ending tag mismatch: details line 33 and presentation

File: /var/www/html/extensions/proxyserver/datamodel.proxyserver.xml Line:85 Message:Opening and ending tag mismatch: presentation line 32 and class

File: /var/www/html/extensions/proxyserver/datamodel.proxyserver.xml Line:86 Message:expected '>'

File: /var/www/html/extensions/proxyserver/datamodel.proxyserver.xml Line:109 Message:Opening and ending tag mismatch: classes line 5 and itop_design

File: /var/www/html/extensions/proxyserver/datamodel.proxyserver.xml Line:110 Message:Premature end of data in tag itop_design line 2

К сожалению (или к счастью), toolkit не ошибается.

        <item id="move2production">
          <rank>100</rank>
        <item id="description">
          <rank>130</rank>
        </item>
1 лайк

Удалил поля

<item id="move2production">
          <rank>100</rank>
        <item id="description">
          <rank>130</rank>
        </item>

Теперь код выглядит так

<?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="ProxyServer" _delta="define">
	<parent>SoftwareInstance</parent>
	<properties>
		<category>bizmodel,searchable</category>
		<abstract>false</abstract>
		<key_type>autoincrement</key_type>
		<db_table>proxy</db_table>
		<db_key_field>id</db_key_field>
			<db_final_class_field/>
			<naming>
			<format>%1$s</format>
			<attributes>
				<attribute id="name"/>
			</attributes>
			</naming>
			<display_template/>
			<icon>images/squid.png</icon>
			<reconciliation>
			<attributes>
				<attribute id="name"/>
				<attribute id="org_id"/>
				<attribute id="organization_name"/>
			</attributes>
			</reconciliation>
	</properties>
	<methods/>
		<presentation>
		<details>
          <items>
            <item id="name">
              <rank>10</rank>
            </item>
            <item id="org_id">
              <rank>20</rank>
            </item>
            <item id="status">
              <rank>30</rank>
            </item>
            <item id="business_criticity">
              <rank>40</rank>
            </item>
            <item id="system">
              <rank>50</rank>
            </item>
            <item id="software">
              <rank>60</rank>
            </item>
            <item id="software_license">
              <rank>70</rank>
            </item>
            <item id="path">
              <rank>80</rank>
            </item>
            <item id="contacts_list">
              <rank>90</rank>
            </item>
            <item id="documents_list">
              <rank>100</rank>
            </item>
            <item id="tickets_list">
              <rank>110</rank>
            </item>
			<item id="applicationsolutions_list">
              <rank>120</rank>
            </item>
			<item id="middlewareinstances_list">
              <rank>130</rank>
            </item>
            <item id="providercontracts_list">
              <rank>140</rank>
            </item>
          </items>
        </details>
		</presentation>
	</class>
  </classes>
  <menus>
	<menu id="ConfigManagementOverview" xsi:type="DashboardMenuNode" _delta="must_exist">
	<definition>
      <cells>
        <cell id="0" _delta="must_exist">
          <dashlets>
            <dashlet id="121" xsi:type="DashletBadge" _delta="define">
              <rank>20</rank>
              <class>ProxyServer</class>
            </dashlet>
          </dashlets>
        </cell>
      </cells>
    </definition>
	</menu>
  </menus>
  <user_rights>
    <groups>
    </groups>
    <profiles>
    </profiles>
  </user_rights>
</itop_design>

Сначала я установил пустой модуль, потом загнал в пустой модуль модель, проверил модель через toolkit, ошибок не было. Модуль установился. Но отобразить вновь созданный класс не получается. iTOP пишет

DBObjectSearch::__construct called for an invalid class: "ProxyServer"

Зачем? Нужно было всего лишь вставить пропущенный тег.

Ваш новый код отличается не только этим. Сначала вы создали:

Потом:

И все это в одну таблицу:

Вот у айтопа и сносит крышу. Верните везде ProxySoftware (или что там было изначально).

1 лайк

Вставил пропущенный тег в код.
Попытался установить этот модуль в новую базу данных.
Та же самая ошибка. Как на прошлом скриншоте.

<?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="ProxyServer" _delta="define">
	<parent>SoftwareInstance</parent>
	<properties>
		<category>bizmodel,searchable</category>
		<abstract>false</abstract>
		<key_type>autoincrement</key_type>
		<db_table>proxy</db_table>
		<db_key_field>id</db_key_field>
			<db_final_class_field/>
			<naming>
			<format>%1$s</format>
			<attributes>
				<attribute id="name"/>
			</attributes>
			</naming>
			<display_template/>
			<icon>images/squid.png</icon>
			<reconciliation>
			<attributes>
				<attribute id="name"/>
				<attribute id="org_id"/>
				<attribute id="organization_name"/>
			</attributes>
			</reconciliation>
	</properties>
	<methods/>
		<presentation>
		<details>
          <items>
            <item id="name">
              <rank>10</rank>
            </item>
            <item id="org_id">
              <rank>20</rank>
            </item>
            <item id="status">
              <rank>30</rank>
            </item>
            <item id="business_criticity">
              <rank>40</rank>
            </item>
            <item id="system">
              <rank>50</rank>
            </item>
            <item id="software">
              <rank>60</rank>
            </item>
            <item id="software_license">
              <rank>70</rank>
            </item>
            <item id="path">
              <rank>80</rank>
            </item>
            <item id="move2production">
              <rank>100</rank>
			</item>  
            <item id="description">
              <rank>130</rank>
            </item>
            <item id="contacts_list">
              <rank>140</rank>
            </item>
            <item id="documents_list">
              <rank>150</rank>
            </item>
            <item id="tickets_list">
              <rank>160</rank>
            </item>
			<item id="applicationsolutions_list">
              <rank>165</rank>
            </item>
			<item id="middlewareinstances_list">
              <rank>167</rank>
            </item>
            <item id="providercontracts_list">
              <rank>170</rank>
            </item>
          </items>
        </details>
		</presentation>
	</class>
  </classes>
  <menus>
	<menu id="ConfigManagementOverview" xsi:type="DashboardMenuNode" _delta="must_exist">
	<definition>
      <cells>
        <cell id="0" _delta="must_exist">
          <dashlets>
            <dashlet id="121" xsi:type="DashletBadge" _delta="define">
              <rank>20</rank>
              <class>ProxyServer</class>
            </dashlet>
          </dashlets>
        </cell>
      </cells>
    </definition>
	</menu>
  </menus>
  <user_rights>
    <groups>
    </groups>
    <profiles>
    </profiles>
  </user_rights>
</itop_design>

У меня работает. Похоже, где-то в другом месте у вас косяк.

Эти атрибуты объявлены где-то?

Class ProxyServer

Unknown attribute code 'system' from ZList 'details'
Unknown attribute code 'software' from ZList 'details'
Unknown attribute code 'software_license' from ZList 'details' 
Unknown attribute code 'applicationsolutions_list' from ZList 'details'
Unknown attribute code 'middlewareinstances_list' from ZList 'details' 

Создать новую КЕ можете?

Данные атрибуты нигде не объявлены. Я посмотрел как DB Server, попытался сделать наподобе.
ProxyServer отсутствует в списке KE.
Попробую создать ProxyServer, удалив эти атрибуты из 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="ProxyServer" _delta="define">
	<parent>SoftwareInstance</parent>
	<properties>
		<category>bizmodel,searchable</category>
		<abstract>false</abstract>
		<key_type>autoincrement</key_type>
		<db_table>proxy</db_table>
		<db_key_field>id</db_key_field>
			<db_final_class_field/>
			<naming>
			<format>%1$s</format>
			<attributes>
				<attribute id="name"/>
			</attributes>
			</naming>
			<display_template/>
			<icon>images/squid.png</icon>
			<reconciliation>
			<attributes>
				<attribute id="name"/>
				<attribute id="org_id"/>
				<attribute id="organization_name"/>
			</attributes>
			</reconciliation>
	</properties>
	<methods/>
		<presentation>
		<details>
          <items>
            <item id="name">
              <rank>10</rank>
            </item>
            <item id="org_id">
              <rank>20</rank>
            </item>
            <item id="status">
              <rank>30</rank>
            </item>
            <item id="business_criticity">
              <rank>40</rank>
            </item>
			<!--
            <item id="system">
              <rank>50</rank>
            </item>
            <item id="software">
              <rank>60</rank>
            </item>
            <item id="software_license">
              <rank>70</rank>
            </item>
			-->
            <item id="path">
              <rank>80</rank>
            </item>
            <item id="move2production">
              <rank>100</rank>
			</item>  
            <item id="description">
              <rank>130</rank>
            </item>
            <item id="contacts_list">
              <rank>140</rank>
            </item>
            <item id="documents_list">
              <rank>150</rank>
            </item>
            <item id="tickets_list">
              <rank>160</rank>
            </item>
			<!--
			<item id="applicationsolutions_list">
              <rank>165</rank>
            </item>
			<item id="middlewareinstances_list">
              <rank>167</rank>
            </item>
			-->
            <item id="providercontracts_list">
              <rank>170</rank>
            </item>
          </items>
        </details>
		</presentation>
	</class>
  </classes>
  <menus>
	<menu id="ConfigManagementOverview" xsi:type="DashboardMenuNode" _delta="must_exist">
	<definition>
      <cells>
        <cell id="0" _delta="must_exist">
          <dashlets>
            <dashlet id="121" xsi:type="DashletBadge" _delta="define">
              <rank>20</rank>
              <class>ProxyServer</class>
            </dashlet>
          </dashlets>
        </cell>
      </cells>
    </definition>
	</menu>
  </menus>
  <user_rights>
    <groups>
    </groups>
    <profiles>
    </profiles>
  </user_rights>
</itop_design>

Посмотрю название атрибутов DB Server в iTop objects schema
Отпишусь что получилось )

Ждем)
Я подозреваю, что проблема не в этом модуле, а где-то в ваших других кастомизациях.

Рабочий код

<?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="ProxyServer" _delta="define">
<parent>SoftwareInstance</parent>
<properties>
<category>bizmodel,searchable</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>proxyserver</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
</naming>
<display_template/>
<icon>images/squid.png</icon>
<reconciliation>
<attributes>
<attribute id="name"/>
<attribute id="org_id"/>
<attribute id="organization_name"/>
</attributes>
</reconciliation>
</properties>
<methods/>
<presentation>
<items>
<item id="name">
<rank>10</rank>
</item>
<item id="org_id">
<rank>20</rank>
</item>
<item id="status">
<rank>30</rank>
</item>
<item id="business_criticity">
<rank>40</rank>
</item>
<item id="documents_list">
<rank>50</rank>
</item>
<item id="applicationsolution_list">
<rank>60</rank>
</item>
<item id="services_list">
<rank>70</rank>
</item>
<item id="softwares_list">
<rank>75</rank>
</item>
<item id="tickets_list">
<rank>80</rank>
</item>
<item id="system_id">
<rank>90</rank>
</item>
<item id="move2production">
<rank>100</rank>
</item>
<item id="software_id">
<rank>110</rank>
</item>
<item id="softwarelicence_id">
<rank>120</rank>
</item>
<item id="description">
<rank>130</rank>
</item>
<item id="contacts_list">
<rank>140</rank>
</item>
</items>

<search>
<items>
<item id="name">
<rank>10</rank>
</item>
<item id="org_id">
<rank>20</rank>
</item>
<item id="status">
<rank>30</rank>
</item>
<item id="business_criticity">
<rank>40</rank>
</item>
<item id="system_id">
<rank>50</rank>
</item>
<item id="software_id">
<rank>60</rank>
</item>
<item id="softwarelicence_id">
<rank>70</rank>
</item>
<item id="move2production">
<rank>100</rank>
</item>
</items>
</search>
<list>
<items>
<item id="org_id">
<rank>10</rank>
</item>
<item id="status">
<rank>20</rank>
</item>
<item id="business_criticity">
<rank>30</rank>
</item>
<item id="system_id">
<rank>40</rank>
</item>
<item id="software_id">
<rank>50</rank>
</item>
<item id="softwarelicence_id">
<rank>60</rank>
</item>
</items>
</list>
</presentation>
</class>
</classes>
<menus>
	<menu id="ConfigManagementOverview" xsi:type="DashboardMenuNode" _delta="must_exist">
<definition>
<cells>
<cell id="3" _delta="must_exist">
<dashlets>
<dashlet id="121" xsi:type="DashletBadge" _delta="define">
<rank>20</rank>
<class>ProxyServer</class>
</dashlet>
</dashlets>
</cell>
</cells>
</definition>
</menu>
</menus>
<profiles>
</profiles>
</itop_design>

Пытался переопределить класс Software чтобы мой ProxyServer появился в списке как на первом скриншоте, но не получилось :frowning:
XML

<class id="Software" _delta="redifine">
      <parent>cmdbAbstractObject</parent>
      <properties>
        <category>bizmodel,searchable</category>
        <abstract>false</abstract>
        <key_type>autoincrement</key_type>
        <db_table>software</db_table>
        <db_key_field>id</db_key_field>
        <db_final_class_field/>
        <naming>
          <attributes>
            <attribute id="name"/>
            <attribute id="version"/>
          </attributes>
        </naming>
        <display_template/>
        <icon>images/software.png</icon>
        <reconciliation>
          <attributes>
            <attribute id="name"/>
            <attribute id="version"/>
            <attribute id="vendor"/>
          </attributes>
        </reconciliation>
      </properties>
      <fields>
        <field id="name" xsi:type="AttributeString">
          <sql>name</sql>
          <default_value/>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <field id="vendor" xsi:type="AttributeString">
          <sql>vendor</sql>
          <default_value/>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <field id="version" xsi:type="AttributeString">
          <sql>version</sql>
          <default_value/>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <field id="documents_list" xsi:type="AttributeLinkedSetIndirect">
          <linked_class>lnkDocumentToSoftware</linked_class>
          <ext_key_to_me>software_id</ext_key_to_me>
          <count_min>0</count_min>
          <count_max>0</count_max>
          <ext_key_to_remote>document_id</ext_key_to_remote>
          <duplicates/>
        </field>
        <field id="type" xsi:type="AttributeEnum">
          <values>
            <value id="Middleware">Middleware</value>
            <value id="DBServer">DBServer</value>
            <value id="PCSoftware">PCSoftware</value>
            <value id="OtherSoftware">OtherSoftware</value>
            <value id="WebServer">WebServer</value>
			<value id="ProxyServer">ProxyServer</value>
          </values>
          <sql>type</sql>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
          <display_style>list</display_style>
        </field>
        <field id="softwareinstance_list" xsi:type="AttributeLinkedSet">
          <linked_class>SoftwareInstance</linked_class>
          <ext_key_to_me>software_id</ext_key_to_me>
          <edit_mode>add_only</edit_mode>
          <count_min>0</count_min>
          <count_max>0</count_max>
        </field>
        <field id="softwarepatch_list" xsi:type="AttributeLinkedSet">
          <linked_class>SoftwarePatch</linked_class>
          <ext_key_to_me>software_id</ext_key_to_me>
          <edit_mode>add_only</edit_mode>
          <count_min>0</count_min>
          <count_max>0</count_max>
        </field>
        <field id="softwarelicence_list" xsi:type="AttributeLinkedSet">
          <linked_class>SoftwareLicence</linked_class>
          <ext_key_to_me>software_id</ext_key_to_me>
          <edit_mode>add_only</edit_mode>
          <count_min>0</count_min>
          <count_max>0</count_max>
        </field>
      </fields>
      <methods/>
      <presentation>
        <details>
          <items>
            <item id="name">
              <rank>10</rank>
            </item>
            <item id="vendor">
              <rank>20</rank>
            </item>
            <item id="version">
              <rank>30</rank>
            </item>
            <item id="documents_list">
              <rank>40</rank>
            </item>
            <item id="type">
              <rank>50</rank>
            </item>
            <item id="softwareinstance_list">
              <rank>60</rank>
            </item>
            <item id="softwarepatch_list">
              <rank>70</rank>
            </item>
            <item id="softwarelicence_list">
              <rank>80</rank>
            </item>
          </items>
        </details>
        <search>
          <items>
            <item id="name">
              <rank>10</rank>
            </item>
            <item id="vendor">
              <rank>20</rank>
            </item>
            <item id="version">
              <rank>30</rank>
            </item>
            <item id="type">
              <rank>40</rank>
            </item>
          </items>
        </search>
        <list>
          <items>
            <item id="vendor">
              <rank>10</rank>
            </item>
            <item id="version">
              <rank>20</rank>
            </item>
            <item id="type">
              <rank>30</rank>
            </item>
          </items>
        </list>
      </presentation>
    </class>

Пришлось в ручную добавить.
А вообще хотелось бы чтобы class Software можно было переопределить с помощью установки модуля через Setup

В чем была проблема в с ProxyServer? Что не получилось с Software, и что такое “вручную” добавить?

Только через Setup все и переопределяется. Вы зависимости в своих модулях не забываете указывать?

Владмир, я нашел рабочий код на форуме как добавить SoftwareInstance
http://sourceforge.net/p/itop/discussion/
и использовал его.
Вручную добавить, это когда я открыл datamodel.itop-config-mgmt.xml из папки datamodels
Добавил туда строчку

<value id="ProxyServer">ProxyServer</value>

И сохранил xml документ.
Хотелось бы написать модуль, который сам пропишет эту строчку в нужное место класса Software во время его установке через setup.
В моем предыдущем сообщении я пытался переопределить класс Software

<class id="Software" _delta="redifine">

Но не получилось.
Зависимости в модулях я указывал в теге parent

Наверное надо как-то привязать класс ProxyServer через fields
как-то сделать linked class ProxyServer, а не просто вставить строчку

<value id="ProxyServer">ProxyServer</value>

Вот ссылка где нашел код для добавления нового SoftwareInstance

http://sourceforge.net/p/itop/discussion/922360/thread/2e227eb4/?limit=50