I am trying to set up a simple proof of concept to demonstrate to my client the ability to map SharePoint 2013 user profile properties to an external business system, but I cannot get it to work... this is what i've done
1) Created a SQL Server 2012 database called UPSTest, with the the SP Farm account as DBO
2) Created 2 columns in that database:
FirstNameInDB (nvarchar(50), not null)
OrgsInDB (nvarchar(50), not null)
3) Populated the table with some test data, using the first name of two user profiles that I know are correct (more on why I'm using First Name later), and test values in the OrgsInDB column
4) Created an external content type called UPSTest_ECT, set FirstNameInDB as the identifier on the SQL side, and set the SP Farm account to have permissions on the ECT.
5) Validated that the ECT is working, by creating an external list which works fine
6) Created a new Profile Sync Connection, using the FirstName profile property as the identifier on the UPS side. I used FirstName because it is a String property - I initially was trying to match on AccountName, but read that the Person data type in SP is incompatible with System.String .Net data type.
7) Created a new custom profile property called OrgsInSP, using the String (MultiValue) data type (because Technet says it has to be multivalue) and mapped it to the OrgsInDB column in the ECT
8) Ran a full profile import
So at this point I would expect to see the value of OrgsInDB show up in the OrgsInSP profile property, having matched the FirstNameInDB column in SQL to the FirstName attribute in the profile store.
But no matter what I do the profile properties do not get populated. No errors show up in the MIISClient, or in the ULS or Windows event logs. All looks groovy there... just no data being pulled through.
I'm fairly tearing my hair out with this after 2 days so any advice or ideas would be very welcome indeed!
Thanks
Anthony