0

PeopleManager.getMyProperties()関数から情報を取得しようとしています。 私はオブジェクトを取得し、いくつかの値はnullです。私はUser Profileから管理からチェックすると、その値を見ることができます。どうすればこの問題を解決できますか?SharePoint userProfileProperties JSOM(JavaScript Object Model)

オブジェクトを取得するための作業コードがあります。
注:にアクセスするには、カスタムプロパティからユーザープロフィールにアクセスしてください。 私はオブジェクトのプロパティを見ることができますが、値は来ていません。

は...

$(document).ready(function(){   
    SP.SOD.executeOrDelayUntilScriptLoaded(loadUserData, 'SP.UserProfiles.js'); 
    }); 

    var userProfileProperties; 

    function loadUserData(){ 

    //Get Current Context 
    var clientContext = new SP.ClientContext.get_current(); 

    //Get Instance of People Manager Class 
    var peopleManager = new SP.UserProfiles.PeopleManager(clientContext); 

    //Get properties of the current user 
    userProfileProperties = peopleManager.getMyProperties(); 

    clientContext.load(userProfileProperties); 

    //Execute the Query. 
    clientContext.executeQueryAsync(onSuccess, onFail); 

    } 

    function onSuccess() {   
     console.log(userProfileProperties)  
    } 

    function onFail(sender, args) { 
     console.log("Error: " + args.get_message()); 
    } 

答えて

0

解決策を書くのを忘れてしまいました。申し訳ありません。

@ NaveenPrasathによって書かれたコードを試しました。それは多くのフィールドを与えていますが、 "Custom Prop Field"は返されませんでした。

作業コードを以下に示します。

function getUserProperties(targetUser) { 

    var clientContext = new SP.ClientContext.get_current(); 
    var peopleManager = new SP.UserProfiles.PeopleManager(clientContext); 
    personProperties = peopleManager.getPropertiesFor(targetUser); 
    clientContext.load(personProperties); 
    clientContext.executeQueryAsync(onRequestSuccess, onRequestFail); 
} 

function onRequestSuccess() { 
     var fullName = personProperties.get_userProfileProperties()['CustomPropField']; 
} 
1

は、以下のコードを試してみて、私に知らせてくださいあなたのすべてに感謝します。それは私のためにうまく動作します。自分のアカウントの代わりにユーザー名を渡しました。ここで任意のユーザーアカウントを渡すことができます。

function getUserProperties(userName) {  
    var clientContext = new SP.ClientContext.get_current(); 
    var peopleManager = new SP.UserProfiles.PeopleManager(clientContext); 
    var profilePropertyNames = ["FirstName", "LastName", "CustomProperty"]; //Have to load all the needed properties here 
    var targetUser = userName.trim(); 
    var userProfilePropertiesForUser = new SP.UserProfiles.UserProfilePropertiesForUser(clientContext, targetUser, profilePropertyNames); 
    userProfileProperties = peopleManager.getUserProfilePropertiesFor(userProfilePropertiesForUser);  
    clientContext.load(userProfilePropertiesForUser); 
    clientContext.executeQueryAsync(onSuccess, onFail); 

} 

function onSuccess() {  
// userProfileProperties result index is same as the properties loaded above 
    var firstName=userProfileProperties[0]; 
    var lastName=userProfileProperties[1]; 
    var customprop=userProfileProperties[2]; 
} 

役立つ場合は、回答としてマークしてください。

+0

私はコードを試しましたが、私はプロパティを持っていますが、カスタムプロパティはまだnullです。 "username"アドバイスと助けてくれてありがとう。私は見て、ıが見つかると、ıがあなたに知らせるでしょう。 @NaveenPrasath –

関連する問題