2013-11-28 83 views
1

誰能PLZ能夠解釋爲什麼下面的代碼不會更改任務狀態有些輕,即使一個成功的消息調用返回:如何更新任務狀態

public bool markTaskCompleted(String id) 
{ 
     try 
     { 
      sObject UpdateTask = new sObject(); 
      UpdateTask.type = "Task"; 

      UpdateTask.Id = id; 

      System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); 
      XmlElement afield = doc.CreateElement("Status"); 
      XmlText txtNode = doc.CreateTextNode("Completed"); 
      afield.AppendChild(txtNode); 

      SaveResult[] saveResults = binding.update(new sObject[] { UpdateTask }); 

      if (saveResults[0].success) 
       return true; 
      else 
      { 
       for (int i = 0; i < saveResults[0].errors.Length; i++) 
       { 
        Error err = saveResults[0].errors[i]; 
        System.Windows.Forms.MessageBox.Show("Errors were found on item 0" + Environment.NewLine + 
                  "Error code: " + err.statusCode.ToString() + Environment.NewLine + 
                  "Error message: " + err.message); 
       } 

       return false; 
      } 
     } 
     catch (System.Web.Services.Protocols.SoapException e) 
     { 
      System.Windows.Forms.MessageBox.Show("An unexpected error has occurred: " + e.Message + " Stack trace: " + e.StackTrace); 
      return false; 
     } 
} 
+0

對不起,在哪裏更改任務狀態以及爲什麼saveresult數組?也許你正在檢查成功的錯誤要素? – Sico

+0

@Sico:你是什麼意思?狀態是我在上面的代碼中更新的唯一東西(將其設置爲Completed),並且saveResults是SalesForce API函數返回的數組,這是編譯時錯誤。 – dotNET

+0

對不起,沒有意識到它是SalesForce特定的代碼。很高興你找到你的答案 – Sico

回答

0

找到它自己。我是缺少以下臨界線:

UpdateTask.Any = new System.Xml.XmlElement[] { afield }; 

此行應立即afield.AppendChild(txtNode);線後加入。現在它正在更新狀態。