首页 > 代码库 > 自定义过程模版之自定义查询
自定义过程模版之自定义查询
我使用的是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>标签)。