Most of our User Profile properties are mapped to values imported from AD. However, we would like to have a "Projects" property mapped to a list of projects the given employee is currently working on. The BDC external content type is configured and it's returning the correct list since I was able to use a Business Data List webpart and see the data coming from the external data source. So that makes me believe that the issue is specific to how user profile service should retrieve the value(s) from the external content. I think the two most probably options are: either the synchronization connection/properties are not configured correctly or it's a permissions issue.
Under Synchronization settings I have "<label for="ctl00_PlaceHolderMain_chkIncludeBDCSync">Include existing BCS connections for synchronization?" checked. The synchronization connection is set up to be 1-to-1 on EmpID. And that's the first thing I'm not sure about. If the BDC data lists multiple rows for each employee (because one employee can work on many projects) then shouldn't the connection be 1-to-many? If so, my 1-to-may button is disabled so I can't even select this option.</label>
<label for="ctl00_PlaceHolderMain_chkIncludeBDCSync"></label>My second questions is:
Under "Manage User Properties" the EmpID field is mapped to employeeID field which comes from AD. I don't see any mapping of EmpID to the employee ID field coming from the external source. Should I add it? And if so, do I just select the exact same property that is already mapped, i.e. EmpID and just add another "Import" mapping to the employee ID field from BDC or do I create a brand new user property e.g. EmpID_BDC and map it to the employee ID field coming from BDC?
And it looks like there might also be some kind of permission issue because I see the following error message in the event viewer:
"Microsoft.ResourceManagement.Service: System.ServiceModel.FaultException: Access to the requested resource(s) is denied at Microsoft.ResourceManagement.WebServices.ResourceManagementService.GetCurrentUserFromSecurityIdentifier() "
thanks,