计算表达式函数类
在计算表达式中,您可以使用下列函数类执行计算:
算术函数
算术函数可应用在任何计算表达式类型中,以执行基本的算术计算。例如,添加两个字段值并将结果值舍为最近的整数。
有关算术函数的完整列表,请参阅算术函数
日期/时间函数
日期/时间函数用于返回或量化日期/时间信息。例如,某项保持在特定状态下的天数,或者针对某项记录的最早日期/时间。
有关日期/时间函数的完整列表,请参阅日期/时间函数
聚合函数
聚合函数用于执行项数据的聚合计算。例如,使用 sum 函数以在项列表中添加字段值。尝试使用正常表达式的聚合函数会导致出错。
有关聚合函数的完整列表,请参阅聚合函数
文本函数
文本函数用于执行具有文本和数字字段的计算,以提供文本/数值。例如,使用项的 ID 创建用于计算项的唯一标识符的计算字段,例如 REQ-00001234。文本函数中的字符串表达式接受短和长文本字段。
有关文本函数的完整列表,请参阅文本函数
外部信息函数
外部信息函数针对单个项运行,并会从项中提取指标信息。例如,项处于 Submit 状态的次数。尝试在聚合表达式中使用外部信息函数会出错。例如,SICPEntryCount() 是无效的聚合表达式,但是 sum(SICPEntryCount()) 有效,因为聚合函数的参数是正常表达式。SICPEntryCount() 是正常表达式的一部分,因此有效。
例如,在访问单个项时,使用 DaysInState() 有效,因为它会生成单个数字。但是,如果将其用于项列表,则不会返回任何结果。要将外部信息函数应用至列表中的每项,必须将其嵌入聚合函数中。例如,avg(DaysInState())
有关外部信息函数的完整列表,请参阅外部信息函数
项信息函数
项信息函数用于返回有关项类型的基础信息。例如,如果项类型具有测试用例的测试管理角色,则将返回 true 或 false 值。
有关项信息函数的完整列表,请参阅项信息函数
文本函数
测试函数用于返回有关测试结果的信息。例如,返回指定结论 ID 的数字结论类型值。
有关测试函数的完整列表,请参阅测试函数
重要考虑事项
所有字段都会返回特定于其字段类型的值。但是,选择列表字段会返回其数字 (非文本) 值。例如,getFieldValue (567, Priority) 会将 1 显示为 Defect 567Priority=High 的值。
文档模型会使用节点、段、共享项和测试类型。
如果已启用文档版本化,则默认情况下计算表达式会返回所有项 (活动项和已版本化的项)。要指定活动项或已版本化的项,请包括 IsLive()IsVersioned() 函数。
文本计算中的文本字符串不能超过 1 千字节。超过此限制可能会导致 Windchill RV&S 服务器出现故障。
算术函数
名称和说明
返回值
abs(numeric-expression)
返回数字表达式的绝对值。
整数或浮点数
(与表达式相同)
sign(numeric-expression)
如果表达式求值结果 < 0,则会返回 -1;如果其求值结果等于 0,则会返回 0,如果其求值结果等于正数,则会返回 +1
整数或浮点数
(与表达式相同)
round(numeric-expression)
返回舍入为最近整数的表达式。
整数
truncate(numeric-expression)
返回截断到最近整数的表达式。
整数
floor(numeric-expression)
返回小于或等于指定数字表达式的最大整数。
整数
ceil(numeric-expression)
返回大于或等于指定数字表达式的最小整数。
整数
mod(numeric-expression1, numeric-expression2)
返回第一个表达式除以第二个表达式的余数。
如果任一表达式不是整数,则表达式为:
(abs(e1) - floor(abs(e1)/abs(e2)) * abs(e2)) * sign(e1)
如果两个表达式均为整数,则为整数;否则为浮点数。
isEmpty(expression1, expression2)
对第一个表达式求值。如果结果不为空,则将成为函数的返回值。如果结果为空,则对第二个表达式求值,该值就是函数的返回值。两个表达式均必须针对同一类型进行求值。表达式可以是数字、时间或布尔值。
输入表达式
emptyint()
在整数字段中输入空值。
emptyfloat()
在浮点字段中返回空值。
emptytime()
在日期/时间字段返回空值。
emptydate()
在日期字段返回空值。
emptylogical()
在逻辑字段返回空值。
emptytext()
在文本字段中返回空值。
emptyuser()
在用户字段中返回空值。
emptygroup()
在组字段中返回空值。
timestamp(quoted-string)
将提供的字符串转换为时间戳常数。使用 Java SimpleDateFormat 依次尝试以下格式,直至一个格式成功:
Java DateTimeInstance(LONG, LONG)
Java DateTimeInstance(SHORT, SHORT)
MMM d, yyyy hh:mm a
MMM d, yyyy HH:mm
MMM d, yyyy HH:mm:ss
* 
使用客户端的区域设置在客户端上完成分析。在分析过程中对时间戳进行求值以使之成为时间戳常数。显示表达式时,它会显示在区域设置的标准格式中。
时间戳
now()
返回当前时间。
* 
当前时间是表达式已求值但未分析的时间。要返回项存在的天数,请输入:
now() - "Created Date"
时间戳
SelectionCount(field-name)
返回在项的多值字段中选择的条目数。如果字段为空,则会返回 0;。如果字段不为空,但是不是多值,则会返回 1
对于附件、关系或计算字段无效。
整数
日期/时间函数
名称和说明
返回值
DateDiff(date/time field1, date/time field2)
返回两个日期/时间字段之间的秒数。如果 date/time field1 大于 date/time field2,则结果为正数。否则,结果为负数。
通过包括 dateFirstEntered 函数,您可以计算关闭事件项的秒数。例如,DateDiff(dateFirstEntered(“Closed”), “Created Date”)
* 
要正确计算表达式,必须在每个指定的日期/时间字段中启用 Include Time 选项。
整数
DaysInState(state-name)
返回项处于特定状态的天数 (舍入为最接近的天数)。各个状态次数会加在一起 (以秒为单位)。得出的总和将舍入为天数。
要指定未指定的状态,请输入 "Unspecified"。例如,DaysInState("Unspecified")
整数
DaysInPhase(phase field name, phase name)
返回项处于特定阶段的天数 (舍入为最接近的天数)。各个阶段次数会加在一起 (以秒为单位)。得出的总和将舍入为天数。
整数
DaysCurrentState()
返回项处于当前状态的天数 (舍入为最接近的天数)。
整数
DayOfYear(date/timestamp/field)
对于指定的日期,返回在该年第几日。
整数
dayOfWeek(date/timestamp/field)
对于指定的日期,返回星期几。星期日是 1,星期一是 2 等等。
整数
weekOfYear(date/timestamp/field)
对于指定的日期,返回在该年第几周。
* 
对于日历周,Windchill RV&S 不支持 ISO-8601。因此,返回的日历周始终会比预期高出一个数字。例如,对于 Windchill RV&S 中的 2010 年,日历第 1 周始于 2010 年 1 月 1 日。在 ISO-8601 中,日历第 1 周始于 2010 年 1 月 4 日。
整数
monthOfYear(date/timestamp/field)
对于指定的日期,返回在该年第几月。
整数
weeksDiff(dateA, dateB)
返回在两个指定日期之间的周数。
* 
这是实际周数,而不是天数除以 7。
整数
monthsDiff(dateA, dateB)
返回在两个指定日期之间的月数。
* 
这是实际月数,而不是天数除以 30。
整数
weekdaysDiff(dateA, dateB)
返回在两个指定日期之间的工作日数。不含星期六和星期日。
整数
DayOfWeekName(date/timestamp)
返回指定日期或日期与时间所在的星期几。例如,星期一。
文本
getDay(date/timestamp/field)
返回指定日期或日期与时间的确切日期。例如,23 日。
整数
getYear(date/timestamp/field)
返回指定日期或日期与时间所属的年份。例如,2009 年。
整数
MonthOfYearName(date/timestamp/field)
返回指定日期或日期与时间所属的月份。例如,十月。
文本
getHour(timestamp/field)
返回指定时间的小时数。例如,2。
* 
小时数以 24 小时制指定。例如,午夜是 0 时,而 7pm 是 19 时。
整数
getMinute(timestamp/field)
返回指定时间的分钟数。例如,05。
整数
getSecond(timestamp/field)
返回指定时间的秒数。例如,33。
整数
DaysCurrentPhase(phase-field-name)
返回项处于当前阶段的天数 (舍入为最接近的天数)。
整数
dateFirstEntered(state-name)
返回首次进入指定状态的日期。
时间戳
dateLastEntered(state-name)
返回上次进入指定状态的日期。
时间戳
SecondsInState
返回项处于特定状态的秒数。如果某项多次处于某状态,则会将每次的秒数加在一起。
要指定未指定的状态,请输入 "Unspecified"。例如,SecondsInState("Unspecified")
整数
SecondsInPhase
返回项处于特定阶段的秒数。如果某项多次处于该阶段,则会将每次的秒数加在一起。
要指定未指定的阶段,请输入 "Unspecified",例如,SecondsInPhase("Unspecified")
整数
SecondsCurrentState
返回项处于当前状态的秒数。
整数
SecondsCurrentPhase
返回项处于当前阶段的秒数。
整数
sumTimeEntry[(date("startdate"),date("enddate"))]
sumTimeEntry[(symbolicdate(),symbolicdate())]
返回在可选时间范围内,在项上所用的总时间 (舍入为小时)。
整数
sumTimeEntryByUser(user[,user...][,date("startdate"),date("enddate")]
sumTimeEntryByUser(user[,user...][,symbolicdate(),symbolicdate()]
返回在可选时间范围内,指定用户在项上所用的总时间 (舍入为小时)。
整数
sumTimeEntryByGroup(group[,group...][,date("startdate"),date("enddate")])
sumTimeEntryByGroup(group[,group...][,symbolicdate(),symbolicdate()])
返回在可选时间范围内,指定组在项上所用的总时间 (舍入为小时)。
整数
sumTimeEntryByPhase(phaseField, phase[,date("startdate"),date("enddate")])
sumTimeEntryByPhase(phaseField, phase[,symbolicdate(),symbolicdate()])
返回处于指定阶段字段的阶段时,在项上所用的总时间 (舍入为小时)。
整数
sumTimeEntryByPhaseByUser(phaseField, phase, user[,user...][,date("startdate"),date("enddate")])
sumTimeEntryByPhaseByUser(phaseField, phase, user[,user...][,symbolicdate(),symbolicdate()])
返回处于指定阶段字段的阶段时,指定用户在项上所用的总时间 (舍入为小时)。
整数
sumTimeEntryByPhaseByGroup(phaseField, phase, group[,group...][,date("startdate"),date("enddate")])
sumTimeEntryByPhaseByGroup(phaseField, phase, group[,group...][,symbolicdate(),symbolicdate()])
返回处于指定阶段字段的阶段时,指定组在项上所用的总时间 (舍入为小时)。
整数
sumTimeEntryByState(state[,date("startdate"), date("enddate")])
sumTimeEntryByState(state[,symbolicdate(), symbolicdate()])
返回处于指定状态时,在项上所用的总时间 (舍入为小时)。
* 
Windchill RV&S 按日收集时间条目并将时间条目分配到日 (到午夜)。Windchill RV&S 会记录状态更改 (精确到毫秒)。使用时间条目来确定项处于特定状态下的时长只是得到一个近似值。因此,仅当项在整日仅包含一个状态转换时,才能保证该函数正确。
例如,项在一日内发布、转移过多个状态 (InvestigateIn DevelopmentDevelopment Done),然后关闭 (Built)。然后,处理项的用户在时间条目中输入在项上所用的总时间。由于 Windchill RV&S 无法将此时间条目 (在项上所用的小时数) 细分为多条信息 (在每个状态上所用的小时数),sumTimeEntryByState 函数会将时间条目分配给单个状态,即项在条目 (Built) 所在当日的午夜所处的状态。
要指定未指定的状态,请输入 "Unspecified"。例如,sumTimeEntryByState("Unspecified")
整数
sumTimeEntryByStateByUser(state, user[,date("startdate"),date("enddate")])
sumTimeEntryByStateByUser(state (user[,symbolicdate(),symbolicdate()])
返回处于指定状态时,指定用户在项上所用的总时间 (舍入为小时)。
整数
sumTimeEntryByStateByGroup(state, group[,date("startdate"),date("enddate")])
sumTimeEntryByStateByGroup(state, group[,symbolicdate(),symbolicdate()])
返回处于指定状态时,指定组在项上所用的总时间 (舍入为小时)。
整数
countTimeEntry(date("startdate"), date("enddate"))
countTimeEntry(symbolicdate(),symbolicdate())
返回在可选时间范围内,持续时间大于零的项的时间条目数。
整数
countTimeEntryByUser(user[,user...] [,date("startdate"),date("enddate")])
countTimeEntryByUser(user[,user...] [,symbolicdate(),symbolicdate()])
返回在可选时间范围内,持续时间大于零且由指定用户使用的项的时间条目数。
整数
countTimeEntryByGroup(group[,group...] [,date("startdate"),date("enddate")])
countTimeEntryByGroup(group[,group...] [,symbolicdate(),symbolicdate()])
返回在可选时间范围内,持续时间大于零且由指定组使用的项的时间条目数。
整数
firstTimeEntryDate()
返回针对项记录的最早日期时间。
日期
lastTimeEntryDate()
返回针对项记录的最晚日期时间。
日期
聚合函数
名称和说明
返回值
sum(numeric-expression)
将运行聚合所针对的每个项的计算表达式结果相加。
与表达式相同的整数或浮点
avg(numeric-expression)
将运行聚合所针对的每个项的计算表达式结果相加,然后除以非空条目数。
浮点
min(numeric-expression or timestamp)
在运行聚合所针对的每个项中查找最小的表达式。如果所有表达式均为空,则结果为空。
与表达式相同的整数、浮点或者时间戳
max(numeric-expression or timestamp)
在运行聚合所针对的每个项中查找最大的表达式。如果所有表达式均为空,则结果为空。
与表达式相同的整数、浮点或者时间戳
count()
返回运行聚合所针对的项的数量。
整数
sumTimeEntrySecs[(date("startdate"),date("enddate"))]
sumTimeEntrySecs[(symbolicdate(),symbolicdate())]
返回在可选时间范围内在项上所用的总时间 (以秒为单位)。
整数
sumTimeEntrySecsByUser(user[,user...][,date("startdate"),date("enddate")]
sumTimeEntrySecsByUser(user[,user...][,symbolicdate(),symbolicdate()]
返回指定用户在可选时间范围内在项上所用的总时间 (以秒为单位)。
整数
sumTimeEntrySecsByGroup(group[,group...][,date("startdate"),date("enddate")])
sumTimeEntrySecsByGroup(group[,group...][,symbolicdate(),symbolicdate()])
返回指定组在可选时间范围内在项上所用的总时间 (以秒为单位)。
整数
sumTimeEntrySecsByState(state[,date("startdate"),date("enddate")])
sumTimeEntrySecsByState(state[,symbolicdate(),symbolicdate()])
返回在指定状态内在项上所用的总时间 (以秒为单位)。
整数
sumTimeEntrySecsByStateByUser(state, user[,date("startdate"),date("enddate")])
sumTimeEntrySecsByStateByUser(state (user[,symbolicdate(),symbolicdate()])
返回指定用户在指定状态内在项上所用的总时间 (以秒为单位)。
整数
sumTimeEntrySecsByStateByGroup(state, group[,date("startdate"),date("enddate")])
sumTimeEntrySecsByStateByGroup(state, group[,symbolicdate(),symbolicdate()])
返回指定组在指定状态内在项上所用的总时间 (以秒为单位)。
整数
sumTimeEntrySecsByPhase(phaseField, phase[,date("startdate"),date("enddate")])
sumTimeEntrySecsByPhase(phaseField, phase[,symbolicdate(),symbolicdate()])
针对指定阶段,返回在该阶段内在项上所用的总时间 (以秒为单位)。
整数
sumTimeEntrySecsByPhaseByUser(phaseField, phase, user[,user...][,date("startdate"),date("enddate")])
sumTimeEntrySecsByPhaseByUser(phaseField, phase, user[,user...][,symbolicdate(),symbolicdate()])
返回指定用户在指定阶段内,在项上所用的总时间 (以秒为单位)。
整数
sumTimeEntrySecsByPhaseByGroup(phaseField, phase, group[,group...][,date("startdate"), date("enddate")])
sumTimeEntrySecsByPhaseByGroup(phaseField, phase, group[,group...][,symbolicdate(),symbolicdate()])
针对指定阶段,返回指定组在该阶段内在项上所用的总时间 (以秒为单位)。
整数
LastResultAgg()
针对项组,返回最近测试结果记录的内部 ID。此函数必须与 AggregateAggregateByTreeQuery 函数一起使用。例如,AggregateByTree (LastResultAgg())。此函数必须与 TestVerdictName 函数搭配使用,才能将内部 ID 转换为显示字符。例如,TestVerdictName(LastResultAgg()).
整数
文本函数
名称和说明
返回值
Text(string)
创建文本常量。
* 
如果字符串不包含特殊字符,则无需使用引号。例如,text("REQ")text(REQ) 会识别为同一字符串。
文本
Length(string-expression)
返回字符串的长度。
整数
Upper(string-expression)
将字符串转换为大写。
文本
Lower(string-expression)
将字符串转换为小写。
文本
Concat(string-expression, string-expression[, ...])
串联两个或更多字符串。
文本
Substring(string-expression, start, count)
提取字符串的子字符串。子字符串从首个字符开始,直至计数字符。start 偏移是 origin 1startcount 必须是正整数常量。
下列情况会返回空字符串:
start 小于或等于零。
start 大于要处理的字符串长度。
count 小于零。
如果 startlength 大于正在处理的字符串长度,则会返回从头到尾的整个字符串。没有空白填充。
文本
Locate(string-expression, string-expression)
在第二个字符串中搜索第一个字符串。
要添加 startsWith,请输入 Locate(x, y) == 1
找到第一个字符串在第二个字符串中的值偏移,如果第二个字符串从第一个字符串开始,则返回值为一 (1)。如果未找到,则返回零 (0)。
整数
Trim(string-expression)
从字符串中移除前导空格和尾随空格。
文本
LTrim(string-expression)
从字符串中移除前导空格。
文本
RTrim(string-expression)
从字符串中移除尾随空格。
文本
ToText(number-expression)
将数字转换为字符串。
文本
ToTextZeroPad(number-expression, size)
将数字转换为字符串,并填充零。
size 必须是正整数常量。
如果数字的格式化大小大于或等于指定大小,则返回内容不变。否则,它会在左侧填补零 (0) 字符。如果数字为负,则负号 (-) 将是第一个字符。
文本
外部信息函数
名称和说明
返回值
SICPCount([cpstate, ...])
返回与项关联的更改包数量。从下列更改包状态中指定一个或多个要包括在计数中的状态:
已关闭
打开
已提交
已接受
已拒绝
已放弃
执行失败
如果不指定任何参数,则将返回所有更改包的计数。
整数
SICPEntryCount([cpentrytype, ...])
返回与项关联的更改包条目数量。从下列更改包条目类型中指定一个或多个要包括在计数中的条目类型:
Update
Add
Drop
Lock
RenameFrom
RenameTo
UpdateRevision
UpdateArchive
AddFromArchive
MoveMemberFrom
MoveMemberTo
CreateSubproject
AddSubproject
AddSharedSubproject
DropSubproject
ConfigureSubprojectFrom
ConfigureSUbprojectTo
MoveSubprojectFrom
MoveSubprojectTo
如果不指定任何参数,则将返回所有唯一更改包条目操作的计数。例如,重命名操作仅计为一个条目,而不是 RenameFromRenameTo 操作的单独条目。
整数
SICPBytesAdded()
针对与项关联的所有更改包,返回每个更改包条目添加的字节总数。
对二进制文件会返回 0
指定的参数必须是与更改包中的成员匹配的文本常量后缀。例如,SICPBytesAdded(".java", ".c")
整数
SICPBytesDeleted()
针对与项关联的所有更改包,返回每个更改包条目删除的字节总数。
对二进制文件会返回 0
指定的参数必须是与更改包中的成员匹配的文本常量后缀。例如,SICPBytesDeleted(".java", ".c")
整数
SIDaysCPOpen()
返回与项关联的更改包打开的总天数。
如果更改包当前已打开,则会使用当前时间来计算天数。
如果使用的函数基于过去的某个日期和时间,则计数将基于指定时间。不会计入在指定时间后创建的任何更改包。在指定时间后关闭的更改包的打开天数将使用指定时间作为关闭时间来计算。
整数
SICPLinesAdded()
针对与项关联的所有更改包,返回每个更改包条目添加的总行数。
对二进制文件会返回 0
指定的参数必须是与更改包中的成员匹配的文本常量后缀。例如,SICPLinesAdded(".java", ".c")
整数
SICPLinesDeleted()
针对与项关联的所有更改包,返回每个更改包条目删除的行数。
对二进制文件会返回 0
指定的参数必须是与更改包中的成员匹配的文本常量后缀。例如,SICPLinesDeleted(".java", ".c")
整数
SIMetric(siproject-field-name, metric name)
针对配置管理项目,返回指标的计算值。
整数
SIMetricCount(siproject-field-name, metric name)
针对配置管理项目,返回构成指标值的项数。
整数
NumberOfEntriesToState(state-name)
返回为进入的状态指定的次数。要指定未指定的状态,请输入 "Unspecified"。例如,NumberOfEntriesToState("Unspecified")
整数
numberOfHistoryEntries()
返回与项关联的增量数。这是指编辑项的次数。
整数
numberOfModifications(field-name)
返回指定字段的增量或更改数。
整数
HistoricFieldValue(field-name, timestamp-constant)
返回指定字段在历史记录特定点的值。
警告:此操作可能需要较长时间才能完成。
指定字段类型名
RelCount(relationship-field)
返回通过指定关系字段的相关项数。这在功能上等效于 aggregate(relationship-field, count())
整数
RelExists(relationship-field)
返回关系是否通过指定关系字段存在。
布尔值
Aggregate(relationship-field, ByDocument(recurseInclude,recurseReference)[, ...], aggregate-expression)
Aggregate 函数针对单个项运行,使用该单项查找多个项,然后根据聚合表达式运行这些多个项以计算单个值。
* 
必须指定至少一个关系字段。
如果有多个关系字段,则会在指定关系字段之后逐级执行计算。例如:
Aggregate(“Field1”,“Field2”,“Field3”,…, sum(IntegerField))
在第一层,Aggregate 函数会通过 Field1 查找所有相关项,并计算结果值的总计。该结果将变为值集的一部分。
在第二级,Aggregate 函数会获取在第一级发现的相关项,并查找通过 Field2 的所有相关值。这些值的总计会添加至值集中。
在第三级,Aggregate 函数会获取在第二级发现的相关项,并查找通过 Field3 的所有相关值。这些值的总计也会添加至值集中。
对于指定的每个关系字段级别,将重复该循环。然后,根据在每个级别发现的结果值集计算 IntegerField 单值 (合计值)。
* 
如果存在复杂或深入的关系嵌套,则 Aggregate 函数有可能会对 Windchill RV&S 服务器的性能产生负面影响。
ByDocument 函数针对通过关系字段作为文档找到的项 (即,通过 contains 关系找到的项) 进行操作,查找其所有关联节点,并递归至包括和参考的文档。
* 
必须将 ByDocument 函数应用为聚合计算中的首个字段。
聚合表达式类型
Query(query-name-string[, correlation-field[, ...]], aggregate-expression)
操作针对单个项,使用该单个项查找多个项,然后汇总为单个值。query-name-string 为查询的名称,与语法 "username:queryname" 中引用的字符串相同。如果未指定 correlation-fields,则不使用当前项的值,并且表达式的结果是常量。聚合表达式针对满足查询的所有项运行。否则,查询将修改为要求每个指定 correlation-field 匹配源项。生成的项结果列表会让 aggregate-expression 针对其运行并返回。
整数或浮点数,视聚合表达式而定
Query(query-name-string[, source-correlation-field, target-correlation-field[, ...]], aggregate-expression)
这是上一 Query 函数更通用的形式。如果 source-correlation-fieldtarget-correlation-field 相同,您可能需要使用上一 Query 函数。该 Query 函数会获取源项和目标项之间匹配的字段列表。在您希望某个主项 (字段设置等于所有相关项上的值) 与 (特别是) “项目”字段匹配时很有用。
整数或浮点数,视聚合表达式而定;请参阅“查询函数”
QueryCorrelated(query-name-string[, source-correlation-field, target-correlation-field[, ...]], aggregate-expression)
要将 Query 表示为 QueryCorrelated 函数,从 Query 中将 aggregation-field 指定为 source-correlation-fieldtarget-correlation-field
可用于在两侧指定匹配字段。这对项支持的选择列表 (IBPL) 字段很有用。例如,如果您的项类型定义了一组项目 (如应用程序),则 IBPL 会将应用程序的每个成员重新连接至应用程序,同时使用支持查询的关系 (QBR) 字段将每个应用程序连接至其每个成员。您可以对应用程序使用 QueryCorrelated 函数,使用与 IBPL 相关的应用程序项的项 ID 表示其成员的有缺陷应用程序。例如:
QueryCorrelated("All Defects", ID, "Application IBPL", count())
整数或浮点数,视聚合表达式而定;请参阅“查询函数”
项信息函数
名称和说明
返回值
getFieldValue(item#, field)
返回特定项 ID 中的字段值。例如,getFieldValue (234, “Found in Build”) 会为缺陷 234 返回 Found in Build 字段值 7415
取决于字段类型
IsState(statename[, ...])
如果项状态是参数列表中指定的任何状态,则会返回 true
要指定未指定的状态,请输入 "Unspecified"。例如,IsState("Unspecified")
布尔值
IsType()(typename[, ...])
如果项类型是参数列表中指定的任何类型,则会返回 true。
布尔值
IsNode()
如果项是任何类型的节点,则会返回 true。
布尔值
IsSegment()
如果项是任何类型的段,则会返回 true
布尔值
IsSharedItem()
如果项是任何类型的共享项,则会返回 true
布尔值
IsContent()
如果项是任何类型的内容,则会返回 true
布尔值
IsSubsegment()
如果项是任何类型的子段,则会返回 true
布尔值
IsMeaningful()
如果项是有意义的任何类型的节点或段,则返回 true
布尔值
IsNonMeaningful()
如果项是任何类型的节点或段无意义,则会返回 true
布尔值
IsGroupDocument()
如果项是具有组文档标记设置的任何类型的段,则会返回 true
布尔值
IsTestCase()
如果项类型具有测试用例的测试管理角色,则会返回 true
布尔值
IsTestSession()
如果项类型具有测试会话的测试管理角色,则会返回 true
布尔值
IsTestStep()
如果项类型具有测试步骤的测试管理角色,则会返回 true
布尔值
IsTestSuite()
如果项类型具有测试套件的测试管理角色,则会返回 true
布尔值
IsLive()
如果项类型节点或段是活动项,则返回 true。该函数对于仅在计算中指定活动项很有用。
布尔值
IsVersioned()
如果项类型节点或段已版本化,则会返回 true。该函数对于仅在计算中指定版本化的项很有用。
布尔值
文本函数
名称和说明
返回值
TestVerdict(test-verdict-name)
可用于比较的测试结论名称常数。例如,LastResult()==TestVerdict(Passed)
文本
TestVerdictByType(verdict-type-name)
测试结论类型常数与 passfailother 相对应。
文本
TestVerdictName(id)
返回与 ID 相对应的结论显示名称。例如,TestVerdictName(TestVerdict(Passed) 会返回 PassedTestVerdictName(LastResult()) 会返回上一测试结果作为字符串。
文本
TestVerdictTypeName(verdict-type-id)
返回测试结论类型的名称。例如,TestVerdictTypeName(TestVerdictByType(pass)) 会返回 Pass
文本
VerdictToType(verdict-id-expression)
返回指定结论 ID 的数字结论类型值。您可将此函数应用至 LastResult(),以检查结果的结论类型。例如,VerdictToType(LastResult())==TestVerdictByType(pass) 会指明结果是否为通过结论类型。
整数
ResultCount(test-verdict-name)
返回具有特定结论的测试结果数。例如,ResultCount(Passed) 会返回成功的测试结果数。此函数旨在与测试会话类型项搭配使用。
整数
ResultCountByType(verdict-type-name)
返回具有特定结论类型 (passfailother) 的测试结果数。例如,如果您有两个结论类型为“未通过”的测试结论,则函数 ResultCountByType(fail) 会返回具有任一结论的测试结果数。此函数旨在与测试会话类型项搭配使用。
整数
ResultCount(Relationship-field, test-verdict-name)
返回相关测试会话类型项中具有特定结论的测试结果数。
整数
ResultCountByType(Relationship-field, verdict-type-name)
返回相关测试会话项中具有特定结论类型 (passfailother) 的测试结果数。
整数
LastResult()
返回当前项的最常用测试结果的内部 ID。此函数必须与 TestVerdictName 函数搭配使用,才能将内部 ID 转换为显示字符。例如,TestVerdictName(LastResult()).
整数
LastResultAnnotation()
返回当前项的最新测试结果的注释。可选择性地指定测试会话 ID 的列表。例如,LastResultAnnotation(sessionID1, sessionID2, sessionID3, ...) 会返回包含一个或多个会话 ID 的列表的最新测试结果的注释。
文本
LastResultSessionID()
返回当前项的最常用测试结果的会话 ID。可选择性地指定测试会话 ID 的列表。例如,LastResultSessionID(sessionID1, sessionID2, sessionID3, ...) 会返回包含一个或多个会话 ID 的列表的最新测试结果的内部 ID。
整数
LastResultDate()
返回修改当前项的最新测试结果的日期。可选择性地指定测试会话 ID 的列表。例如,LastResultDate(sessionID1, sessionID2, sessionID3, ...) 会返回包含一个或多个会话 ID 的列表的最新测试结果的日期。
日期
LastResultFreezeDate()
返回当前项的最新测试结果的冻结日期。可选择性地指定测试会话 ID 的列表。例如,LastResultFreezeDate(sessionID1, sessionID2, sessionID3, ...) 会返回包含一个或多个会话 ID 的列表的最新测试结果的冻结日期。
日期
* 
您可以合并 LastResult 测试管理计算,以方便用例。例如,您可以使用显示上次测试用例所在项目的字段来为测试用例添加注释。要完成此操作,您需要在测试用例上使用 GetFieldValue(LastResultSessionID(),"Project") 等表达式。
这对您有帮助吗?