请选择 进入手机版 | 继续访问电脑版

ITIL,DevOps,ITSS,ITSM,IT运维管理-ITIL先锋论坛

 找回密码
 微信、QQ、手机号一键注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 61|回复: 0

[功能实施] 二次开发-数据环境-给类增加仪表板

[复制链接]
匿名  发表于 2020-12-15 16:31:40 |阅读模式
本帖最后由 adminlily 于 2020-12-15 16:34 编辑

在团队中添加仪表板
先决条件:您必须熟悉教程中使用的语法 并且已经创建了一个扩展.

我们还假定您熟悉iTop中的仪表板设计和Q.

学习:在类上添加仪表板属性

水平:初学者


最低版本:2.6.0

您想在每个团队上显示一个新的标签,其中显示了仪表板以及该团队的特定信息:

  • 分配给该团队的待售票清单
  • 仅限活跃成员的成员列表
  • 至少一名团队成员所在的位置列表


这些只是可以定义的Dashlet的示例,此教程的目的不是解释如何创建仪表盘。

可以用于上述示例的OQL查询
分配给该团队的待售票清单:

SELECT UserRequest WHERE STATUS IN ('assigned') AND team_id=:this->id
UNION SELECT Incident WHERE STATUS IN ('assigned') AND team_id=:this->id
UNION SELECT Problem WHERE STATUS IN ('assigned') AND team_id=:this->id

仅限活跃成员的成员列表:

SELECT Person AS p
   JOIN lnkPersonToTeam AS l ON l.person_id = p.id
  WHERE l.team_id = :this->id AND STATUS='active'

至少一名团队成员所在的位置列表:

SELECT Location AS L
   JOIN Person AS P ON P.location_id=L.id
  JOIN lnkPersonToTeam AS l1 ON l1.person_id=P.id
   JOIN Team AS T ON l1.team_id=T.id
   WHERE T.id=:this->id


创建一个仪表板属性
为此,您将需要为Team类创建一个新的AttributeDashboard字段,并将其添加到详细信息显示中。

itop_design / classes


  <class id="Team" _delta="must_exist">      <fields>
        <field id="dashboard" xsi:type="AttributeDashboard" _delta="define">
          <is_user_editable>true</is_user_editable>
          <!-- Use this default definition for creating a new dashboard -->
          <definition>
            <!-- Later replace the whole definition with the XML export -->
            <layout>DashboardLayoutOneCol</layout>
            <title/>
            <auto_reload>
              <enabled>false</enabled>
              <interval>300</interval>
            </auto_reload>
            <cells>
              <cell id="0">
                <rank>0</rank>
                <dashlets>
                  <dashlet id="0" xsi:type="DashletEmptyCell">
                    <rank>0</rank>
                  </dashlet>
                </dashlets>
              </cell>
            </cells>
          </definition>
        </field>
      </fields>
      <presentation>
        <!-- Dashboard can only be displayed in the details -->
        <details>
          <items>
            <!-- Dashboard can be displayed neither in a fieldset, nor in a column


-->
            <item id="dashboard" _delta="define">
              <rank>100</rank>
            </item>
          </items>
        </details>
      </presentation>
    </class>

对仪表板使用较高的等级,将其放在末尾(“历史记录”之前),否则,当切换到仪表板之后的关系选项卡上的修改模式时,最终将修改错误的关系选项卡。由于仪表板不可编辑,因此将其从编辑视图中删除,对标签进行了重新编号,并从读取切换为编辑,并保留在相同的标签号上

添加一个字典条目  class:Team/Attribute:dashboard.

设计您的仪表板
部署扩展的第一个版本,它将提供一个空的仪表板。在iTop中重新设计此仪表板

在团队仪表板中编写OQL查询时,可以使用诸如:this-> att_code的占位符,其中att_code可以是团队的任何字段
使用团队ID的示例:

SELECT Person AS p JOIN lnkPersonToTeam AS lnk ON lnk.person_id = p.id WHERE lnk.team_id=:this->id

如果对设计感到满意,请将其导出为 XML,然后用导出<definition>替换初始<dashboard>内容:

<?xml version="1.0"?>
<dashboard xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <layout>DashboardLayoutOneCol</layout>
  <title/>
  <auto_reload>
    <enabled>false</enabled>
    <interval>300</interval>
  </auto_reload>
  <cells>
    <cell id="0">
      <rank>0</rank>
      <dashlets>
        <dashlet id="1" xsi:type="DashletObjectList">
          <rank>0</rank>
          <title>Members</title>
          <query>SELECT Person AS p
                 JOIN lnkPersonToTeam AS lnk ON lnk.person_id = p.id
                 WHERE lnk.team_id=:this->id
          </query>
          <menu>true</menu>
        </dashlet>
      </dashlets>
    </cell>
    <cell id="1">
      <rank>1</rank>
      <dashlets>
        <dashlet id="0" xsi:type="DashletEmptyCell">
          <rank>0</rank>
        </dashlet>
      </dashlets>
    </cell>
  </cells>
</dashboard>


当对您的设计满意时,导出以XML格式保存,并用导出的<仪表板>标签内容替换初始<definition>的内容:

itop_design / classes / class@Team / fields


        <field id="dashboard" xsi:type="AttributeDashboard" _delta="define">
          ...
         <definition>
            <!-- Paste here the XML export of your Dashboard designed directly in iTop -->
          </definition>
          ...

并再次运行安装程序。

  • 每个人都会在所有Team对象上看到仪表板。
  • 用户还可以将其扭曲为仪表板团队自己的构建,
  • 但是它们都共享您在iTop上设计并推送的通用版本。

如果您推送该仪表板的新版本:

  • 每个人都会得到它
  • 仪表板的定制版本,也就是以前的通用仪表板的构建,将保持不变。






上一篇:二次开发-数据环境-隐藏或移除字段
下一篇:二次开发-数据环境-增加状态及状态变迁

本版积分规则

参加 ITIL 4 基础和中级专家认证、v3专家升级、DevOps专家认证、ITSS服务经理认证报名
本站关键字: ITIL| ITSM| ISO20000| ITIL培训| ITIL认证| ITIL考试| ITSS| ITSS培训| ITSS认证| IT运维管理| DevOps| DevOps培训| DevOps认证| itop| itil4| sre| 开源ITSM软件

QQ|小黑屋|手机版|Archiver|艾拓先锋网 ( 粤ICP备11099876号-1 )|网站地图

Baidu

GMT+8, 2021-1-26 01:51 , Processed in 0.157583 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表