SharePoint 2013 JSOM User Key From Person Field

11,847

Ok, I've got it.

Here is my code, hope it helps somebody. I haven't included the method to retrieve the list item, just the line from that function where I'm getting the value of the person.

var _lineManager;

var lineManager = oListItem.get_item("RecruitingManager").get_lookupId();

_lineManager = oWebsite.getUserById(lineManager);

getLineManager();

function getLineManager() {
    context.load(_lineManager);
    context.executeQueryAsync(onGetUserNameSuccessLM, onGetUserNameFailLM);
}
function onGetUserNameSuccessLM() {
    alert(lineManager.get_title());

    var schema = {};
    schema['PrincipalAccountType'] = 'User,DL,SecGroup,SPGroup';
    schema['SearchPrincipalSource'] = 15;
    schema['ResolvePrincipalSource'] = 15;
    schema['AllowMultipleValues'] = false;
    schema['MaximumEntitySuggestions'] = 50;
    schema['Width'] = '280px';

    var users = new Array(1);
    var defaultUser = new Object();
    defaultUser.AutoFillDisplayText = lineManager.get_title();
    defaultUser.AutoFillKey = lineManager.get_loginName();
    defaultUser.Description = lineManager.get_email();
    defaultUser.DisplayText = lineManager.get_title();
    defaultUser.EntityType = "User";
    defaultUser.IsResolved = true;
    defaultUser.Key = lineManager.get_loginName();
    defaultUser.Resolved = true;
    users[0] = defaultUser;

    SPClientPeoplePicker_InitStandaloneControlWrapper('peoplePickerDivLinMan', users, schema);

}

function onGetUserNameFailLM(sender, args) {
    alert('Failed to get user name. Error:' + args.get_message());
}
Share:
11,847
Admin
Author by

Admin

Updated on June 16, 2022

Comments

  • Admin
    Admin almost 2 years

    Can anyone help me to get the user info from a person column using javascript? So far I have been able to read the list item and return a SP.FieldUserValue from which I can get a numeric Id (not sure what this ID is) and the display name. e.g.

    var ManVal  = oListItem.get_item("RecruitingManager").get_lookupValue();
    var ManId   = oListItem.get_item("RecruitingManager").get_lookupId();
    

    How do I take this one step further to create a sp user object?

    Ultimately what I'm trying to achieve is to retrieve the details from the list and then populate a people editor.