Параметр add_remove для вкладки ПО (softwares_list) не добавляет фунционал удаления

Коллеги, столкнулся со странной проблемой.
В КЕ Виртуальная машина через параметр add_remove добавил возможность удаления записей для вкладки ПО. Но по факту удалить запись iTop не дает (отсутствует кнопка):

Сам код переопределения класса данной вкладки выглядит так:

    <field id="softwares_list" xsi:type="AttributeLinkedSet"  _delta="redefine">
      <linked_class>SoftwareInstance</linked_class>
      <ext_key_to_me>system_id</ext_key_to_me>
      <edit_mode>add_remove</edit_mode>
      <tracking_level>all</tracking_level>
      <count_min>0</count_min>
      <count_max>0</count_max>
    </field>

Переопределяется этот класс в классе FunctionalCI через кастомный модуль.

Т.е. если я устанавливаю любые другие значения, типа none, add_only, actions, in_place - они работают как и должны. Но вот с add_remove какая-то непонятная ситуация. С другими вкладками таких проблем не возникало ранее.

Подскажите, в чем может быть проблема? И как ее можно решить?

Как обычно, решение пришло сразу после того как написал на форум ))
До этого несколько часов бился.

В общем, такая ситуация возникла потому, что для класса system_id, на который ссылается вкладка software_list при своем объявлении прописан атрибут

<is_null_allowed>false</is_null_allowed> (в рамках класса SoftwareInstance в файле datamodel.itop-config-mgmt.xml)

После замены данного параметра на true (сделав не обязательным) кнопка “Удалить появилась”.
Логично, но это просто дичь додуматься до такого решения.

1 лайк