2017-01-26 4 views
0

私はこのWIQLを持っていますが、その目的は作業項目に割り当てられたユーザを見つけることです。"System.AssignedTo"フィールドを含まないWIQLクエリ

var wiql = string.Format("SELECT [System.Id], [System.WorkItemType], [System.Title], [System.AssignedTo], [System.State]" + 
          " FROM WorkItems" + 
          " WHERE ([System.TeamProject] = '{0}')" + 
          " AND ([System.WorkItemType] = 'Task' OR [System.WorkItemType] = 'Bug')" + 
          " ORDER BY [System.Id]", projectName); 

私はそう...

Wiql wiql = new Wiql() { Query = wiqlQueryString }; 

    using (var workItemTrackingHttpClient = new WorkItemTrackingHttpClient(VstsAccess.AccessUri, VstsAccess.AccessCredentials)) 
    { 
    var workItemQueryResult = workItemTrackingHttpClient.QueryByWiqlAsync(wiql).Result; 

    if (workItemQueryResult != null && workItemQueryResult.WorkItemRelations.Any()) 
    { 
     List<int> sourceIdList = new List<int>(); 
     foreach (var item in workItemQueryResult.WorkItemRelations) 
     sourceIdList.Add(item.Target.Id); 

     int[] arr = sourceIdList.ToArray(); 
     string[] fields = { "System.Id", "System.WorkItemType", "System.AssignedTo", "System.Title", "System.Description", "System.State", "System.IterationPath", "System.TeamProject", "System.ChangedDate", "System.ChangedBy", "System.CreatedDate" }; 
     return workItemTrackingHttpClient.GetWorkItemsAsync(arr, fields, workItemQueryResult.AsOf).Result; 
    } 
    else 
     return new List<WorkItem>(); 
    } 

として、それを実行しています。しかし、「AssignedTo」と「説明」フィールドは、作業項目辞書フィールドセットに表示されません。なぜこれがそうであり、どうすればこの問題を解決できますか?

答えて

1

作業項目を照会するために以下のコードを使用することができ、 "AssignedTo"および "Description"フィールド値があります。

WorkItemStore workItemStore = teamProjectCollection.GetService<WorkItemStore>(); 
string queryString = string.Format("SELECT [System.Id], [System.WorkItemType], [System.Title], [System.AssignedTo], [System.State]" + 
          " FROM WorkItems" + 
          " WHERE ([System.TeamProject] = '{0}')" + 
          " AND ([System.WorkItemType] = 'Task' OR [System.WorkItemType] = 'Bug')" + 
          " ORDER BY [System.Id]", "Mtt-Scrum"); ; 

// Create and run the query. 
Query query = new Query(workItemStore, queryString); 
WorkItemCollection witCollection = query.RunQuery(); 

foreach (Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem workItem in witCollection) 
{ 
    ...... 
} 
+0

これはほとんどすべての点で機能しました。私はそれに電子メールを入れることを望んでいたのですか?どうすればいい?私は、表示名だけでなく、ケースが誰に割り当てられ、作成されたのかを正確に区別する固有の識別子が必要です。 – Jacob

関連する問題