我使用的是CMMI的模版,下面把MSF for CMMI Process Improvement v5.0简称为CMMI,
查询的定义位于CMMI\WorkItem Tracking\Queries目录下,里面全是wiq格式的查询sql。
查询的引用是CMMI\WorkItem
Tracking\WorkItems.xml文件,里面的 <QUERIES> </QUERIES>标签中定义了查询的访问权限、查询文件夹及文件夹下有那些查询。
下面先讲一下wiq文件
(1)简单列表查询
<?xml version="1.0"
encoding="utf-8"?>
<WorkItemQuery Version="1">
<Wiql>
SELECT [System.Id], [System.IterationId],
[System.State], [Microsoft.VSTS.Common.Priority], [System.Title]
FROM WorkItems
WHERE
[System.TeamProject] =
@project
AND [System.WorkItemType] =
‘要求‘
AND
(
[Microsoft.VSTS.CMMI.RequirementType] = ‘功能性的‘ OR
[Microsoft.VSTS.CMMI.RequirementType] = ‘操作性的‘
)
AND [System.AssignTo] = @me
AND [System.State] <>
‘已关闭‘ ---<>不等于
ORDER BY
[System.Id]
</Wiql>
</WorkItemQuery>
(2)工作项和直接链接
<?xml version="1.0" encoding="utf-8"?>
<WorkItemQuery Version="1">
<Wiql>
SELECT [System.Id], [System.Links.LinkType], [System.WorkItemType],
[System.Title], [System.AssignedTo], [System.State]
FROM WorkItemLinks
WHERE ([Source].[System.TeamProject] = @project
AND [Source].[System.WorkItemType] =
‘要求‘) ---注意,源
AND ([System.Links.LinkType] IN
(‘Microsoft.VSTS.Common.Affects-Reverse‘,‘Microsoft.VSTS.Common.Affects-Forward‘))
AND ([Target].[System.WorkItemType] = ‘更改请求‘
AND [Target].[System.State]
<> ‘已关闭‘) ---注意,目标
ORDER BY [System.Id] mode(MustContain)
</Wiql>
</WorkItemQuery>
注:对于链接类型,我也不是很明白,只能比着葫芦画瓢,不会的可以去MSDN上查询,MSDN是个好东西,o(∩_∩)o
哈哈
下面讲一下WorkItems.xml文件里面牵扯到查询的部分:
<QUERIES>
<Permission />-----一系列的权限控制
....
....
<Permission />
<QueryFolder
name="开发和测试">---查询文件夹
<Query name="活动 Bug"
fileName="WorkItem Tracking\Queries\ActiveBugs.wiq"/>
<Query name="开发任务"
fileName="WorkItem Tracking\Queries\DevelopmentTasks.wiq"/>
<Query name="***"
fileName="WorkItem Tracking\Queries\****.wiq"/> ---一系列的查询引用
...
</QueryFolder>
<QueryFolder name="@@@"> -----一系列的查询文件夹
</QueryFolder>
...
...
</QUERIES>
对于WorkItems.xml我们需要关注的是<QueryFolder></QueryFolder>这个标签(包括里面的<Query>标签)。