创建计算字段
计算字段允许您执行项内或项间计算,将结果存储为只读字段 (计算字段) 中的值。项内计算在包含计算字段的同一项内的一个或多个字段上进行,而项间计算在通过关系或查询聚合函数所引用的其他项的字段上进行。
定义计算表达式字段的参数主要有三个:
计算定义
存储到历史记录的频率
如何运行计算
计算定义
这是实际计算表达式。有关详细信息,请参阅计算表达式规则
存储到历史记录的频率
在此可指定您希望 PTC RV&S 将表达式结果存储到数据库中的频率。可用选项包括:
never:从不将结果存储到数据库。
daily:每天将计算结果存储到数据库。
weekly:每周将计算的结果存储到数据库。
monthly:每月将计算结果存储到数据库。
delta:每隔一段时间,将计算结果存储到数据库中。
* 
这些计算取决于各自触发器的执行,仅在“如何运行计算”的值为 static 时有效。
如何运行计算
此参数确定您想要如何运行计算。可用选项包括:
static 根据安排的时间计算字段,并根据在“存储至历史记录的频率”列表中选择的值,将其存储到项的历史记录中。静态字段的列存储在数据库项的行中:如果您的表达式涉及高强度的外部函数,例如查询函数或聚合函数,则您应选择静态。有关计算静态计算字段的详细信息,请参阅计算静态计算字段
dynamic 会在每次检索字段值时计算字段。默认情况下,动态字段的列不会存储在项的数据库行中;但是,您可以从“存储到历史记录的频率”列表中选择动态和频率,其中 never 是相应的选项。dynamic 为默认选项。
重要考虑事项
如果您使用用户无权查看的一个或多个字段创建表达式,则用户仅能查看他们有权查看的字段。
各计算字段按照它们在项中的出现顺序进行计算;但是,如果一个计算字段取决于另一个计算字段的值,则该字段的计算顺序会在包含该相关值的计算字段之后。视您数据库中的项数量及包含计算字段 (包含相关性) 的项数量而定,对计算字段的值进行计算可能需要很长时间。
使用im analytics --recomputehistory -g命令,您可以计算特定时间范围内的计算字段,并在项历史记录中存储值。此命令对建立历史记录趋势图表很有用;但是,它不允许您“更正”当前项数据的历史记录。有关详细信息,请参阅使用计算字段来计算状态指标
计算文本字段仅接受数字、短文本以及长文本字段。
您无法针对任何计算字段所支持的字段值属性建立可编辑性规则。
如果您创建动态计算字段,但是选择以后再将其转换为静态计算字段以改善性能,请参阅创建静态计算字段
示例:打开任务计数。
“打开任务计数”是整数字段,可用于显示属于项和所有子项的已打开任务(更改单、缺陷和测试目标)的数量。对于产品和产品组合,仅包括活动的项目。对于产品组合,包括所有项目。计算会假定“任务阶段”字段中仅包含类似任务的对象,如“更改单”和“缺陷”。
计算定义:
IsEmpty("Open Change Order Count for Project",0) +
IsEmpty("Open Defect Count",0) +
IsEmpty("Open Test Session Count",0)
存储到历史记录的频率:daily
如何运行计算:static
示例:新缺陷计数 - 优先级为关键
“新缺陷计数 - 优先级为关键”是标识关键优先级缺陷的整数字段。
计算定义:
IsEmpty(Query("administrator:New Defects - Priority Critical",Project,count()), 0)
存储到历史记录的频率:weekly
如何运行计算:static
示例:测试会话测试计数
“测试会话测试计数”是整数字段,可显示当前测试会话中由“测试”字段定义的测试用例。这是“冻结日期测试计数”字段使用的中期字段。
计算定义:
aggregate(Tests, byDocument(true,true),sum(isTestcase() and isMeaningful() ? 1 : 0))
存储到历史记录的频率:never
如何运行计算:dynamic
示例:按通过百分比验证
“按通过百分比验证”是整数字段,可确定最后结果为Passed 的“按跟踪计数验证”百分比。“需求测试范围”和“规格测试范围”报告使用此字段根据要求与规格显示测试状态。
计算定义:
"Validated By Trace Count" > 0 ? ( (isEmpty("Validated By Pass Count",0) + 0.001)
/ "Validated By Trace Count") : 0
存储到历史记录的频率:daily
如何运行计算:static
示例:以特定类型为基础的相关项计数
“相关测试类型总计”是整数字段,可对项的“前向关系”字段中的测试类型项的数量计数,并忽略所有其他项类型。这对于关系字段中针对特定项类型(“前向关系”字段中针对所有项类型的 PTC RV&S报告中包括的默认报告脚本)进行报告很有用。
计算定义:
IsEmpty(aggregate("Forward Relationships", sum((Type = "Test_Type") ? 1: 0)), 0)
存储到历史记录的频率:daily
如何运行计算:static
这对您有帮助吗?