2017-11-28 4 views
0

Ich möchte abfragen, wenn der Fehlerstatus für Berichtszwecke auf "Aktiv" geändert wurde und das erforderliche Ergebnis durch Lesen von Visual Studio-Dokumenten erfolgreich abgerufen wurde.Effiziente Möglichkeit zum Abfragen von Arbeitsaufgabenaktualisierungen über die REST-API von Visual Studio Team Service

  1. Erhalten Sie alle Work-Item-IDs Ich bin interessiert über Work item query language. Es gibt eine Menge, wenn ich Daten für ein Jahr abfrage.
  2. Verwenden Sie eine for-Schleife, um updates API für jede ID aufzurufen.
  3. Analysieren Updates API-Ergebnis zu finden System.State Feld.

Das Problem ist, dass Schritt 2 ist auch langsam weil Updates API akzeptiert nur eine ID jeder Anfrage. Gibt es eine Möglichkeit, Updates für Arbeitsaufgaben im Stapel zu erhalten? Es ist auch besser, wenn wir Felder in Updates API begrenzen Schritt zu erleichtern 3.

Antwort

0

es vor allem von Schritt 1 verursacht wird die Workitems nicht nur im aktuellen Projekt gibt, sondern auch in anderen Projekten.

Sie können unter REST-API für Schritt 1 verwenden:

POST https://account.visualstudio.com/DefaultCollection/_apis/wit/wiql?api-version=1.0 

Content-Type: application/json

{ 
    "query": 
    "Select [System.Id], [System.WorkItemType], [System.Title], [System.AssignedTo], [System.State] 
    From WorkItems 
    Where [System.WorkItemType] = 'Bug' AND [State] = 'Active'" 
} 

Dann wird es die Bugs zurück, den Zustand von all Team-Projekten aktiv ist.

Sie müssen nur eine Bedingung das aktuelle Teamprojekt hinzufügen angeben, in denen Klausel:

  • Wenn das Team Projekt WIT nur eine Fläche hat (keine Kinder Areas) und der Name ist

    POST https://account.visualstudio.com/DefaultCollection/_apis/wit/wiql?api-version=1.0 
    

    Content-Type: application/json

    gleiche wie Teamprojektname, können Sie die REST-API verwenden als
    { 
        "query": 
        "Select [System.Id], [System.WorkItemType], [System.Title], [System.AssignedTo], [System.State] 
        From WorkItems 
        Where [System.WorkItemType] = 'Bug' AND [State] = 'Active' AND [System.AreaPath] = 'projectname'" 
    

    }

  • Wenn das Team Projekt WIT mehrere Bereiche hat (wie die Bereiche sind: projectname, projectname\child1, projectname\child2), können Sie unter REST-API verwenden können:

    POST https://account.visualstudio.com/DefaultCollection/_apis/wit/wiql?api-version=1.0 
    

    Content-Type: application/json

    { 
        "query": 
        "Select [System.Id], [System.WorkItemType], [System.Title], [System.AssignedTo], [System.State] 
        From WorkItems 
        Where [System.WorkItemType] = 'Bug' AND [State] = 'Active' AND [System.AreaPath] IN ('projectname', 'projectname\\child1', 'projectname\\child2)" 
    } 
    

Dann wird der Schritt2 schneller und effizienter.

+0

Danke für die Antwort, aber große Bugs Nummer wird erwartet, da ich ein Jahr Daten abfrage. Es hängt nicht mit dem Projekt- oder Bereichspfad zusammen, da ich das Ergebnis manuell im Abfrageeditor auf der VSTS-Website überprüft habe. – qxg

+0

Wenn Sie die erste Anwendung/Json-Beispiel wie ich aufgeführt verwenden.Es enthält Arbeitsaufgaben in anderen Projekten. Und wenn Sie alle zurückWorkItems aus einem bestimmten Projekt bestätigt haben, verursacht der Grund für Schritt 2 zu langsam Mai die große Zahl der Arbeitselemente. –

Verwandte Themen