1

既存のイニシアチブに機能を子として追加するにはどうすればよいですか? 機能の状態を更新するのと同じ方法だと思います。

Connection::rally()->update('feature', feature_objectId, array('state' => $stateId)); これは、イニシアチブに子 (機能) を追加 (子フィールドを更新) するためのコードを作成する方法です。

Connection::rally()->update('initiative', '13298601606', array('children' => '13298601665')); 最初のオブジェクト ID は機能を追加したいイニシアチブ用で、2 番目の ID はイニシアチブに子として追加される機能のものです。

なぜこれが機能しないのですか?誰かがこれを行う方法について考えを持っていますか?

4

1 に答える 1

1

WS API の Initiative オブジェクトの Children コレクションは読み取り専用です。

新しい機能を作成し、新しい機能の Parent フィールドを更新して既存のイニシアチブに追加する Ruby コードを次に示します。

require 'rally_api'


#Setup custom app information
headers = RallyAPI::CustomHttpHeader.new()
headers.name = "My Utility: add feature to initiative"
headers.vendor = "Nick M RallyLab"
headers.version = "1.0"

# Connection to Rally
config = {:base_url => "https://rally1.rallydev.com/slm"}
config[:username] = "user@co.com"
config[:password] = "secret"
config[:workspace] = "W1"
config[:project] = "P1"
config[:headers] = headers #from RallyAPI::CustomHttpHeader.new()

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

obj = {}
obj["Name"] = "new feature abc456"
new_f = @rally.create("portfolioitem/feature", obj)

query = RallyAPI::RallyQuery.new()
query.type = "portfolioitem/initiative"
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/2222" }
query.query_string = "(FormattedID = \"I1\")"

result = @rally.find(query)
initiative = result.first

field_updates={"Parent" => initiative}
new_f.update(field_updates)
于 2013-08-05T20:25:28.800 に答える