SharePoint JSOM からリスト アイテム操作時に「ユーザーまたはグループ」列に値を設定する

SharePoint 2010
スポンサーリンク

私も時間を見つけてはちまちまと回答を投稿している TechNet フォーラムでもときどき質問がありますが、「SharePoint の JSOM を利用して「ユーザーまたはグループ」列に上手く値を設定できない」という悩みを持たれる方が多くいらっしゃるようです。自分自身も忘れないようにメモしておきます。

Microsoft TechNet フォーラム – SharePoint
https://social.technet.microsoft.com/Forums/ja-JP/home?category=sharepoint

さっそくコード

まずは、ひとりのユーザーを設定する方法です。

var valSetUser = SP.FieldUserValue.fromUser("<username>");
oListItem.set_item("<fieldName>", valSetUser);

肝となるのは、SP.FieldUserValue.fromUser メソッドです。このメソッドの引数に指定する <username> は、ユーザー名のほか、メール アドレスなどでも大丈夫なようです。

SP.FieldUserValue.fromUser Method (sp.js)
https://msdn.microsoft.com/en-us/library/office/jj838503.aspx

また、配列にして複数のユーザーを設定する方法もあります。

var valUsersArray = new Array("<username1>","<username2>","<username3>");
var valSetUsers = [];
for(var i in valUsersArray){
	var valPushUser = SP.FieldUserValue.fromUser(valUsersArray[i]);
	valSetUsers.push(valPushUser);
}
oListItem.set_item("<fieldName>", valSetUsers);

ちょっとだけ違うのは SP.FieldUserValue を配列に入れて渡すというところだけですね。

さいごに

SharePoint のリスト列への値の設定は、列の種類によって作法があるのでややこしいですね。ちなみに、今回の記事に該当するフォーラムの投稿は下記です。

[SharePoint2010]JavaScriptでのリスト操作について
https://social.technet.microsoft.com/Forums/ja-JP/09a582c7-022d-4f4d-a1ac-fa3c480b9d18/

タイトルとURLをコピーしました