The “Organization Hierarchy” is a cool little thing that let’s SharePoint users to remember who their colleagues are and more importantly who their manager is.
If you are wondering about customizing it, honestly, it’s quite a bit of a work if you want to do that via features or using OM for the “small” issue in hand.
This pretty little control is actually marked up in the person.aspx page in the “SPSMSITEHOST” site definition. The actual control reference is “SPSWC:ProfileManages”. Looks like this control is designed to lookup SharePoint’s user profile database for filling itself up. And quite obviously, if proper mapping (between managers/employees) is done in Active Directory that information is captured in SharePoint’s user profile database as well and the accurate AD structure is replicated in SharePoint’s user profile database. This acts as the primary source for the “Organization Hierarchy” control.
There was a recent customer query, where they had ~ 12,000 user profiles in their Active Directory. Worst, those user profiles did not have proper structure defined in AD i.e., no manager employee association or whatever! They setup My Site and fact a performance issue and quite obviously the “Organization Hierarchy” control was causing it.
As I said earlier, “Organization Hierarchy” control has no intelligence of its own and purely relies on SharePoint’s user profile module, which in turn relies on AD structure to populate information. Now, since this customer did not have a structured AD, it ended up being a mess as all their user profiles (~ 12,000) was displayed in the “Organization Hierarchy” control. Actually, the “Organization Hierarchy” control “tries” displaying all the data and eventually times out or if it displays, it does after a good 10 minutes delay. So much for their unstructured AD.
Now, coming to the ways to fix this problem.
1. Delete all the user profiles you’ve loaded in your User Profile database.
2. Remove the “Organization Hierarchy” control using SPD.
The customer did not want to delete the user profiles, so the suggestion to remove the “Organization Hierarchy” control via SPD was the only one feasible. All that the customer had to do was to login to open their http://<sharepoint>/person.aspx page using SPD. Find the control and delete it as shown below:
Once this is done, it affect the person.aspx page of all users in that SharePoint Server Farm. I couldn’t think of any other means (for e.g., via features) because this control seems to be embedded in the person.aspx page as I told earlier. There might be ways of achieving it via feature (may be looping through the controls collection and removing this particular control), but to me it seemed to be a over-shot for the simply issue in hand.