This is a common request from customers. Of course, we have easy access to who the current user is via the username() function. Assuming the user’s manager is stored in Active Directory, you could write a web service that accepted the username as a parameter, and returned the manager name. Or, if you’re using MOSS and have set up profile imports, then you can use that web service from infopath.
Here’s the summary:
Set up a data connection to the MOSS userprofile web service. It takes an input parameter (the username), and returns a repeating group with all of the different available properties and values. Once the data connection is configured, add a button to trigger the data query, and then set the value of a textbox (with either a rule or just using the textbox’s default value) to be the desired value using a filter.
A little more detail:
1. In infopath, set up a new data connection to receive data from a web service. The web service url should be:
2. On the “select an operation” page of the wizard, select “getuserprofilebyname”
3. Hit next and take the defaults for the rest of the wizard, but make sure to deselect the option to “automatically retrieve data when form is opened”
4. On the infopath form, add two textboxes and a button. Set the first to have a default value of username(). Before setting up the second textbox, first set up the button
5. Go to the rules for the button and set up two actions:
a. Set a fields value: Set the accountname query field that is in the secondary data source to be the value that is in the first text box (the username textbox)
b. The second action should be to query using a data connection:
The goal of this is to get the managers name into the second text box, but you may want to take a moment to see what data is available within the service. In the data source window, switch to the secondary data source in the drop down, and drill down in the data fields until you get to the PropertyData element, and drag it onto the form, and select to have a repeating table.
Run the form and click the button. In the table will be all the available fields and values. Take note of the exact spelling and case of the name of any fields you want to retrieve.
6. Set up the default value of the second textbox:
The value should be the value field with a filter set to retrieve the row where Name = “Manager”
7. After clicking on the fx button for the default value, select “insert field or group”
8. Change the data source drop down to be the secondary data source, and drill down to the value field:
9. Then, click on filter data.
10. Add a filter.
11. In the “specify filter conditions”, click on the first drop-down and “select a field or group”.
12. Select the Name field:
13. Back in the “specify filter conditions”, in the drop down on the right, select “type text” and type in the name of the field you are trying to retrieve.
Again, the field names are case sensitive!