2016-07-15 4 views
0

のuser_permissions_summary.rbスクリプトを使用して、プロジェクトの階層をユーザー権限と共にプルしようとしていますか。 以下のコードは、ProjectPathを含むことgo_user_permissions_summary.rbで添加する: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 

ProjectPath列が行の下に使用して出力に加算される:

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

user_permissions_summary.rbがしばらく正常に動作します、以下のエラーで失敗します:

パスの検索 - >改善の旅 C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/ rally_api-1.2.1/lib/rally_api/rally_object.rb:19: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新しい ' C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rally_api-1.2.1/lib/rally_api/ rally_query_result.rb:27:[]' 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: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:each' C:/Users/Administrator/Desktop/Rally-User-Management-master/Rally-User-Management-master/lib/go_user_permissions_summary_MODIFIED.rb:219:inブロックin go_user_permissions_summary ' C:/ Ruby22-x64/lib/ruby/gems/2.2.0/gems/rally_api-1.2.1/lib/rally_api/rally_query_result.rb:22: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それぞれ ' C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/ rally_api-1.2.1/lib/rally_api/rally_query_result.rb:21: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進 ' C:/Users/Administrator/Desktop/Rally-User-Management-master/Rally-User-Management-master/user_permissions_summary.rb:38:<main>' undefined method []に' ゼロの場合:NilClass

任意のヒントこれを解決するには?

答えて

0

Ramaprakash、

おそらく結果が返されないクエリに問題があります。この場合はエラーチェックが行われないため、<main> ' undefined method []' for nil:NilClassエラーで失敗します。

さらにエラーチェックや他のケースの処理が必要になることがあります。

ような何か

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 

が役立つはずです。

関連する問題