Thursday, December 13, 2012

Share Site Columns across site collections - Content Type Hub

 

The kind of structure we have for our SharePoint applications has now spread over to multiple web applications and multiple site collections in those web applications.  We have around 30 seperate site collections in total for a single organisation.  We do have several site - sub sites existing in those but in many cases they are completely seperate. 

However, since all of this is for one organisation only, we do have some data required to be used in all like State, Organisation Name, Branch name, Owners etc.  We needed to be able to share the data for these columns across site collections.  For this one approach is to create Managed Metadata service, create term sets there and use them in lists as managed metadata columns.  But, this does not allow us to control our master lists via transactions. 

That is why we decided to get it done via Content Type Hub.  You create a seperate site collection wherein you create all such columns which need to be shared across the farm.  You can then publish this site collection to a managed metadata service.  This allows us to use those columns in any site on the farm.  Follow the below steps for how to create a content type hub:


1.       Create a new site collection from blank site template

2.       go to Site Settings -> site collection features and activate the feature for 'Content type syndication hub'
 
3.       Create Site Column for say ‘State’.  Enter it as a choice column.  Enter the values for the same. 

4.       Create as many columns as you need for your content type. 

5.       Create Content type.  In this case the base content type needs to be list content type- item.  Further add the site columns to the content type. 

6.       Create Managed Metadata Service. 

7.       Go to Central Admin, Application Management, Manage Service Applications.

8.       Create New Managed Metadata service.  Towards the end, in the section Content Type Hub, enter the url of the site created above.  Make sure you do not enter the complete url with the page name.  Just enter the site url.

  

 
9.       Once you set this hub, you will be able to change it only using Powershell command.

10.   Select the Managed Metadata service and click on properties in the ribbon. Make sure the  top two options are not selected.   

 

11.   Go back to the content type you created.  Site actions, site settings, content types, select the content type in question and select ‘Manage publishing for this content type’.

12.   In case you receive any error on this step, check for the url entered while creating managed metadata service.

13.   In case any change is made in the content type, it will need to be published again. 

14.   Create another site collection where you want to use the site columns. 

15.   Create a list, select existing site column; you will see a list of all the site columns created in the hub.