Создание своего модуля PhysicalDevice

Пытаюсь написать свой модуль.
Во время его установки на 20% появляется ошибка
В Toolkit ошибок нету.
Подскажите что может быть

Error loading module "diesel": could not find parent node for class(id:diesel) with parent id PhysicalDevice - Loaded modules: authent-external,authent-ldap,authent-local,diesel

сам модуль:

<?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="diesel" _delta="define">
		<parent>PhysicalDevice</parent>
		<properties>
			<category>bizmodel,searchable</category>
			<abstract>false</abstract>
			<key_type>autoincrement</key_type>
			<db_table>diesel</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/engine.png</icon>
			<reconciliation>
			<attributes>
				<attribute id="name"/>
				<attribute id="org_id"/>
				<attribute id="organization_name"/>
			</attributes>
			</reconciliation>			
		</properties>
		<fields>
			<field id="motor" xsi:type="AttributeString">
			<sql>motor</sql>
			<default_value/>
			<is_null_allowed>true</is_null_allowed>
			</field>
			<field id="generator" xsi:type="AttributeString">
			<sql>generator</sql>
			<default_value/>
			<is_null_allowed>true</is_null_allowed>
			</field>
			<field id="auto_switch_reserve" xsi:type="AttributeString">
			<sql>auto_switch_reserve</sql>
			<default_value/>
			<is_null_allowed>true</is_null_allowed>
			</field>
			<field id="contactor" xsi:type="AttributeString">
			<sql>contactor</sql>
			<default_value/>
			<is_null_allowed>true</is_null_allowed>
			</field>
		</fields>
		<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="location_id">
              <rank>50</rank>
            </item>
            <item id="brand_id">
              <rank>60</rank>
            </item>
            <item id="model_id">
              <rank>70</rank>
            </item>
            <item id="motor">
              <rank>80</rank>
            </item>
			<item id="generator">
              <rank>90</rank>
            </item>
			<item id="auto_switch_reserve">
              <rank>100</rank>
            </item>
			<item id="contactor">
              <rank>110</rank>
            </item>
            <item id="serialnumber">
              <rank>120</rank>
            </item>
            <item id="asset_number">
              <rank>130</rank>
            </item>
            <item id="move2production">
              <rank>140</rank>
            </item>
            <item id="purchase_date">
              <rank>150</rank>
            </item>
            <item id="end_of_warranty">
              <rank>160</rank>
            </item>
            <item id="description">
              <rank>170</rank>
            </item>
            <item id="contacts_list">
              <rank>180</rank>
            </item>
            <item id="documents_list">
              <rank>190</rank>
            </item>
            <item id="tickets_list">
              <rank>200</rank>
            </item>
            <item id="providercontracts_list">
              <rank>210</rank>
            </item>
            <item id="services_list">
              <rank>220</rank>
            </item>
          </items>
        </details>
        <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="location_id">
              <rank>50</rank>
            </item>
            <item id="brand_id">
              <rank>60</rank>
            </item>
            <item id="model_id">
              <rank>70</rank>
            </item>
            <item id="motor">
              <rank>80</rank>
            </item>
			<item id="generator">
              <rank>90</rank>
            </item>
            <item id="auto_switch_reserve">
              <rank>100</rank>
            </item>
			<item id="contactor">
              <rank>110</rank>
            </item>
            <item id="serialnumber">
              <rank>120</rank>
            </item>
            <item id="asset_number">
              <rank>130</rank>
            </item>
            <item id="move2production">
              <rank>140</rank>
            </item>
            <item id="purchase_date">
              <rank>150</rank>
            </item>
            <item id="end_of_warranty">
              <rank>160</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="location_id">
              <rank>40</rank>
            </item>
            <item id="brand_id">
              <rank>50</rank>
            </item>
            <item id="model_id">
              <rank>60</rank>
            </item>
            <item id="serialnumber">
              <rank>70</rank>
            </item>
          </items>
        </list>
      </presentation>
	</class>
  </classes>
  <menus>
    <menu id="ConfigManagementOverview" xsi:type="DashboardMenuNode" _delta="must_exist">
    <definition>
      <cells>
        <cell id="0" _delta="must_exist">
          <dashlets>
            <dashlet id="24" xsi:type="DashletBadge" _delta="define">
              <rank>6</rank>
              <class>diesel</class>
            </dashlet>
          </dashlets>
        </cell>
      </cells>
    </definition>
  </menu>
  </menus>
  <user_rights>
    <groups>
    </groups>
    <profiles>
    </profiles>
  </user_rights>
</itop_design>

Попробуйте добавить в module.???.php ссылку на модуль который будет использоваться в качестве родительского

  'dependencies' => array(

‘itop-config-mgmt/2.1.0’,
)

1 лайк

Спасибо. Помогло.
Это второй модуль, который я пишу.
Открыл свой первый модуль, там я такую строчку не добавлял, все установилось не знаю как))
В этот раз добавил.
Спасибо.

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

2 лайка