Content Type Publishing in SharePoint 2010
Overview
In MOSS 2007 there was always the issue of how do we synchronize Content Types across Sit Collections. This was really problematic as it required either some custom coding or alternatively lots of manual configuration. This was also one of the many reasons that clients resorted to using as few Site Collections as possible
Publishing content types through the Managed Metadata Service is an extremly powerful feature of SharePoint 2010 but it does require some steps. The ability now to control content types from a central location and control all aspects of publishing is an amazing feature so check it out!
I have broken this down into three sections: Configuring the Managed Metadata Service, Configuring the Content Type Hub and finally configuring receiving site collections since you need to do all three to get this working, but once you do you can easily update your content types cross site collections and even cross farms!
Configuring the Content Type Hub
The first things to do is to create a Site Collection that will act as our content type hub. This hub will be where we will define the content types that we wish to share out via the Managed Metadata Service.
Some things to note: it doesn’t matter what the Site Collection template that you use but I would suggest using a blank template since you dont get any added overhead of some of the lists that are created.
1) Create a Site Collection and enable the ‘Content Type Syndication Hub’ feature in Site Collection Settings.
This will mark the site collection as our hub that we can expose via our Managed Metadata service. Enable this feature in the Site Collection Features listing.
2) Create a Content Type that you wish to publish out.
This is the same as creating a content type in MOSS 2007 but latter on you will have some other options available as shown in the below image. For now just create a content type and add some columns, even cooler you can now create your own Managed Metadata columns that you can use, sweet!
Configuring the Managed Metadata Service (MMS)
Next we have to configure the Managed Metadata Service so that it can expose our content types stored in our hub that we created above. This service will then expose our content types to which ever Web Applications are serviced by it.
1) Create or alter a MMS so that the content type hub is the Site Collection that we created in the first steps.
This will tell the MMS that it is to consume the Content Types from this site collection. To do this go to Central Administration -> Application Management -> Manage Service Applications then click on the ’Managed Metadata Service’ row and then select ‘Properties‘. Its actually not that easy, if you click on the text you will be taken to the Term Store page which you dont want so just highlight the row and click manage as seen below:
Now scroll to the bottom and type in the URL of the Site Collection that we have set up as our Site Collection Hub.
Also check the ‘Report Syndication Errors…” box as well, why wouldn’t you?
2) Configure the MMS Connection to consume the content types.
Now we need to tell the service connection where to consume content types from. To be honest I should know the exact difference between the Connection and the Service but I dont, sorry
.
What I do know is that you have to follow the same procedure as above except this time you select the row ‘Managed Metadata Service Connection‘ and then press properties. Don’t click on the actual text or again you will be taken to th area where you can enter term sets.
Once you are there you will see the screen below so select the ‘Consumes content types from the Content Type Gallery..‘ so that this connection will use the content types from our Site Collection.Incidentally you can also make this MMS the default for keyword and term sets if you want to in here as well.
3) Create a new Site Collection to consume the Content Types from
Easy enough but remember that the new Site Collection has to be on a Web Application that is being serviced by the MMS that we just configured!
Pushing out content types
We are nearly there. So we have configured the Content Type Hub, set up the Managed Metadata Service and now we are ready to start pushing the Content Types out, but there is a couple more steps unfortunately!
1) Publish out the select Content Types
Now that we have everything set up lets publish our types. Select the content type we created and click on ‘Manage publishing for this content type‘, you should see the screen below. Then click on ‘OK‘ to publish this guy out!
2) Fire off the Timer Jobs for publishing Content Types
Since we are impatient we have to set off the timer jobs ourselves to get this running. Go to Central Administration -> Monitoring -> Review Job Definitions and run the Content Type Hub job, then run the Content Type Subscriber job in that order.
3) Check out the content types in the receiving Site Collection
Now go back to the receiving site collection and check out the new content types. Click on Site Settings ->Content Type publishing and see the new content types! Or not…
Category: How To, Planning, Requirements and Analysis










[...] This post has now moved to my new blog located at: http://www.sharepointanalysthq.com/2010/06/06/content-type-publishing-in-sharepoint-2010/ [...]
[...] This post was mentioned on Twitter by Hire SharePoint Dev, Michal Pisarek. Michal Pisarek said: http://bit.ly/bXGqP8 Great article on setting up Content Type Publishing within #Sharepoint #sp2010 [...]
Michael,
I have a strange one here. It seems that we can’t add metadata to a content type that has been published to another site collection. Have you seen this before?
Ulysses
Hey Ulysses,
Did you go into Advanced Settings on the consuming Site Collection and then specify that this content type shouldn’t be read only?
A great article, but I wonder if the content type that is published is read-only?
I have a situation in which I must replicate structures of lists in different site collections and keep them up-to-date, each list can have independent data.
The use of the content type, is that I need, there is some other alternative?
Thanks, Rafael
I see and changed the content type to be not read only on the consuming site collection.
I do not see how to create a library of this content type. (it is based on document content type)
Am I missing a step?
The problem is each time the content type definition is republished to the subscriber site collections it becomes read only again.
Testing does appear to show that the columns added at the library level are unaffacted by the republishing though and do remain associated with the desired content type.
I guess this becomes a governance issue…should designers be able to add additional metadata to lists controlled by content types. If the answer is yes then the training / maintenance requires becomes greater when a content type hub is being used.
…added to my previous comment. One very strange piece of behaviour which I have been able to reproduce.
Once I have made my site content type NOT read-only and associated a column with it in the library, I lose the ability to create a new document of that content type via the New button.
Under New, for the content type in question the option provided changes to:
‘Upload a new ‘…which takes me to the upload form.
This is not good at all!
Hiya, Fantastic post thanks! Great clear steps and screen shots. But, I haven’t quite succeeded yet and hoping you can help?
I have set up the CT hub, and also the Managed MD services.
At first on publishing my CTs from hub site had error, but I’d used wrong url for hub site (your other post here helped fix that, http://www.sharepointanalysthq.com/2010/11/how-to-change-the-content-type-hub-url/)
So my CTs are successfully republishing, and then as you suggest, I have manually run the Jobs, these show as successful in the Job history.
But still no CTs in other Site Collection’s gallery
(Both Site Collections under same web application, am logged in as site administrator.)
I’ve checked SharePoint Log files and hard to tell whats gone wrong, here are the log lines showing where it starts to fail!
w3wp.exe (0×1068) SharePoint Server Taxonomy – MetadataWebServiceApplication.GetChanges called on ‘Managed Metadata Service’ completed.
w3wp.exe (0×1068) SharePoint Foundation Monitoring – Leaving Monitored Scope (ExecuteWcfServerOperation)
w3wp.exe (0x1E88) SharePoint Server Taxonomy – Cannot check for changes because no EMM application proxy can be found
OWSTIMER.EXE (0×2050) SharePoint Foundation Monitoring – Entering monitored scope (Timer Job SchedulingApproval)
OWSTIMER.EXE (0×2050) SharePoint Foundation Monitoring – Leaving Monitored Scope (Timer Job SchedulingApproval)
mssearch.exe (0×1214) SharePoint Server Search Propagation Manager – file copy failed (error 0×80070005: Access is denied.
Many thanks in advance,
hopefully,
Lucy
Below is a tutorial for creating a content type using SharePoint 2010 using visual studio 2010
http://www.fewlines4biju.com/2011/05/create-content-type-using-visual-studio.html
Thanks
Bijay
Hey Lucy,
This looks like you do not have the ‘Consume content types from the Content Type gallery at’ value filled in for your service connection.
Try filling that in and it should work.
Let me know if you need more help and how to do this but its in the original article of mine that you referenced.
Michal – Many thanks for the quick reply, all working now, fantastic.
Awesome Lucy good to hear
I have my Content Syndication Hub working. All sites have the Custom Content Type. One site, (Document Center) however, has the metadata fields grayed out (I think it believes them to be read only), but I have checked via the settings page that the CCT is NOT set to read only, as well as checking via SP Designer. All the other sites allow users to add metadata.
I have run the stsadm -o activatefeature to add “metadata taxonomy” to sites built on the “blank” template (since for whatever reason, “blank” doesn’t install the feature to allow consumption of metadata by default).
In addition, my Document Center can see all three SendTo connections (its own, and the two Record Centers that are on another web app – DocCenter is the one with the “read-only” acting Custom Content Type); but the two Record Centers (which share a web app), while having the same Custom Content Type as the Document Center, see that CCT as writeable. They can see each others’ SendTo, but not the one on the DocCenter. Central Admin agrees that the DocCenter SendTo is valid, and I can visit the .asmx page to verify that the XML is well-formed.
Any suggestions? This is a closed system, so I cannot provide a link. I did follow your instructions on setting this up. And I have set this same system up multiple times on various development environments, and this is the first time that I have run into this problem. What have I missed. All settings seem to be the same on each site.
Hey Rebecca,
To be honest I don’t really know what the issue could be. Sounds super odd though considering that the other sites worked…
Sorry that I couldn’t be of more help
I have created content type hub and sucessfully published new content type to a site collection.
I want to configure Metadata Properties (Mapping to crawled properties) for SharePoint advance search, how i can do that?? In fact, I can’t find any site columns which i defined in content type hub in crawled properties.
My question is, can we configure metadata properties if we use publising content type (content type hub is on same web application) ??.
Thanks,
Hi,
I followed the steps above created a content type hub and custom content type (Inventory); able to see the Inventory in Site Settings/Content Type Publishing in another site collection; but can’t create new document with that custome content type??
Thanks
Must sites have the Publishing Infrastructure enabled in order to consume from the Content Type Hub?
Are there _any_ key caveats that address whether or not Publishing should be activated on “consumer” sites with regard to the CT hub(at either the site level or the site collection level)?