Большое спасибо, Павел!
По 1. пункту получилось сделать системное поле CPU обязательным таким вот образом:
> <field id="cpu" xsi:type="AttributeString" _delta="redefine">
> <sql>cpu</sql>
> <is_null_allowed>false</is_null_allowed>
> <on_target_delete>DEL_MANUAL</on_target_delete>
> <target_class>cpu</target_class>
> </field>
А вот сделать обязательное системное поле “Название” (name) не обязательным не получается, toolkit при компиляции выдает ошибку:
Error loading module "sample-add-attribute": /itop_design/classes/class[cmdbAbstractObject]/class[FunctionalCI]/class[PhysicalDevice]/class[ConnectableCI]/class[DatacenterDevice]/class[Server]/fields/field[name] at line 11: could not be modified (not found) - Loaded modules: dictionaries,core,application,authent-external,authent-ldap,authent-local,itop-attachments,itop-backup,itop-config-mgmt,itop-config,itop-datacenter-mgmt,itop-endusers-devices,itop-hub-connector,itop-portal-base,itop-portal,itop-profiles-itil,itop-sla-computation,itop-storage-mgmt,itop-tickets,itop-virtualization-mgmt,itop-welcome-itil,my-module,sample-add-attribute
В xml у меня такой код для переопределения поля name:
<field id="name" xsi:type="AttributeString" _delta="redefine">
<sql>name</sql>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_MANUAL</on_target_delete>
<target_class>name</target_class>
</field>
Предполагаю, что это связано с тем, что где-то вместо name надо указать какой-то другой класс, но пока не получается понять логику.
Подскажите, что в коде может быть не так?