2009-02-16 2 views
4

Привет, мне интересно, есть ли у кого-нибудь опыт в обслуживании хранилища Team Foundation Server для извлечения текущей информации о рабочем элементе. Я понимаю, что требуемая информация хранится в базе данных TFSWarehouse.Непосредственный запрос TFS Warehouse с использованием T-sql

Я хорошо знаю, что есть API, которые предоставляют эту функциональность, и я сам использовал их. Однако это связано с требованием установить Team Explorer на любом клиентском ПК, который будет ссылаться на API.

Все, что я хочу, это список рабочих элементов с некоторыми выбранными полями, такими как Title, State и Created By.

Пробовал ли кто-нибудь это сам, и действительно ли кто-нибудь знает какие-либо подводные камни с этим подходом?

---------- EDIT 16/02

Просто добавить после разговора с TreeUK. Было бы здорово, если бы кто-нибудь, возможно, имел примерный запрос или, может быть, некоторое объяснение относительно структуры таблицы?

+0

вы говорите, что для того, чтобы потреблять веб-службы TFS вы должны иметь TeamExplorer установлен клиент в клиенте? Это связано с лицензированием? – muerte

+0

Привет, я не уверен на 100% независимо от того, использует ли API, предоставляемый для TFS, через веб-службы, это не имеет никакого отношения. Если вы устанавливаете приложение, которое ссылается на эти API на компьютере, на котором не установлен Team Explorer, приложение не работает. – MrEdmundo

ответ

4

Если у вас есть доступ к базе данных SQL, на которой размещена TFS, вы можете написать запрос, который извлекает эту информацию.

База данных, которую вы хотите посмотреть, это TFSWarehouse. Ниже приведен запрос, в котором содержится общая информация рабочего элемента.

select System_Id as WorkItemId, System_Title as Title, 
System_State as Status, System_Reason as Reason, 
System_WorkItemType as Type 
from [Work Item] 

Это ясно, что все они делают, проверьте этот стол, чтобы получить любые другие интересующие свойства.

Если вам что-то еще нужно, сообщите мне. В противном случае, пожалуйста, отметьте это как ответ :)

+0

Было бы здорово, это то, что я на самом деле, руководство, из каких таблиц мне нужно получить информацию. – MrEdmundo

+1

Большое спасибо. Интересно отметить, что Microsoft использует пространство в своих именах таблиц, я ненавижу это! – MrEdmundo

+2

Если это то, что вы хотели, вы должны выбрать этот ответ в качестве ответа. (Отметьте его слева.) –

1

TFS 2005, то нужно быть [workitemtracking] .dbo. [Workitemsare]

0
SELECT DISTINCT Top(100) FactWorkItemLinkHistory.WorkItemLinkTypeSK, DimWorkItemLinkType.LinkName, DimWorkItem.System_Id, DimWorkItem.System_Title 
FROM FactWorkItemLinkHistory 
    INNER JOIN DimWorkItemLinkType ON DimWorkItemLinkType.LinkID = FactWorkItemLinkHistory.WorkItemLinkTypeSK 
    INNER JOIN DimWorkItem ON DimWorkItem.System_Id = FactWorkItemLinkHistory.SourceWorkItemID 
WHERE FactWorkItemLinkHistory.WorkItemLinkTypeSK = 2 
0

TFS 2013, то нужно быть [Ваш Tfs_Warehouse база] .dbo.DimWorkItem

SELECT System_Id as WorkItemId, System_Title as Title, 
System_State as Status, System_Reason as Reason, 
System_WorkItemType as Type 
FROM dbo.DimWorkItem