Use multiple People Picker attributes (EntityData)

The "Name (with presence)" field is set as the default for this People Picker column.

Upon clicking "+New", the user uses a wizard to create an assignment. When selecting the desired user, the Text field below the People Picker field should display the "Office" attribute. Fellow Community Member "noorshahida88" has a post that gets me some of the syntax I am looking for but I am not sure what to do with it.

.value.EntityData.Office

And fellow Community Member "ParAvion" has a post that also seems helpful, but I am not sure how to make sure the data gets written to the text field.

fd.spRendered(function() {

 fd.field('PeoplePicker ').$on('change', function () {
            fd.field('Title').value = fd.field('PeoplePicker ').value.DisplayText;
 });

});

I have even considered a show/hide function, but I am stuck on how to bring it all together.

PeoplePickerText

Hello @shedev,

Please see the Populate fields with profile information article for the code example.

The key to the property is "Office", but you can check the property name in user profile properties in the "SharePoint Admin Centre > Classic features > User Profiles > Manage User Profiles > Edit User Profile".

image

I understand the example, but I think another part of the equation is that this is an external SharePoint user, coming from Azure Active Directory.

The "Office" field is nested within the contact Information section of the user profile. When I download a .csv of the users, the column header is named: physicalDeliveryOfficeName

I am using the Azure AD "Office" field as a key ID number for our org. I can get the field to appear in the Groups panes by modifying the List Settings for "People and group" in SharePoint. But I am not sure if I can expose it to the SharePoint list for use with Plumsail. Are you aware how I might gain access to meta information in a plumsail form?

@shedev,

physicalDeliveryOfficeName property in Active Directory by default is mapped to Office property in SharePoint User Profiles.

Once AD and SharePoint are synchronized, you can see the Office property in the list view of the People and Groups and get it using the code from the article.

Note, that synchronization takes time.

I appreciate your wisdom, and I do know what you're getting at. The Office metadata in the SharePoint People and Groups isn't the same as the SP "Office" column. I cannot get the Azure AD Contact information "Office" field value to get beyond the SharePoint Group and into the list. Since I can't expose it as a column, other than via a People Picker field, I cannot understand how to get at it.

@shedev,

The People Picker control gets data from the User information list which is synchronized with the SharePoint profile. And the SharePoint profiles, in turn, are synchronized with Azure AD profiles.

It's a complicated process and may take a while.

Also, you can populate the required columns with Powershell.

I am still not able to get Azure AD profile properties to appear in my form. This is the js that I am trying.

function updateUserInfo() {
    var spuser = fd.field('volunteer').value;

    pnp.sp.profiles.getPropertiesFor(spuser.Key).then(function(result) {

        var props = result.UserProfileProperties;

        for (var i = 0; i < props.length; i++) {

            switch (props[i].Key) {
                case 'PhysicalDeliveryOfficeName':
                    fd.field('roPkId').value = props[i].Value;

            }
        }
    });
}

fd.spRendered(function() {

    //executes updateUserInfo on field change
    fd.field('volunteer').$on('change', updateUserInfo);
});

Step 1 in Plumsail Form fd.field('volunteer')


Step 10 in Plumsail Form fd.field('roPkId')


Using this MS article for reference

User Profile in Azure Active Directory case 'PhysicalDeliveryOfficeName' - have also tried case 'Office'

AzureOffice


User Profile in SharePoint Admin (Classic)

Had a success - I had to use the Azure "Department" field" and the SharePoint Online built-in "ol_Department" field in order to grab the data. I had to go into Azure an populate the Department field with the data I had also in the Azure "Office" field - which I could not get to save my life. The MS documentation suggests Office is available, but it is not.

The code is as follows:
PkIdCode

1 Like