5

ユーザーを SharePoint リストに書き込んでいます。

SharePoint ユーザー フィールドの内部に次のような文字列があることを読みました。 userId;#userLoginName

ユーザーフィールドに書き込むときに同じ方法で書式設定を試みました。たとえば、この文字列を書き込むと機能します。 9;#i:0#.f|membership|ectropy@example.org

しかし、(少なくとも私にとって)奇妙なことは、それが機能している9;#ように見えること9です。userLoginName情報をまったく渡さなくても、loginId話しているユーザーを認識するのに十分なようです。

これは、SharePoint User フィールドに書き込むときに必要なのは id だけであり、userLoginName、または実際には の後のすべてloginIdが無関係であることを暗示しているようです。

ここでの私の推論は正しいですか?または、userLoginName 情報を省略した場合、予期しない結果が生じる可能性がありますか?

4

2 に答える 2

8

あなたの仮定は正しいです.Userフィールドの値を指定するときは、User Idだけが必須のプロパティです.

ただし、SP.FieldUserValue オブジェクトは User フィールドの値を格納するために使用されるため、次の例に示すように、このオブジェクトを使用して値を取得および設定することをお勧めします。

var ctx = SP.ClientContext.get_current();
var web = ctx.get_web();
var lists = web.get_lists();
var list = lists.getByTitle(listTitle);
var item = list.getItemById(itemId);

var assignedToVal = new SP.FieldUserValue();
assignedToVal.set_lookupId(11);   //specify User Id 
item.set_item(fieldName,assignedToVal);
item.update();

ctx.executeQueryAsync(
    function() {
        console.log('Updated');
    },
    function(sender,args) {
        console.log('An error occurred:' + args.get_message());
    }
);
于 2014-06-17T23:14:02.163 に答える
0

私はここで人の名前を使用して答えを見つけます.IDを持っていない場合は、ユーザーIDを見つけるよりも簡単です.

https://gist.github.com/rheid/18635032d8371c7825b3320eae57071f

// Single Person  
   var singleUser = SP.FieldUserValue.fromUser('Peter Dotsenko');  
   oListItem.set_item('PetkaPersonSingle', singleUser);  

   //Multi Person  
   var petkaUserMultiArray = new Array("peterd@domain.com","Peter Dotsenko","domain\\peterd");  
   var lookups = [];  
   for (var ii in petkaUserMultiArray) {  
      var lookupValue = SP.FieldUserValue.fromUser(petkaUserMultiArray[ii]);  
      lookups.push(lookupValue);  
   }  
   oListItem.set_item('PetkaPersonMulti', lookups);
//
于 2019-08-07T13:21:27.893 に答える