首页 > 代码库 > 自定义过程模版之自定义查询

自定义过程模版之自定义查询

 

我使用的是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] &lt;&gt; ‘已关闭‘  ---<>不等于

      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] &lt;&gt; ‘已关闭‘)     ---注意,目标

     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>标签)。