更新 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的主要内容,如果未能解决你的问题,请参考以下文章

更新多个 SharePoint 列表项

无法通过 Microsoft Graph 更新 SharePoint 中的超链接或图片

使用 Python3 更新 Sharepoint 2013

SharePoint 2013 - 在品牌页面中显示列表项的详细信息,而不是默认的 SharePoint 详细信息页面

如何检索 SharePoint 列表项的目标安全组?

SharePoint 2007:链接列表项的目标受众