ユーザーが入力していないユーザー プロファイル プロパティを表示しようとしています。usersprofile と userprofile プロパティを取得するのはかなり簡単です。
function getUserPropertiesFromProfile() {
// Get the current client context and PeopleManager instance.
var clientContext = new SP.ClientContext.get_current();
var peopleManager = new SP.UserProfiles.PeopleManager(clientContext);
// Get user profile properties for the current user
userProfileProperties = peopleManager.getMyProperties();
// Load the UserProfilePropertiesForUser object and send the request.
clientContext.load(userProfileProperties);
clientContext.executeQueryAsync(onProfileRequestSuccess, onProfileRequestFail);
}
function onProfileRequestSuccess() {
var propertyValue = userProfileProperties.get_userProfileProperties()["SPS-JobTitle"];
if (propertyValue === undefined) {
// Property is not present in your User Profile Service Application
}
else if (propertyValue === "") {
// Property is empty
}
}
function onProfileRequestFail() {
// Handle failure
}
しかし、私の問題は、それが私が取得した内部名であり、外部名ではないことです。たとえば、「役職」は「SPS-JobTitle」です。だから私が欲しいのは、「SPS-JobTitle」が空または未定義の場合、外部名 = 「役職」をユーザーに書き出すことです。
可能ですか?SSOM (例: ProfileSubtypeManager) では簡単です。