Получение параметров из ExtendedProperties задания на форме редактирования в рамках рабочего процесса SharePoint

В SharePoint, работая с рабочими процессами, в любом случае придётся использовать какие-то свои параметры/атрибуты для заданий. Вот только, если в самом р.п. нет проблем при получении оных, то на форме редактирования рабочего процесса возникают трудности.

Ну, скажем, есть у нас задание:

1.public CreateTaskWithContentType _Task;        // задание

Если мы хотим записать какие-то свои параметры, то пишем их в ExtendedProperties. Например:

1._Task.TaskProperties.ExtendedProperties["MyDescription"] = "Моё задание";

В дальнейшем можно так же обратиться к этому параметру для считывания значения. На форме редактирования же всё посложнее немного. Про работу с формой редактирования я уже писал. Для получения каких-то стандартных параметров можно обращаться так же к ExtendedProperties:

1.string Fname = this._TaskListItem["ows_WorkflowLink"].ToString();

А вот для получения свои параметров так не прокатит. Что странно. Вообще, параметры между рабочим процессом и формами передаются в виде XML, что очевидно. Но почему-то SP не парсит ExtendedProperties из XML файла, поэтому немного поизвращаться надо для получения своих параметров:

01.private string GetParam(string paramName)
02.{
03.    XmlDocument xmlDoc = new XmlDocument();
04.    //получаем xml файл параметров задания в виде строки
05.    string xml = this._TaskListItem.Xml;
06.    //преобразуем нормальный xml
07.    xmlDoc.LoadXml(xml);
08.    if (xmlDoc.FirstChild.Attributes["ows_ExtendedProperties"] == null) return string.Empty;
09.    //получаем атрибут ExtendedProperties
10.    string elems = xmlDoc.FirstChild.Attributes["ows_ExtendedProperties"].Value;
11.    //но он не xml'евского формата...дописываем теги
12.    xmlDoc.LoadXml("<x " + elems + " />");
13.    //вытаскиваем отсюда нужный нам параметр
14.    return xmlDoc.FirstChild.Attributes[paramName] != null ? xmlDoc.FirstChild.Attributes[paramName].Value : string.Empty;
15.}

Теперь для получения значения собственного параметра необходимо вызвать этот метод:

1.GetParam("ows_MyDescription");

Получение параметров из ExtendedProperties задания на форме редактирования в рамках рабочего процесса SharePoint: 1 комментарий

  1. Уведомление: Получение параметров из ExtendedProperties предварительно добавив их в тип контента | Suvitruf's Blog

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *