我在这上面撞墙了。我从这里尝试过MS代码,代码 Set "Assigned To" on SharePoint task using Javascript object model
https://msdn.microsoft.com/en-us/library/office/jj163201.aspx
和其他网站。
我有100%正常工作的代码,可以在我的sharepoint上创建一个新任务。唯一的问题是我似乎无法设置Assigned To字段。
这是我的......
// Start creating of new Tasks
function createListItem(siteUrl) {
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('Tasks');
var itemCreateInfo = new SP.ListItemCreationInformation();
this.oListItem = oList.addItem(itemCreateInfo);
oListItem.set_item('Title', 'My New Item!');
//oListItem.set_item('AssignedTo', "SID");
oListItem.update();
clientContext.load(oListItem);
clientContext.executeQueryAsync(
Function.createDelegate(this, this.onQuerySucceededCreate),
Function.createDelegate(this, this.onQueryFailedCreate)
);
}
function onQuerySucceededCreate() {
alert('Item created: ' + oListItem.get_id());
retrieveListItems(site);
}
function onQueryFailedCreate(sender, args) {
alert('Request failed. ' + args.get_message() +
'\n' + args.get_stackTrace());
}
createListItem(site);
//End Create Task
我把所有内容都推回到这一点,只需创建没有分配给的任务。所以我尝试的一切都列在上面的链接中。我完全难以理解,因为它将任务分配给公司中的一些随机人员,而不是一件好事。
答案 0 :(得分:0)
首先使用web.ensureUser()
函数获取对用户对象的引用。 ensureUser()
接受用户的别名,例如他们的登录名或电子邮件地址(可以在SharePoint用户个人资料服务中定义其他别名字段)。
然后,您可以获取用户的id
属性,并使用该属性设置人员选择器字段的查找值。
下面是一个演示如何完成此任务的示例:
(function(siteUrl){
var clientContext = new SP.ClientContext(siteUrl);
getUser("contoso/JIMBO", // any valid user alias
assignTask, // function to call on success
alert // function to call on error
);
function getUser(username, onSuccess, onError){
var user = clientContext.get_web().ensureUser(username);
clientContext.load(user);
clientContext.executeQueryAsync(
function(){
onSuccess(user);
},
function(sender, args){ onError(args.get_message()); }
);
}
function assignTask(user){
var oList = clientContext.get_web().get_lists().getByTitle('Tasks');
var itemCreateInfo = new SP.ListItemCreationInformation();
var oListItem = oList.addItem(itemCreateInfo);
oListItem.set_item('Title', 'My New Item!');
var assignedToValue = new SP.FieldUserValue();
assignedToValue.set_lookupId(user.get_id());
oListItem.set_item('AssignedTo',assignedToValue);
oListItem.update();
clientContext.load(oListItem);
clientContext.executeQueryAsync(
function(){
onQuerySucceededCreate(oListItem);
},
function(sender, args){
alert(args.get_message());
}
);
}
function onQuerySucceededCreate(oListItem) {
alert('Item created: ' + oListItem.get_id());
//retrieveListItems(site);
}
})("http://contoso.com"); // site URL