合并状态
合并状态。
本文档介绍如何使用 AttributeMetaEnum 创建基于子类字段值的合并状态。更多详细内容请参考 iTop 官方文档。
概述
Ticket 类使用特殊的 AttributeMetaEnum 类型属性来创建聚合状态,基于子工单类字段值自动计算。
您可以为 FunctionalCI 类创建类似的 AttributeMetaEnum 字段,基于一个或多个子类上定义的字段值计算。
添加计算状态
<class id="FunctionalCI" _created_in="itop-config-mgmt" _delta="must_exist">
<fields>
<field id="operational_status" xsi:type="AttributeMetaEnum" _delta="define">
<values>
<value id="production"><code>production</code></value>
<value id="implementation"><code>implementation</code></value>
<value id="obsolete"><code>obsolete</code></value>
</values>
<sql>operational_status</sql>
<default_value>production</default_value>
<mappings>
<mapping id="FunctionalCI">
<attcode>status</attcode>
<metavalues>
<metavalue id="implementation">
<values>
<value id="implementation"/>
</values>
</metavalue>
<metavalue id="obsolete">
<values>
<value id="obsolete"/>
<value id="inactive"/>
</values>
</metavalue>
</metavalues>
</mapping>
</mappings>
</field>
</fields>
</class>
default_value:若没有任何映射适用,则使用此默认值mapping的 ID 必须是当前类或子类attcode:至少一个子类上定义的属性代码- 可定义多个映射,第一个匹配的映射决定 AttributeMetaEnum 的值
修改计算状态
示例:添加新的 escalated 值,并修改 UserRequest 的 rejected 映射逻辑:
<field id="operational_status" xsi:type="AttributeMetaEnum">
<values _delta="must_exist">
<value id="escalated" _delta="define">
<code>escalated</code>
</value>
</values>
<mappings>
<mapping id="Ticket" _delta="must_exist">
<metavalues>
<metavalue id="escalated" _delta="define">
<values>
<value id="escalated_tto"/>
<value id="escalated_ttr"/>
</values>
</metavalue>
<metavalue id="closed" _delta="must_exist">
<values>
<value id="rejected" _delta="delete"/>
</values>
</metavalue>
</metavalues>
</mapping>
<mapping id="Change" _delta="define">
<attcode>status</attcode>
<metavalues>
<metavalue id="closed">
<values>
<value id="closed"/>
<value id="rejected"/>
</values>
</metavalue>
</metavalues>
</mapping>
</mappings>
</field>
此示例中:
- UserRequest 的
rejected状态映射为ongoing(Ticket 的默认映射) - Change 的
rejected状态仍映射为closed
默认 3.1 定义
<field id="operational_status" xsi:type="AttributeMetaEnum">
<values>
<value id="ongoing">
<code>ongoing</code>
</value>
<value id="resolved">
<code>resolved</code>
<style>
<main_color>$ibo-lifecycle-success-state-primary-color</main_color>
<complementary_color>$ibo-lifecycle-success-state-secondary-color</complementary_color>
<decoration_classes>fas fa-check</decoration_classes>
</style>
</value>
<value id="closed">
<code>closed</code>
<style>
<main_color>$ibo-lifecycle-frozen-state-primary-color</main_color>
<complementary_color>$ibo-lifecycle-frozen-state-secondary-color</complementary_color>
<decoration_classes/>
</style>
</value>
</values>
<default_style>
<main_color>$ibo-lifecycle-neutral-state-primary-color</main_color>
<complementary_color>$ibo-lifecycle-neutral-state-secondary-color</complementary_color>
<decoration_classes/>
</default_style>
<sql>operational_status</sql>
<default_value>ongoing</default_value>
<mappings>
<mapping id="Ticket">
<attcode>status</attcode>
<metavalues>
<metavalue id="resolved">
<values>
<value id="resolved"/>
</values>
</metavalue>
<metavalue id="closed">
<values>
<value id="closed"/>
<value id="rejected"/>
</values>
</metavalue>
</metavalues>
</mapping>
</mappings>
</field>
原文:https://www.itophub.io/wiki/page?id=3_2_0:customization:meta-enum
Last modified: 2026/01/14 17:10 by127.0.0.1
版本:3_2_0/customization/meta-enum.txt · Last modified: 2026/01/14 17:10 by 127.0.0.1