从 Ticket 中移除字段

从 Ticket 中移除字段。

本文档介绍如何从 iTop 类中完全移除字段。更多详细内容请参考 iTop 官方文档

概述

移除字段需要识别该字段在 iTop XML 数据模型中的所有使用位置。以 UserRequest 的 urgency 字段为例,需要检查:

  • 字段定义(fields/field@urgency
  • 类属性(naming、order、reconciliation 等)
  • 生命周期(lifecycle)
  • 展示(presentation)
  • 方法(methods)
  • 门户表单(module_designs/module_design@itop-portal/forms)
  • 字典条目
  • OQL 查询(filter、Dashlets、Audit rules、Notifications 等)

移除标准数据模型中的字段可能破坏依赖该字段的 iTop 扩展的兼容性。

仅隐藏字段

在某些情况下,仅隐藏字段给用户可能已足够。

在门户中隐藏

创建表单时隐藏:

<form id="ticket-create" _delta="must_exist">
  <twig _delta="redefine">
    <div class="row">
      <div class="col-sm-6">
        <div class="form_field" data-field-id="impact"></div>
      </div>
      <div class="col-sm-6">
        <!-- 从默认门户中移除 urgency -->
        <!-- <div class="form_field" data-field-id="urgency"></div> -->
      </div>
    </div>
  </twig>
</form>

在控制台中隐藏

<presentation>
  <details _delta="must_exist">
    <items>
      <item id="col:col2">
        <items>
          <item id="fieldset:Ticket:Type">
            <items>
              <item id="urgency" _delta="delete"/>
            </items>
          </item>
        </items>
      </item>
    </items>
  </details>
</presentation>

仅隐藏不会完全移除字段,仍可通过 CSV 导出、列表配置、CSV 导入、REST/JSON API 访问。

完全移除字段

字段定义

<field id="urgency" _delta="delete">
</field>

类属性

检查 urgency 是否用于:

  • friendlyname
  • 协调字段(CSV 导入)
  • 过时逻辑
  • 唯一性规则

生命周期标志

<state id="resolved">
  <flags>
    <attribute id="urgency" _delta="delete"/>
  </flags>
</state>

方法

检查 PHP 方法中是否有 $this->Get('urgency') 引用。例如 ComputePriority 方法需要修改。

展示

searchlistdefault_search 中移除:

<presentation>
  <search>
    <items>
      <item id="urgency" _delta="delete"/>
    </items>
  </search>
</presentation>

字典条目

理论上应删除对应字典条目,但不删除不影响 iTop 行为。

OQL 查询

检查以下位置是否使用了该字段:

  • 数据模型中的 filter 标签
  • Dashlets
  • 查询短语
  • 审计规则
  • 书签 URL
  • 通知
  • 配置文件参数

原文:https://www.itophub.io/wiki/page?id=3_2_0:customization:remove-field

2024/09/10 10:25 by127.0.0.1

版本:3_2_0/customization/remove-field.txt · Last modified: 2024/09/10 10:25 by 127.0.0.1