Recently I have come across a situation where we need to configure SharePoint user profile synchronization to pull the Information from the BCS (Business Continuity Service) (External Data).
The challenge was to pull the Information based on a custom attribute that was created in UPA service application which pulls the information from AD.
We've a wonderful video available on TechNet which will make your life easier when you have to play around UPA-BCS connection strings.
This videoexplains you to create a BCS connection in User Profile Service application using the out of box AccountName which is what everyone use. But there are cases where the need be to use Custom attribute which is what we will discuss here.
Create a new user property in the User Profile Service Application called Custom and map it with the Active Directory attribute (which may be any attribute that has the required value, using this value you will pull all the users/data from external system)
I have mapped my Custom attribute in User Profile Properties page to a AD attribute called language
All the users in my AD have an attribute called language whose values are unique and should be unique to be able to pull the right information pertaining to the user.
Make sure you do an incremental import for the custom attribute to be appeared in your user profiles.
I have a SQL database which has the below information:
Now while creating a new BCS sync connection (follow the video to create new sync connection and mappings) Choose the CUSTOM attribute we've created by selecting the 1:1 mapping. We are almost done now. Just to confirm that we are able to pull the Information from the external data source, create a new user profile property in SharePoint which will retrieve the BCS data (Say property name as BCS-col2data, map it with the BCS connection and pull Col2 field from the database).
Now start another incremental import. AD import should be quick but the BCS import may take time depending upon the number of profiles to be imported and mapped to SharePoint from external data source.
Finally you should be able to see all the Information in the User Profiles (including the value that you've pulled from the BCS).
Note: Since the video has all the steps (including creating BCS profile using SharePoint Designer and mappings, I have only explained the CUSTOM property mapping).