2017-03-02 24 views
1

想知道什麼是拉力賽節點或RallyRestToolkitFor.NET代碼等同於以下查詢。 Rally門戶返回200+,但在rally-node和RallyRestToolkitFor.NET中實現此代碼時,我得到的結果要少得多。由於下面的拉力賽查詢的等效代碼

(((((((((((((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) 
    } 
}); 

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); 

回答

2

我的猜測是項目範圍界定。它看起來並不像是提供任何項目範圍信息,所以查詢可能只是默認爲您的默認項目範圍(可能不是您想要的)。

如果你設置一個項目+範圍向上/向下,你會得到你期望的結果嗎?

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

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

再次感謝凱爾! 由於我沒有指定任何項目,這意味着此節點模塊默認爲任意項目? 另外我怎樣才能使它成爲動態的,我不必提供一個字面項目編號/項目/ 12345。 我想要所有項目的所有缺陷 – Buju

+1

默認的項目邏輯是在wsapi中實現的,所以被所有工具包共享。如果您想要所有項目,只需在沒有項目的範圍對象中設置工作區:/ workspace/12345即可。 –

+0

不錯,每次使用工作區時都會看起來更好。但似乎我仍然錯過了一些東西,並非所有的缺陷都進來了。request.Project =「Buju」工作嗎?也許我需要獲得工作空間 - >項目 - >缺陷。感謝您幫助 – Buju