Создание связей между объектами cmdb

Внутри тега <presentation> каждого класса есть три вложенные секции, каждая из которых отвечает за свой тип вывода:

  • в <search> описываются поля синей формы поиска вверху страницы;
  • в <list> - поля, которые будут показываться при табличном выводе объектов класса;
  • <details> описывает форму карточки объекта данного класса.

Классы бывают:

  • абстрактные - используются для передачи свойств по наследству дочерним классам, не используются для создания объектов;
  • реальные - используются для создания объектов.

Из этого следует, что <search> и <list> применимы для всех классов, а <details> только для реальных, объекты которых можно создавать в iTop.

Меняя <presentation> для класса Физические устройства, результат будет виден только в форме поиска и при табличном выводе Физических устройств. Для изменения карточки КЕ нужно менять <details> реального класса, которому принадлежит объект.

Картинка получается примерно такой:

<class id="PhysicalDevice"> 
  <fields>
    <field id="MY_SUPER_FIELD" xsi:type="AttributeExternalKey" _delta="define">
    </field>
  </fields>
  <presentation>
    <search>
      <items>
        <item id="MY_SUPER_FIELD"  _delta="define">
          <rank>40</rank>
        </item>
      </items>
    </search>
    <list>
      <items>
        <item id="MY_SUPER_FIELD"  _delta="define">
          <rank>130</rank>
        </item>
      </items>
    </list>
  </presentation>
</class>

<class id="Laptop"> 
  <presentation>
    <search>
      <items>
        <item id="MY_SUPER_FIELD"  _delta="define">
          <rank>130</rank>
        </item>
      </items>
    </search>
    <list>
      <items>
        <item id="MY_SUPER_FIELD"  _delta="define">
          <rank>30</rank>
        </item>
      </items>
    </list>
    <details>
      <items>
        <item id="MY_SUPER_FIELD"  _delta="define">
          <rank>50</rank>
        </item>
      </items>
    </details>
  </presentation>
</class>

То, что это немного нудно - согласен. А при обновлении ничего никуда не денется, если ты всё делаешь в отдельном модуле в extensions. Новая модель данных будет собираться с учетом твоего модуля.

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

1 лайк