TFS db中的哪个表包含TFS的团队名称数据?

TFS db中的哪个表包含TFS的团队名称数据?,tfs,Tfs,我们正在开发TFS数据库(TFS_仓库、TFS_FabrikamFibreCollection),以创建一些与TFS活动相关的报告。我们需要根据团队名称生成报告。 维持TFS 项目的以下层次结构: 项目集合 项目 团队 我们能够在TFS_仓库数据库中映射项目集合和项目,它们位于DimTeamProject中。 但是ee无法在TFS_Warehouse/TFS_FabrikamFibreCollection数据库中映射团队名称。 如果您对DB表的团队名称映射有任何想法,请告诉我。我们不建议直接处理

我们正在开发TFS数据库(TFS_仓库、TFS_FabrikamFibreCollection),以创建一些与TFS活动相关的报告。我们需要根据团队名称生成报告。 维持TFS 项目的以下层次结构: 项目集合 项目 团队

我们能够在TFS_仓库数据库中映射项目集合和项目,它们位于DimTeamProject中。 但是ee无法在TFS_Warehouse/TFS_FabrikamFibreCollection数据库中映射团队名称。
如果您对DB表的团队名称映射有任何想法,请告诉我。

我们不建议直接处理数据库。您可以改为创建Excel报告。通常,当我们创建一个团队时,我们将创建一个带有团队名称的区域路径。因此,您可以尝试在字段中选择区域路径:


我建议远离SQL,使用TFSAPI。下面的PowerShell调用TFS客户端命名空间并带回集合和项目

#region Get-TfsSummary 
function Get-TfsSummary{
param(
    [parameter(Position=0,HelpMessage='    Full server name. e.g. tfsServer.domain.net',Mandatory)]
    [string]
    $serverFQDN, # eg 'tfsServer.domain.net'

    [parameter(Position=1,HelpMessage='    port used to access the TFS server e.g. 8080')]
    [string]
    $serverPort, # eg '8080'

    [parameter(Position=2,HelpMessage='    The root virtual directory for TFS. Default is tfs e.g. tfs ')]
    [string]
    $tfsRootNode # eg 'tfs'
)
Add-Type -AssemblyName "Microsoft.TeamFoundation.Client, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
$tfsUri = 'http://' + $serverFQDN + ':' + $serverPort +'/' + $tfsRootNode + '/'
$tfsConfigurationServer = [Microsoft.TeamFoundation.Client.TfsConfigurationServerFactory]::GetConfigurationServer($tfsUri)
$tpcService = $tfsConfigurationServer.GetService("Microsoft.TeamFoundation.Framework.Client.ITeamProjectCollectionService")
$sortedCollections = $tpcService.GetCollections() | Sort-Object -Property Name
$numberOfProjects = 0
$numberOfStoppedCollections = 0
$numberOfStartedProjects = 0
$numberOfStoppedProjects = 0
$isStopped = ''

foreach($collection in $sortedCollections) {
  $collectionUri = $tfsUri + "/" + $collection.Name
  $tfsTeamProject = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($collectionUri)

  try {
    $cssService = $tfsTeamProject.GetService("Microsoft.TeamFoundation.Server.ICommonStructureService4")

  }catch{}
    $sortedProjects = $cssService.ListProjects() | Sort-Object -Property Name

  if($collection.State -eq 'Stopped'){
    $isStopped = ' but is stopped'
    $numberOfStoppedCollections++
    $numberOfStoppedProjects += $sortedProjects.Count
  }


  Write-Host "`n" $collection.Name "(" $collection.Id ")- contains" $sortedProjects.Count "project(s)$isStopped"
  $isStopped = ''

  foreach($project in $sortedProjects)
  {
    $numberOfProjects++
    Write-Host (" - " + $project.Name + " (" + $project.Uri +  ")")
  }

}

$numberOfStartedProjects =  $numberOfProjects - $numberOfStoppedProjects
Write-Host
Write-Host "Number of stopped collections          " $numberOfStoppedCollections
Write-Host "Total number of project collections    " $sortedCollections.Count
Write-Host "Online projects                        " $numberOfStartedProjects
Write-Host "Total number of projects               " $numberOfProjects
}
#endregion Get-TfsSummary

这是我为您的问题找到的最接近的解决方案:

SELECT map.[TeamId]
      ,map.[ProjectId]
      ,proj.[ProjectNodeName] AS [Team Project Name]
      ,ado.[SamAccountName] AS [Team Name]
  FROM [Tfs_FabrikamFibreCollection].[dbo].[tbl_TempTeamProjectMapping] map
  JOIN [Tfs_Warehouse].[dbo].[DimTeamProject] proj ON map.[ProjectId] = proj.[ProjectNodeGUID]
  JOIN [Tfs_FabrikamFibreCollection].[dbo].[ADObjects] ado ON map.[TeamId] = ado.[TeamFoundationId]

出于某种原因,
[tbl\u testeamprojectmapping]
表包含默认的安全组(读卡器、参与者、项目管理员等),但这些安全组可以很容易地从结果中筛选出来。

您不应该针对TFS操作存储进行报告。唯一受支持的报告选项是
Tfs\u仓库
数据库和分析多维数据集。是的,我只从Tfs\u仓库检索所有数据。但我无法在TFS_仓库中找到团队名称数据点。你能告诉我从哪里可以得到这个吗?同样的问题,你找到什么了吗?没有,我使用TFS Web API来查找团队名称。此外,你可以检查表[TFS_Warehouse].[dbo].[DimArea]中的区域路径。区域路径和团队名称以及单独的数据点。根据我的理解,一个团队可以有多个关联区域路径。甚至区域路径的名称也可能与团队名称不同。所以我不能使用区域路径作为团队名称