SPWorkflowTaskProperties.AssignedTo и формат "1; # Алиса Джексон" - PullRequest
0 голосов
/ 28 февраля 2012

Я новичок в SharePoint.Извините, если ответ на мой вопрос очевиден.

Я не могу понять, как назначить Задачу пользователю программно.Я устанавливаю свойства в SPWorkflowTaskProperties, все свойства передаются в Task, а строковое свойство AssignedTo - нет.

//next variants don't works
TaskProperty.AssignedTo = "1;#Michael Pushin";
TaskProperty.AssignedTo = "Michael Pushin";    
TaskProperty.ExtendedProperties["Assigned To"] = "1;#Michael Pushin";

Я пытаюсь реализовать шаблон делегирования.Для этого я читаю информацию из элемента списка, который имеет тип поля Person.

SPList functList = thisWeb.Lists["Functions"];
SPListItem functItem = functList.GetItemById(1);
object person = functItem["Default Assignee"];
string assignee = person.ToString();
//At this point assignee equals "1;#Michael Pushin"

Когда я устанавливаю поле «Назначено» руками и считываю программно, его значение также равно «1; #Michael Pushin».

Как установить «Назначено»поле программно из значения переменной person?

Заранее спасибо.

PS: простите за мое письмо.Английский не является моим родным языком.

PPS: SharePoint 2010.

Ответы [ 4 ]

3 голосов
/ 29 февраля 2012

Не преобразовывать человека в строку.

object person = functItem["Default Assignee"];

На данный момент человек похож на SPFieldUserValue. Приведите к действительному типу и посмотрите, сможете ли вы извлечь из него SPUser, а затем возьмите SPUser.Login.

1 голос
/ 29 февраля 2012

Я нашел решение!Благодаря этому сообщению: http://blogs.windowsclient.net/mortezanaeimabadi/archive/2011/09/17/how-to-obtain-spuser-object-from-values-such-as-quot-27-morteza-quot.aspx

SPFieldUserValue  userValue = new SPFieldUserValue(SPContext.Current.web, functItem["Default Assignee"].ToString());
SPUser userObject = userValue.User;
string asignee=userObject.ToString();
//hurray! asignee="MYDOMAIN\\michael.pushin"
0 голосов
/ 31 марта 2015

это сработало для меня

SPFieldUserValue  userValue = new SPFieldUserValue(SPContext.Current.web,     
functItem["Default Assignee"].ToString());
SPUser userObject = userValue.User;
string asignee=userObject.ToString()

спасибо Михаилу!

0 голосов
/ 04 декабря 2012

Я обнаружил, что это работает при настройке назначенного пользователя через рабочий процесс:

         taskProperties.AssignedTo = workflowProperties.OriginatorUser.LoginName;
...