2011-11-11 47 views
3

所以我试图更新一个任务,并更改它属于的用户故事。这就是我想..如何使用Rally API更新任务(更改用户故事)?

var toUpdate = new DynamicJsonObject(); 

// the new User Story 
toUpdate["WorkProduct"] = "/hierarchicalrequirement/4567890123"; 

// the ObjectID of the Task 
long oid = 45678912445; 

OperationResult result = _restApi.Update("task", oid, toUpdate); 

但收到此错误:System.Collections.Generic.List'1[System.String]

+0

我汇集一个小例子来重现你正在做的事情,它工作得很好。你有错误的完整堆栈跟踪?您使用的是Rally REST API的哪个版本? (最新版本是1.04) –

+0

嘿凯尔,那个错误是来自result.Error的OperationResult,所以不知道如何获得更多的信息 – robnardo

+0

它一定是一些字符串错误,我忽略了。它正在工作。感谢您的检查! – robnardo

回答

0

这是我得到了之前由凯尔莫尔斯报告的任何bug修复工作..

public string ProxyUpdateTask(Task myTask, string strWorkProduct) 
    { 

     var message = @"<span style=""color:green;"">SUCCESS</span>"; 
     const string errPrefix = @"<span style=""color:red;"">ERROR</span>"; 

     var toUpdate = new DynamicJsonObject(); 

     long oid; 
     Int64.TryParse(myTask.ObjectId, out oid); 

     toUpdate["WorkProduct"] = String.Format("/hierarchicalrequirement/{0}", myTask.UserStoryId); 


     try 
     { 
      var result = _restApi.Update("task", oid, toUpdate); 
      if (!result.Success) 
       message = String.Format(@" {2} updating (ObjectID={0}) failed. {1}", myTask.ObjectId, result.Errors, errPrefix); 
     } 
     catch (WebException ex) 
     { 
      message = String.Format(" {0} - {1}", errPrefix, ex.Message); 
     } 
     catch (Exception ex) 
     { 
      message = String.Format(" {0} - {1}", errPrefix, ex.Message); 
     } 

     return message; 

    } 
相关问题