Hi, this is Frank Mueller, a developer on the InfoPath team. In this post which is the first of two blog posts about the Person / Group picker, I want to tell you about the improvements we’ve made to this control in InfoPath 2010.
The Person / Group Picker (aka contact selector) control allows you to type or select users and groups from a SharePoint site, and validate those users against a directory provider. In InfoPath 2010, the Person / Group Picker control is now a 1st class citizen and is available out of the box in the controls gallery! With the new and improved person / group picker, we have eliminated the detailed steps required to insert and configure this control in your forms (the blog post outlining these steps has been one of our most viewed posts). In addition to making the control available in the controls gallery out of the box, we have added new features to improve its integration into SharePoint scenarios.
For information on how to upgrade InfoPath 2007 forms with Person/Group Picker controls to InfoPath 2010, click here.
From the Controls Gallery on the Home tab or the Controls task pane, click the Person/Group Picker to insert it into the view.
The Person/Group Picker needs to connect to a SharePoint site to be able to function. Specify the SharePoint site as follows, unless you have already published the form to a SharePoint site, in which case that site will be used.
In InfoPath 2010 it is now possible to mark the field the people picker is bound to as Cannot be blank. This means that users will not be able to submit a form without having entered at least one valid person or group in the control. You can mark a field as required by doing the following:
Preview the form in InfoPath Designer or publish the form to a SharePoint site and view the form, enter a name or logon alias, click the “Check Names” button and resolve the name! Alternatively, you can click the “Address book” button to perform a search if you do not know the complete name of the user.
For information on how to upgrade InfoPath 2007 forms with Person/Group Picker controls to InfoPath 2010, check out my other post here.
If I add the people picker control to the form it puts it into a repeating group - so I am unable to promote the DisplayName to a SharePoint column.
The group is also locked so I can't remove the check mark for Repeating.
How can I get around this?
You are correct - the data structure for this control cannot be changed as it returns data based on that schema. So if you could change it, you would break the control. In addition, these nodes store the data as text (strings) so you cannot promote this to a "Person" column in SharePoint if that is your ultimate goal. If you want to promote just the Display Name column, you can - it just won't be a "Person" node. If the goal is to get this information into a "Person" node, then you can easily do this by promoting the AccountId node as a string and then use a SharePoint Designer workflow that starts when a new item is created and/or an existing item is updated and it simply sets your "Person" node to the value in the AccountId node.
My customers are getting '..CallBack Errors' when they try to use the control in a form I designed.
The form is for a Form Library.
When I use a List Library the control/form works ok.
This is on a Company intranet.
My Customers are in China, I'm in Ohio.
Can this be a timeout error?
Also, I did not specify the URL in the 2nd tab of the controls properties. I deploy the form, and assumed the URL would be realtive to the Sharepoint Site.
Any advice on how to overcome the error?
We have encountered a strange behaviour of People Picker (SharePoint 2010 + Infopath 2010). Normally we need to click "Check Names" on the verify button in order to detect the user entered in the people picker. This is the behaviour we expect of infopath and SharePoint.
However if there is any postback triggered of a control in the infopath, the people picker will then auto verify the user name (without click on the verify button). How we can do to prevent the auto verify user name of people picker?
I want a combination of friendly display of people and I want the person object (with looks unfriendly, especially with claims where the domain\username has a "i:0#.w|" prefix).
I think you are suggesting: use the people picker control in the form but promote the display name (that gives me my friendly display of people). Since I also need the account id, create additional columns (people groups type) directly in my form library and populate those values on create and modify actions using a Workflow.
So if I have 3 people pickers, I actually need 6 columns in my form library.
Did I get it right.
Yes - that is correct. However, once you populate a Person/Group node with the accountId, won't it display the "friendly" name? If so, then you just need to promote that one column as a string.
I am having a problem where the Person Picker does not get selected when in error. All other "native" controls do.
How can I fix this?
I have a SharePoint 2010 Infopath List form. In this form I have a people picker field and a Date picker field. Now I need to make people picker field Mandatory only when Date picker field is not blank. How can I do this as Action, validation are not available for People Picker and we cannot use custom code for an Infopath List form ? Please suggest.
You are correct - there is not a way to add "formal" data validation to the People Picker control. But you can change the design just a little and get almost the same result. Here is an example:
NOTE: My Person column is called: MyPerson and my date column is called: MyDate
1) Add a new button to the form (this will be your Submit button now)
- Right-click the button, choose Properties and set the Action to: Submit
- Click the Submit Options button on the Ribbon (Data tab) and uncheck the option "Show the Submit button in both the Ribbon and the Info tab..."
2) Add a new "Formatting" rule to the button as follows:
- If MyDate is not blank and AccountId is blank or Person is not present
- Disable this control
** What this will do is disable the Submit button if a date has been entered/selected and the AccountId node for the Person control is still blank. (This gets populated when the name is validated.)
3) Add a "Calculated Value" control next to the People Picker control and set the text property to an asterisk (I made it bold and red as well.)
4) Add a "Formatting" rule to this Calculated Value control as follows:
- If MyDate is blank or MyDate is not blank and AccountId is not blank
- Hide this control
** What this will do is show the red asterisk (like a required field) when a date has been entered and the AccountId node for the Person control is still blank.
Although this is not true data validation Ram, it will prevent submitting the form if a date has been entered but a name has not been validated in the Person control.
I hope this helps!
Did anyone ever figure out what to do with the tab back problem that the picker causes?
i can understand on sharepoint share can you explain more.... clear???
Hi, I am new to Infopath and have created one form with the help form Internet,now i am stuck in, i have already published the form on SP. I want when somebody opend the form it should come up with User name & email ID automatically, its possible i have seen in one form but dont know how to do this.
Thanks in advance!!
In using 2010, does it correct this issue?
• Problem: While the initiator fills out the form the contact selector works just fine. But when the approver opens the form from Outlook we get the following message when we try to validate a user in the Contact selector: "This action cannot be performed from untrusted sites. To use Find, you must add this site to the list of trusted sites for your Web browser."
• The reason you are seeing this behavior is when you open an InfoPath form from within Outlook it is being opened in the local IE cache (Temporary Internet Files) - as such, you will see this message. To allow the Contact Selector control to work in that scenario the form will need to be saved to the user's machine.
When I try to use the people picker in InfoPath 2013, it causes InfoPath to crash. Any ideas?
Problem Event Name: APPCRASH
Application Name: INFOPATH.EXE
Application Version: 15.0.4420.1017
Application Timestamp: 5067334b
Fault Module Name: PEOPLE~1.DLL
Fault Module Version: 15.0.4420.1017
Fault Module Timestamp: 506733e2
Exception Code: c0000005
Exception Offset: 0000f279
OS Version: 6.2.918.104.22.168.256.4
Locale ID: 1033
Additional information about the problem:
I hate to say it but this is not the best thing you guys ever did. I need a similar control but one that validates against Active Directory and not SharePoint. You took that functionality away.