2016-09-01 6 views
-1

TFSアクティビティに関連するレポートを作成するために、TFSデータベース(TFS_Warehouse、TFS_FabrikamFibreCollection)を作成しています。チーム名に基づいてレポートを生成する必要があります。 ProjectCollection プロジェクト我々はTFS_WarehouseデータベースにProjectCollectionsとプロジェクトをマップすることができますTFSのチーム名データを持つTFSデータベースのテーブルはどれですか?

が、彼らはDimTeamProjectである チーム: TFSは、プロジェクトのための 次の階層を維持しました。 しかし、チーム名をTFS_Warehouse/TFS_FabrikamFibreCollectionデータベースにマップすることはできません。 DBテーブルを使ったチーム名のマッピングについてご存じの方は、教えてください。

+0

※**はTFS運用店舗に対しては報告しないでください。報告のためにサポートされる唯一のオプションは 'Tfs_Warehouse'データベースとAnalysisキューブです。 –

+0

ええ、TFS_WareHouseからのみすべてのデータを取得しています。しかし、私はTFS_WareHouseでチーム名のデータポイントを見つけることができません。私がどこでそれを得ることができるかお勧めできますか? –

+0

同じ質問です。何かを見つけましたか? – russds

答えて

0

データベースを直接処理することは推奨しません。代わりにExcelレポートを作成することができます。通常、チームを作成するときは、チームの名前でエリアパスを作成します。

enter image description here

+1

また、[Tfs_Warehouse]。[dbo]。[DimArea]テーブルのエリアパスも確認できます。 –

+0

エリアパスとチーム名と別のデータポイント。チームは私の理解に従ってエリアパスを関連付ける以上のものを持つことができます。エリアパスでさえチーム名と異なる名前を持つことがあります。だから私はチームパスとしてエリアパスを使用することはできません –

0

私は離れSQLからの滞在をお勧めしたいとTFSのAPIを使用します。ですから、フィールドにエリアのパスを選択しようとすることができます。次の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 
0

これは私があなたの質問が見つかり最も近いソリューションです:何らかの理由

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_TempTeamProjectMapping]表は、デフォルトのセキュリティグループ(リーダー、協力者、プロジェクト管理者など)が、これらを含んでいます結果から簡単に除外することができます。

関連する問題