2016-06-17 3 views
0

수정 버전 필드가있는 WorkItem 저장소를 쿼리하여 WorkItem 컬렉션을 얻는 방법. 나수정 항목 별 TFS 작업 항목을 쿼리하는 방법

을 @ 작업 항목 수집 그들의 개정 changedby =를 얻을 수있는 방법이 있나요

WorkItemCollection WIC = WIS.Query(
       " SELECT * " + 
       " FROM WorkItems " + 
       " WHERE [System.TeamProject]='project1' AND [Work Item Type]='Bug' AND [System.Revision.ChangedBy][email protected] ORDER BY [System.WorkItemType], [System.Id]"); 

나는 그런 작업 항목 수집이 필요하지만, 오류가

[System.Revision.ChangedBy]에서 생성 하나의 작업 항목의 개정에 날에 의해 변경 적어도 하나 개의 기록을 가지고있는 경우

ie-는, 나는 여러 가지 방법으로 시도했지만 아직 해결책을 찾을 수 없습니다

내 작업 항목 수집에 필요합니다.

모든 작업 항목을 가져 와서 각 작업 항목의 수정 값을 찾으려고 시도했지만 실행하는 데 많은 시간이 걸립니다. 내가 된 workItem 수집을 받고 때를 필터링해야하는 이유는, 당신이 WIQL 스크립트에서 "System.Revision.ChangedBy"를 사용할 수 없습니다

감사

답변

0

아니,있다. 또한 API에서 "@me"매크로를 사용할 수 없으며 TFS 웹 포털이나 팀 탐색기에서만 사용할 수 있습니다.

원하는 기능을 구현하는 방법은 WIQL에서 작업 항목을 먼저 가져온 다음 모든 항목의 수정본을 확인하십시오. 참조 용 코드 :

 string tfsurl = "http://xxxxxxxxxx/"; 
     TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(tfsurl)); 
     WorkItemStore wis = ttpc.GetService<WorkItemStore>(); 
     WorkItemCollection wic = wis.Query(" SELECT * " + " FROM WorkItems " + "WHERE [System.TeamProject]='GitBuildRelease' AND [Work Item Type]='Bug'"); 
     List<WorkItem> wies = new List<WorkItem> { }; 
     foreach (WorkItem wi in wic) 
     { 
      foreach (Revision rev in wi.Revisions) 
      { 
       if (rev.Fields["Changed By"].Value.ToString() == "yourdisplayname") 
       { 
        wies.Add(rev.WorkItem); 
        break; 
       } 
      } 
     } 
+0

그게 내가 개발 한 것, 문제는 작업이 너무 많을 때 문제가된다. 어쨌든 thnks –

관련 문제