2016-07-15 12 views
0

Ich versuche, Projekthierarchie auch zusammen mit Benutzerberechtigungen mithilfe des Skripts user_permissions_summary.rb unter https://github.com/RallyTools/Rally-User-Management abzurufen. Der Code unten in go_user_permissions_summary.rb hinzugefügt ProjectPath enthalten:Fehler beim Ziehen der Projekthierarchie von Rally (Agile Central)

def find_path(name,rally,workspaceRef) 
    puts "Finding Path... -> #{name}" 
    query = RallyAPI::RallyQuery.new() 
    query.workspace = {"_ref" => workspaceRef} 
    query.fetch = "Parent" 
    query.type = :project 
    query.query_string = "(Name = \"#{name}\")" 
    results = rally.find(query) 

    if results[0].Parent == nil 
    path = name 
    else 
    path = [ find_path(results[0].Parent,rally,workspaceRef), name ].join('/') 
    end 

    return path 
end 

Die ProjectPath Spalte zur Ausgabe unter Zeile hinzugefügt wird:

project_path = find_path(strip_role_from_permission(this_permission.Name),@rally,workspace_obj._ref) 

user_permissions_summary.rb für einige Zeit fein ausgeführt wird, dann schlägt mit unterem Fehler fehl:

Pfad finden ... -> Reise verbessern C: /Ruby22-x64/lib/ruby/gems/2.2.0/gems/ rally_api-1.2.1/lib/rally_api/rally_object.rb: 19: in initialize' C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rally_api-1.2.1/lib/rally_api/rally_query_result.rb:27:in neu ' C: /Ruby22-x64/lib/ruby/gems/2.2.0/gems/rally_api-1.2.1/lib/rally_api/ rally_query_result.rb: 27: in []' C:/Users/Administrator/Desktop/Rally-User-Management-master/Rally-User-Management-master/lib/go_user_permissions_summary_MODIFIED.rb:128:in find_path ' C: /Users/Administrator/Desktop/Rally-User-Management-master/Rally-User-Management-master/lib/go_user_permissions_summary_MODIFIED.rb: 261: in jedem block (2 levels) in go_user_permissions_summary' C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rally_api-1.2.1/lib/rally_api/rally_collection.rb:36:in' C : /Ruby22-x64/lib/ruby/gems/2.2.0/gems/rally_api-1.2.1/lib/rally_api/rally_collection.rb: 36: in each' C:/Users/Administrator/Desktop/Rally-User-Management-master/Rally-User-Management-master/lib/go_user_permissions_summary_MODIFIED.rb:219:in blockieren in go_user_permissions_summary ' C:/Ruby22-x64/lib/ruby/edelsteine ​​/ 2.2.0/edelsteine ​​/ rallye_api-1.2.1/lib/rally_api/rally_query_result.rb: 22: in block in each' C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rally_api-1.2.1/lib/rally_api/rally_query_result.rb:21:in jeweils ' C: /Ruby22-x64/lib/ruby/gems/2.2.0/gems/ rally_api-1.2.1/lib/rallye_api/rallye_query_result.rb: 21: in each' C:/Users/Administrator/Desktop/Rally-User-Management-master/Rally-User-Management-master/lib/go_user_permissions_summary_MODIFIED.rb:198:in go_user_permissions_summ ary ' C: /Users/Administrator/Desktop/Rally-User-Management-master/Rally-User-Management-master/user_permissions_summary.rb: 38: in <main>' undefined method []' für nil: NilClass

Irgendwelche Tipps zur Lösung dieses Problems?

Antwort

0

Ramaprakash,

Es ist wahrscheinlich ein Problem mit der Abfrage keine Ergebnisse zurück. Da für diesen Fall keine Fehlerüberprüfung stattfindet, schlägt der Fehler <main> ' undefined method []' for nil:NilClass fehl.

Einige weitere Fehlerprüfung oder Behandlung anderer Fälle wäre notwendig.

Etwas wie:

if results.length > 0 && results[0].Parent == nil 
    path = name 
elsif results.length > 0 
    path = [ find_path(results[0].Parent,rally,workspaceRef), name ].join('/') 
else 
    path = "Unknown" 
end 

helfen sollte.