2017-01-06 14 views
0

Я пытаюсь создать отчет в Tableau, чтобы создать древовидную структуру всех рабочих элементов в TFS 2015 и их соответствующую иерархию Такие, какПолучить TFS 2015 рабочего элемента иерархии в SQL Server

Epic-> Features-> User Story-> Task

Но повторные попытки создать запрос sql потерпели неудачу. Не могли бы вы помочь мне с SQL-запросом, который поможет получить все рабочие элементы и отобразить их иерархию?

Спасибо.

+1

Вы должны быть более конкретными. Покажите, какую работу у вас сейчас или какие попытки вы попробовали. Вы, скорее всего, получите ответ таким образом. – yardpenalty

+0

Откуда вы их запрашиваете? 'Tfs_warehouse'? – jessehouwing

+0

Да, я пробовал из TFS_Warehouse и смог связать связь с эпической ссылкой на функцию, но ее неполную, так как я хотел, чтобы полная развертка от Epic to Task, но мне этого не удалось. SQL-запрос я сделал это: SELECT отчетливый DWI.System_Id, DWI.System_Title , FWILH.TargetWorkItemID, WorkItemLinkTypeSK ОТ DimWorkItem ДВИ INNER JOIN FactWorkItemLinkHistory FWILH ПО DWI.System_Id = FWILH.SourceWorkItemID ГДЕ FWILH.WorkItemLinkTypeSK В (ВЫБРАТЬ DWILT. WorkItemLinkTypeSK FROM DimWorkItemLinkType DWILT WHERE DWILT.LinkID = 2) AND FWILH.RemovedDate = '9999-01-01 00: 00: 00.000' –

ответ

0

Итак, я нашел этот запрос, который работает и может помочь вам создать таблицы учебное пособие для иерархия:

WITH cte 
      AS (SELECT DimTeamProject.ProjectNodeName , 
         System_WorkItemType , 
         DimWorkItem.System_Id , 
         FactWorkItemLinkHistory.TargetWorkItemID , 
         DimWorkItem.System_Title, 
         DimWorkItem.System_State, 
         DimWorkItem.Microsoft_VSTS_Common_ActivatedDate, 
         DimWorkItem.Microsoft_VSTS_Scheduling_TargetDate, 
         DimWorkItem.System_CreatedDate, 
         DimWorkItemLinkType.LinkName, 
         TeamProjectSK, 
         system_rev, 
         row_number() over(partition by system_id,TeamProjectSK, FactWorkItemLinkHistory.TargetWorkItemID order by system_rev desc) rownum 
       FROM  DimWorkItem , 
         DimTeamProject , 
         FactWorkItemLinkHistory, 
         DimWorkItemLinkType 
       WHERE DimWorkItem.TeamProjectSK = DimTeamProject.ProjectNodeSK 
         AND DimWorkItem.System_Id = FactWorkItemLinkHistory.SourceWorkItemID 
         and DimWorkItemLinkType.WorkItemLinkTypeSK = FactWorkItemLinkHistory.WorkItemLinkTypeSK 
         /* -To Test the Query using the project Name of our choice- */ 
         --AND ProjectNodeName = 
         AND System_State in ('ACTIVE','NEW') 
         /* -System Revisions are created when the entry is modified. Onlt the latest entry will have the below revised date- */ 
         AND System_RevisedDate = '9999-01-01 00:00:00.000' 
         AND DimWorkItemLinkType.Linkname IN ('Parent', 
                'child') 
       GROUP BY DimTeamProject.ProjectNodeName , 
         DimWorkItem.System_Id , 
         FactWorkItemLinkHistory.TargetWorkItemID , 
         DimWorkItem.System_Title , 
         System_WorkItemType, 
         DimWorkItem.System_State, 
         TeamProjectSK, 
         DimWorkItemLinkType.LINKName, 
         DimWorkItem.Microsoft_VSTS_Common_ActivatedDate, 
         DimWorkItem.Microsoft_VSTS_Scheduling_TargetDate, 
         DimWorkItem.System_CreatedDate, 
         system_rev 
      ) 
    SELECT distinct t1.ProjectNodeName , 
      t1.System_Id requirement_Id , 
      t1.System_WorkItemType, 
      t1.System_Title requirement_title , 
      t2.System_Id Change_request_id , 
      t1.LinkName, 
      t2.System_Title Change_Request_Title, 
      t1.Microsoft_VSTS_Common_ActivatedDate, 
      t1.System_CreatedDate, 
      t1.Microsoft_VSTS_Scheduling_TargetDate, 
      t1.System_State, 
      T1.rownum 
    FROM cte t1 
      INNER JOIN cte t2 ON t1.TargetWorkItemID = t2.System_Id 
            and t1.rownum = 1 

    ORDER BY t1.System_Id; 

Используется КТР найти получить полную иерархию, ее быстрее и эффективнее, чем запрос, размещенный ранее.

1

Вместо использования SQL-запрос, он предложил использовать TFS REST API to create a query в TFS, то WIQL выглядит следующим образом:

"wiql": "select [System.Id], [System.WorkItemType], [System.Title], [System.AssignedTo], [System.State], [System.Tags] from WorkItemLinks where (Source.[System.TeamProject] = 'xxx' and Source.[System.WorkItemType] <> '' and Source.[System.State] <> '') and ([System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward') and (Target.[System.WorkItemType] <> '') order by [System.Id] mode (Recursive)" 
+0

Я хотел, но мне нужно создать панель мониторинга в Tableau, которая требует от меня использовать SQL Query и Im не уверены, что мы могли бы использовать API непосредственно в Tableau –