Обновите ExtendedProperties или Утверждение Комментарии элемента задачи Sharepoint - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь обновить задачу SharePoint программно, используя CSOM. Я могу успешно утвердить задачу, но не знаю, как обновить комментарии.

Комментарии могут быть получены с использованием ExtendedProperties в качестве HashTable, но я не могу установить значение для того же. Как я могу обновить комментарии к утверждению?

Ниже приведен код для подтверждения задачи:

                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 Ответ

0 голосов
/ 17 марта 2020

Вы можете попробовать обновить комментарии для одобрения:

listitem["ExtendedProperties"] = "ows_FieldName_Comments='comment' ";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...