查询结构

查询由一个或多个条件组成,结果集中的每个工作项都必须满足这些条件。

注: 本主题中的大多数示例都适用于 Eclipse 客户机。 Eclipse 客户机和 Web 客户端中查询编辑器的用户界面非常相似。

可以通过在条件之间使用 ANDOR 元素将条件进行组合和嵌套。 每个条件都会引用一个工作项属性、一个运算符以及一个或多个值。 多个所选值的含义取决于运算符:对于肯定运算符(例如 is),含义为 OR。 对于否定运算符(例如 is not),含义为 AND。 以下两个示例说明了此概念。

示例 1:状态 属性条件设置为 是 "新建" 或 "已重新打开"

将 "状态" 属性条件设置为 "是新 OR 已重新打开" 的示例
注: 在示例 1中, 状态 属性值与特定工作流程相关联,例如, "任务" , "缺陷" , "影响" 和 "回溯" 工作流程的 "新增"; "已针对缺陷工作流程重新打开"。

示例 2:状态 属性条件设置为 不是 "新建" 且未重新打开

将 "状态" 属性条件设置为 "非新且未重新打开" 的示例

还可以通过使用逗号分隔列表来为简单类型(例如字符串或数字)的属性指定多个值。

示例 3:ID 属性条件设置为 是 53 或 110 或 129 或 216

将 ID 属性条件设置为 "is 53 OR 110 OR 129 OR 216" 的示例

如果您没有为属性条件选择或输入值,那么查询引擎将忽略该条件。 空条件等同于与属性的所有可能值都匹配。

变量

大多数值集是可配置的,并且可以随时间推移而变更,这意味着您的查询可能会过时。 变量表示可以随时间推移而变更或者可以适用于查询的运行上下文的值或值集。 由于这些原因,变量提供了一种创建以下查询的方式:这些查询可以随时间推移一直有效,并且可以在用户之间共享。

在用户界面中,变量将表示为复选框,这些复选框位于查询编辑器部分中的值区域之上。 示例 4 显示了 状态 属性的 未解析已解析 变量。

示例 4:状态属性的未解决已解决 变量

"状态" 属性的 "未解析" 和 "已解析" 变量的示例

您可以像使用任何其他值一样使用变量。 如果将变量与其他变量或值进行组合,那么如上所述,相同的语义适用。 在上一示例中,如果您选择未解决变量和已延迟值,那么这意味着对于 is 运算符,状态属性条件是“Unresolved OR Deferred”。

1 描述了一些常用属性和关联变量。
表 1. 属性和相关联的变量
属性 变量 描述
状态 未解决 定义工作流程时,可以将每个状态分配给以下三个组之一: openin progressclosed未解析 变量选择在运行查询时属于 已打开 组和 正在进行中 组的所有状态。
状态 已解决 定义工作流程时,可以将每个状态分配给以下三个组之一: openin progressclosed已解决 变量选择在运行查询时属于 已关闭 组的所有状态。
用户 当前用户 运行查询时,当前用户变量将选择已认证的用户。
归类依据 与当前用户相关 类别属于一个项目或一个或多个团队区域。 运行查询时,归档依据变量将选择所有与已认证的用户所属团队区域相关联的类别。 可以将此变量视为 我的团队区域
计划目标 当前迭代 当您将 is 运算符与 Current 迭代 变量配合使用时,查询将选择在层次结构上执行搜索时设置了 release 调度 标志的第一次迭代,从项目区域中设置为当前的所有叶迭代开始。 当前迭代对应于工作项编辑器中显示为当前的迭代。

is part of 运算符与当前迭代变量配合使用时,查询将所选迭代用作根迭代,并包括其在项目区域中的所有子代。

创建日期   单击相对日期以指定与运行查询时的时间对应的时间点或时间范围。
使用 after (including)before (including) 运算符时,变量将返回的时间为运行查询时的时间加上偏移量。 例如,
  • 创建日期在 2 天之前 表示 在过去 48 小时内创建。
timestamps 对于 isis not 运算符,将按照计划目标属性所述来计算时间点,但变量将返回时间范围,此范围包括该时间点并使用您选择的时间单位。 例如,如果今天是 2015 年 11 月 3 日,那么接下来列示的查询条件具有下列含义。
  • 创建日期为 2 天前 表示 创建时间为 1 年 11 月。
  • 创建日期是 1 月前 表示 从 1 10 月到 10 月 31 日上个月创建。
  • 到期日期为 1 年 (从现在开始) 表示 2016 年 1 月 1 至 2016 年 12 月 31 日之间到期。
注: 运行以下查询时,客户机没有时区更正:
  • 一天在午夜服务器时间开始和结束。

参数变量

参数变量是一种特殊类型的变量功能,该功能通过跨上下文和用户复用查询来使查询更灵活。 参数变量是一种条件,它允许用户在每次运行查询时选择其值,从而允许在不同上下文中复用查询。 例如,可以通过使用参数变量来合并那些使用不同用户组、日期范围、工作项关系以及严重性的查询。 当知道查询中的某个条件会在查询调用之间变更时,最好将该条件定义为参数变量。

例如,在查询运行之前查找 $user 解析的所有包含特定 $text 的案例 提示 IBM® Engineering Workflow Management 用户和某些文本输入的查询。

示例 5:根据解决者全文本属性运行参数化查询

对 "解析者" 和 "全文本" 属性运行参数化查询的示例

您并不需要为所有参数变量都提供值。 如果您没有为某个条件提供值,那么会忽略该条件,并且查询在没有该条件的情况下运行,就像您从查询编辑器运行查询一样。

参数化查询在下列示例情况下很有用:
  • 由我创建并且严重性为 $Severity 且优先级为 $Priority 的项...
  • 由 $Team 在 $DateRange 期间解决的项...
  • 带有标记 $Tag 的已打开的 SCM 工作项...
  • 所有由 $User 解决的项...
  • 严重性为 $Severity、优先级为 $Priority 并且类型为 $Type 的所有已打开的仪表板窗口小部件工作项...

Engineering Workflow Management 在用户界面中参数化查询的名称后追加省略号 (...) ,以指示您需要在查询运行之前提供进一步的输入。

注: 您可以创建包含空字段的查询: 例如,没有内容的文本字段可以包含在查询中。

“未分配”值

某些工作项属性可以为空或者具有未分配值,该值不是属性的可配置值集的一部分。 未分配复选框位于属性的变量区域中,它允许查询此空值。 您可以在所有者计划目标属性中找到未分配值的示例。 通过选择未分配值,您可以创建查询来查找未设置所有者或者没有为迭代进行计划的工作项。

示例 6:所有者计划目标属性中的未分配

"所有者" 属性中未分配的值的示例

"计划目标" 属性中未分配的值的示例

属性组(仅限于 Eclipse 客户机)

您可以使用属性组控件来为一组类型相同的属性指定条件,而不必分别添加这些属性以及不必为每个属性选择相同的值。 用户时间戳记属性存在属性组。 请使用 OR 来连接各个属性条件。

示例 7:用户属性的属性组

User 属性的属性组示例

在此示例中, 用户 属性条件设置为查找 由当前已认证的用户创建,修改,拥有或解析的工作项