2017-03-02 2 views
1

Fragen, was wäre der Rally-Knoten oder RallyRestToolkitFor.NET-Code für die folgende Abfrage äquivalent. Rallyeportal gibt 200+ zurück, aber wenn ich diesen Code in Rally-Node und RallyRestToolkitFor.NET implementiere, bekomme ich weit weniger Ergebnisse. DankEntsprechender Code für die folgende Rally-Abfrage

(((((((((((((ClosedDate >= 2016-12-22)) OR (State != Closed)) AND 
(FunctionalArea != Documentation)) AND (FunctionalArea != Testing)) AND 
(FunctionalArea != Performance)) AND (FunctionalArea != "QW")) AND 
(FunctionalArea != "QLR")) AND (FunctionalArea != "TSD")) AND (FunctionalArea != 
"TUL")) AND (FunctionalArea != "D")) AND (Tags.Name != "NCI")) AND (CreationDate 
<= 2016-12-21)) 

restApi.query({ 
    type: 'defect', 
    limit: Infinity, //the maximum number of results to return- enables auto paging 
    fetch: ['FormattedID', 'Name', 'ScheduleState', 'PlanEstimate', 'Iteration', "Tasks", "Release", 'CreationDate', 'ClosedDate', "Project", "Owner"], 
    query: query, 
}, function(error, result) { 
    if(error) { 
     console.log(error); 
    } else { 
     //console.log(result.Results); 
     //console.log(js2xmlparser.parse("Defects", result.Results)); 
     var file = 'rally.json' 
     jsonfile.writeFileSync(file, result.Results) 
    } 
}); 

oder

Request request = new Request("Defect"); 
string queryString = "big_blob_of_query"; 
request.Query = new Query(queryString); 
request.Fetch = new List<string>() { "Name", "Description", "FormattedID", "CreationDate", "ClosedDate", "Project"}; 

QueryResult queryResult = restApi.Query(request); 

Antwort

2

Meine Vermutung ist, Scoping. Es sieht nicht so aus, als ob Sie Informationen zum Projekt-Scoping bereitstellen, daher passt die Abfrage wahrscheinlich nur auf Ihren Standard-Projektbereich (wahrscheinlich nicht das, was Sie wollen).

Wenn Sie ein Projekt + Bereich auf/ab stellen, erhalten Sie die Ergebnisse, die Sie erwarten würden?

restApi.query({ 
    scope: { 
     project: '/project/12345', 
     down: true 
    } 
}); 

oder

request.setProject("/project/12345"); 
request.setProjectScopeDown(true); 
+0

Nochmals vielen Dank Kyle! Da ich keine Projekte spezifiziere, bedeutet dies, dass dieses Knotenmodul irgendwie auf ein beliebiges Projekt voreingestellt ist? Auch wie kann ich es so machen, dass es dynamisch ist und ich keine wörtliche Projektnummer/Projekt/12345 bereitstellen muss. Ich möchte alle Fehler für alle Projekte – Buju

+1

Die Standard-Projekt Logik ist in Wsapi implementiert und wird so von allen Toolkits geteilt. Wenn Sie alle Projekte haben möchten, können Sie den Arbeitsbereich:/workspace/12345 im Scope-Objekt ohne Projekt setzen. –

+0

Schön, jedes Mal besser, wenn Sie Arbeitsbereiche verwenden. Aber es scheint immer noch, dass ich etwas vermisse, nicht alle Mängel kommen herein. Funktioniert das request.Project = "Buju"? Vielleicht muss ich Arbeitsbereich -> Projekte -> Fehler. Danke, dass du geholfen hast. – Buju