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.
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".
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?
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.
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.
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);
});
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.