boy 发表于 2020-12-4 15:28:48

系统管理-管理员手册-OQL查询语言-iTop中的应用示例

本帖最后由 adminlily 于 2020-12-4 16:36 编辑

OQL 示例团队成员目的: 检索指定团队的所有成员 (团队是通过它的名称指定的)。
[*]兼容性:iTop 2.0
SELECT Person AS p   JOIN lnkPersonToTeam AS l1 ON l1.person_id=p.id
JOIN Team AS t ON l1.team_id=t.id
WHERE t.name = "My team"

查找外键为空的对象

[*]外键不能为空,定义时被设置为0,
[*]外键字段的名称 ExternalField 可以为空。
这两个查询将返回同样的结果:SELECT PhysicalDevice WHERE location_id=0
SELECT PhysicalDevice WHERE ISNULL(location_name)


本周
[*]目的:在本周创建的工单 (星期一到当天)
[*]兼容性:iTop 2.0

SELECT UserRequest
WHERE start_date >   
DATE(DATE_SUB(NOW(), INTERVAL IF(DATE_FORMAT(NOW(),'%w')=0,6,DATE_FORMAT(NOW(),'%w')-1)DAY))

上周
[*]目的:上周的工单 (星期一到当天)
[*]兼容性:iTop 2.0
SELECT Ticket
WHERE start_date <   
DATE(DATE_SUB(NOW(), INTERVAL IF(DATE_FORMAT(NOW(),'%w')=0,6,DATE_FORMAT(NOW(),'%w')-1)DAY))
AND start_date >
DATE(DATE_SUB(NOW(), INTERVAL IF(DATE_FORMAT(NOW(),'%w')=0,6,DATE_FORMAT(NOW(),'%w')-1)+7 DAY))

上月
[*]目的:上月的工单

[*]兼容性:iTop 2.0
SELECT Ticket
WHERE   
start_date < DATE_FORMAT(NOW(),'%Y-%m-01 00:00:00')
AND   
start_date > DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH),'%Y-%m-01 00:00:00')

组织层级和位置

[*]目的:查找一个层级组织的位置
[*]兼容性:iTop 2.0


“允许的组织”和在“增强的门户”中失败。
FAQs 域 (标签)
假设你有两个域代码:代理和终端用户,并且一些FAQs有这些标签:你可以搜索这两个标签的任何一个的FAQs:
SELECT FAQ WHERE domains MATCHES 'agent enduser'

你可以搜索两个标签都有的FAQs:
SELECT FAQ WHERE domains MATCHES 'agent' AND domains MATCHES 'enduser'


打开的工单

[*]目的:查找所有打开的工单。在一个简单的SELECT中是不可行的,因为属性“状态”不是在工单类中定义的,而是在每个派生类中定义的。解决方案:使用UNION查询。
[*]兼容性:iTop 2.2.0
UserRequest   ('rejected', 'resolved', 'closed')      ('rejected', 'closed')在UNION查询中,iTop自动确定所有查询中所选类的最低公共祖先。因此,在查询中,结果以工单类的对象的方式显示。


工单联系人


[*]目的:查找提供商(层次结构)的所有联系人,还有客户的人员(仅顶层)
[*]兼容性:iTop 2.2.0



显示多个对象字段
在你的搜索结果时,应包含来自多个类的字段,使用输出规范。例如,以下查询将只返回Contact类字段:









页: [1]
查看完整版本: 系统管理-管理员手册-OQL查询语言-iTop中的应用示例