В 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 предварительно добавив их в тип контента | Suvitruf's Blog