SharePoint’s User Profile Synchronization service is by FAR it’s most complicated and painful part to deal with. It is a bear to setup, modify, and maintain. To add to that, if you are importing supplemental User Profile Properties from a BCS connection, like SQL, then you should know that importing URL and Person data types are not supported.
For example, if you have a SQL Table with a “Manager” field in it; you cannot import that field into the “Manager” Profile Property in SharePoint. There is a very ugly and unsupported way of doing this here, but I would not recommend it.
The best solutions?
1. Import these fields directly into AD from whatever connection your BCS connection is pulling from. This is fairly simple when using Microsoft’s AD API.
2. Create a Timer Job Definition that uses the BCS connection to get the Profile Properties from SQL and then use the SharePoint API to manually set the properties on each user’s profile.
Here’s a really good post that explains how the User Profile Synchronization service works.
