2012-02-28 53 views
0

我是新來的SharePoint。很抱歉,如果對我的問題的回答很明顯。SPWorkflowTaskProperties.AssignedTo和「1;#愛麗絲傑克遜」格式

我不明白,如何以編程方式將任務分配給用戶。我在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" 

當我用手設置「Assigned To」字段並以編程方式讀取時,它的值等於「1; #Michael Pushin」。

如何通過編程方式從person變量的值中設置「Assigned To」字段?

預先感謝您。 PS:對不起,我的寫作。英語不是我的母語。

PPS:SharePoint 2010.

+0

當我設置TaskProperty.AssignedTo =「MYDOMAIN \\ michael.pushin」所有的作品,但我怎樣才能將數據從「1;#邁克爾普林」格式轉換爲合適的? TaskProperty.AssignedTo =「MYDOMAIN \\ Michael Pushin」不起作用 – MikhailSP 2012-02-28 11:53:48

回答

3

不要將人員轉換爲字符串。

object person = functItem["Default Assignee"]; 

在這一點上,人是不喜歡SPFieldUserValue。轉換爲實際類型,看看您是否能夠將SPUser取出,然後抓取SPUser.Login。

+0

不,此時對象人的實際類型已經是字符串。可能存在另一種獲得像SPFieldUserValue類型那樣的物品的方法?或者我如何查找它?可能是我必須使用ID = 1(** 1 **;#Michael Pushin)通過查找來獲取它,但是哪裏? – MikhailSP 2012-02-29 11:42:35

+0

謝謝您的回答 – MikhailSP 2012-02-29 11:49:59

+0

var login =(new SPFieldUserValue(spWeb,asignee))。User.Login; – 2012-03-01 07:42:29

1

我找到了解決方案! 多虧了這個帖子: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

這和我的回答是一樣的...... – 2012-06-15 09:42:01

0

我發現這工作,同時通過工作流設置指定的用戶:

  taskProperties.AssignedTo = workflowProperties.OriginatorUser.LoginName; 
0

這個工作對我來說

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

感謝米哈伊爾!

+0

Hey Jase,這應該是一個評論。 – Mathemats 2015-03-30 23:58:47