【问题标题】:Update an ExtendedProperties or Approval Comments of Sharepoint task item更新 Sharepoint 任务项的 ExtendedProperties 或 Approval Comments
【发布时间】: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;
    }

【问题讨论】:

    标签: sharepoint-2013 csom sharepoint-workflow extended-properties


    【解决方案1】:

    你可以试试这个来更新审批 cmets:

    listitem["ExtendedProperties"] = "ows_FieldName_Comments='comment' ";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 2010-12-07
      • 1970-01-01
      • 1970-01-01
      • 2013-01-26
      • 2016-12-23
      相关资源
      最近更新 更多