2013-07-18 37 views

回答

0

它可以查询国家,创建哈希完全合格的路径,并使用查询结果填充散列,其中State Name是关键字,State _ref是该值:

state_results.each do |s| 
    s.read 
    state_hash[s["Name"]] = s["_ref"] 
end 

然后,我们可以更新状态:

features.each do |f| 
    field_updates={"State" => state_hash["Developing"]} 
    f.update(field_updates) 
end 

这里是一个代码示例:

@rally = RallyAPI::RallyRestJson.new(config) 

queryState = RallyAPI::RallyQuery.new() 
queryState.type = :state 
queryState.fetch = "true" 
queryState.workspace = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/workspace/11111" } 
queryState.project = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/project/22222" } #use valid OIDs 
queryState.query_string = "(TypeDef.Name = \"Feature\")" 

state_hash = Hash.new 

state_results = @rally.find(queryState) 

state_results.each do |s| 
    s.read 
    #puts "Ref: #{s["_ref"]}, Name: #{s["Name"] }, TypeDef: #{s["TypeDef"]}" 
    state_hash[s["Name"]] = s["_ref"] 
end 

query = RallyAPI::RallyQuery.new() 
query.type = "portfolioitem/feature" 
query.fetch = "Name,FormattedID" 
query.workspace = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/workspace/1111" } 
query.project = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/project/22222" } #use valid OIDs 
query.query_string = "(Name = \"my feature\")" 


results = @rally.find(query) 
features = []; 

results.each do |f| 
    f.read 
    puts "Current state of Feature #{f["FormattedID"]}: #{f["State"].to_s}" 
    features << f 
end 


features.each do |f| 
    field_updates={"State" => state_hash["Developing"]} 
    f.update(field_updates) 
    puts "Feature #{f["FormattedID"]} is now in State: #{f["State"].to_s}" 
end 
相关问题