Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

I'm working on a project with a typical scenario where authors are maintaining content on internal network (let's call it InAuthoring) and uses "content deployment" feature to flush the content to internet facing network (let's call it InProduction).

The twist is, a part of our application lets "end user" change/add content of a list InProduction.

The challenge is to keep this list InAuthoring syncronized with InProduction. And remember that there is a content deployment that is scheduled to run let's say every day.

One of the scenarios for this list is: 1. A particular listItem (say id=3) is changed InProduction. Same listItem (id=3) has been changed InAuthoring. On content deployment, changes InProduction will be overwritten.

My first thought was to have a webservice running InProduction, get the changed data InAuthoring and update the list (sync.). But following are the drawbacks of the solution:

  1. I saw this as a manual process, but content deployment is scheduled.
  2. If there is a long time span between sync. and content deployment, you might endup overwriting some data InProduction anyway.
  3. If there are new items added InProduction, then after sync. and content deployment you will endup having duplicates InProduction.

Is there a way to exclude specific list from content deployment?

I really hope someone has already been through this situation will guide me to be able to find a stable solution. Anyone out there with bright ideas?

share|improve this question
add comment

4 Answers 4

I've found in the past that as soon as you start editing content in production that is published via content deployment tends to be a lot more prone to errors and problems so you are likely to run into a lot of issues. Content deployment is designed for sending the whole site collection across. If there is a need to edit on both sides you typically have to get rid of using content deployment to make it stable.

I've usually performed the action of syncronising lists as a workflow rather than a web service or eventhandler simply because there are often certain decisions to be made i.e. if source is newer than copy etc. You could also look at third party products for two way replication if this is lots of content.

share|improve this answer
add comment

Here's my thoughts. If you have only the single list that can be edited in production, it may be possible to set up a content deployment job pushing only changed data to the InAuthoring site and then make your changes and push it back. This is only a theory and would require testing, especially since I know that the only site template that you can use to receive content is a blank site template, so basically both would have had to start with that template for this to even be considered first.

The best option you have is using some third party tools that will keep both ends in sync. I know that AvePoint has a replication tool, and there may be others out there. This will allow you some added capabilities of keeping both sites in sync with eachother if it is within your budget constraints.

Lori

share|improve this answer
add comment

Just to add a couple of thoughts - I agree that SharePoint's Content Deployment feature may not be the best solution to your problem. As said earlier, it is not designed for 'multi-master' scenarios as it expects the target to be read-only (there is no real conflict resolution). However, my Content Deployment Wizard tool provides additional options with Content Deployment, and maybe there's a solution in there somewhere.

The Wizard allows you to specify at a much lower level of granularity what gets deployed. So you can select webs, lists or even list items. Hence, you could use this to:

  • Use Content Deployment from InAuthoring -> InProduction but exclude this list (drawback - with the Wizard you have to choose ALL the other webs/lists manually, and if new webs/lists get created, you'd have to manually update the list of what to deploy as there is no exclude function)
  • Use CD to go back from InProduction -> InAuthoring for this list on a regular basis (maybe)

The Wizard supports scripting and so can be scheduled via Task Scheduler. http://spdeploymentwizard.codeplex.com

Otherwise I think you're looking at a 3rd party product which does conflict resolution as Lori says..

Chris.

share|improve this answer
add comment

There are 3rd party options to accomplish this, such as ROSS from RepliWeb.

share|improve this answer
    
@Brad: Could you please disclose this is your company in your answer. You may also wish to add detail directly answering the question. –  Alex Angas Nov 16 '09 at 15:50
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.