更新 Sharepoint 任务项的 ExtendedProperties 或 Approval Comments
Posted
技术标签:
【中文标题】更新 Sharepoint 任务项的 ExtendedProperties 或 Approval Comments【英文标题】:Update an ExtendedProperties or Approval Comments of Sharepoint task item 【发布时间】:2020-03-16 15:43:07 【问题描述】:我正在尝试使用 CSOM 以编程方式更新 SharePoint 任务。我能够成功批准任务,但不确定如何更新 cmets。
可以使用ExtendedProperties
作为 HashTable 检索 cmets,但我无法设置相同的值。如何更新审批 cmets?
以下是批准任务的代码:
using (ClientContext ctx = new ClientContext("http://abc/sites/TLS/low"))
Web web = ctx.Web;
List oList = web.Lists.GetByTitle("Tasks");
ListItem listitem = oList.GetItemById(784);
ctx.Load(listitem);
ctx.ExecuteQuery();
Hashtable ht = GetExtendedPropertiesAsHashtable(listitem);
listitem["Completed"] = true;
listitem["PercentComplete"] = 1;
listitem["Status"] = "Approved";
listitem["WorkflowOutcome"] = "Approved";
listitem["FormData"] = "Completed";
//listitem["__ModerationComments"] = "Sdfs";
//listitem["ows_FieldName_Comments"] = "Sdfs";
//ht["ows_FieldName_Comments"] = "sdsds";
listitem.Update();
ctx.ExecuteQuery();
下面是获取任务项ExtendedProperties
的代码:
public static Hashtable GetExtendedPropertiesAsHashtable(ListItem task)
if (task == null)
throw new ArgumentNullException();
Hashtable properties = new Hashtable();
string extProperties = (string)task["ExtendedProperties"];
if (!string.IsNullOrEmpty(extProperties))
var reader = new XmlTextReader(new StringReader("<Root " + extProperties + " />"))
WhitespaceHandling = WhitespaceHandling.Significant
;
reader.MoveToContent();
if (!reader.HasAttributes)
return properties;
while (reader.MoveToNextAttribute())
string propName = reader.Name.Substring(4);
properties[propName] = reader.Value;
return properties;
【问题讨论】:
【参考方案1】:你可以试试这个来更新审批 cmets:
listitem["ExtendedProperties"] = "ows_FieldName_Comments='comment' ";
【讨论】:
以上是关于更新 Sharepoint 任务项的 ExtendedProperties 或 Approval Comments的主要内容,如果未能解决你的问题,请参考以下文章
无法通过 Microsoft Graph 更新 SharePoint 中的超链接或图片