Home grown Solution for migrating versioned documents into a SharePoint Document Library

I got asked the following today and after some thought, I provided the following response. Perhaps this will help someone else, and/or solicit some other ideas (please leave comments/share!).

The Business Problem/Requirement

We are having a problem with the automatic versioning in SharePoint. We are transferring files from our old Document Management System (DMS) to SharePoint. As most of these documents do not start at version 1, I need to override the automatic versioning in SharePoint. Once it has the correct version number, I need SharePoint to remember the modified version number and then number it correctly from there. For example, if I save a file version as version four, the next time it is edited and checked in, SharePoint would update the new version to version 5. However, when I move documents into SharePoint, they all start at Version 1.

The Issue

Versioning in SharePoint is native to SharePoint, it won’t pull in versioning history maintained by a 3rd party system (and to be honest, I don’t think other applications do this either, from foreign data).

The Solution(s)

  1. Option 0 – Not recommended– you could modify the values for the documents directly in SQL. However, this requires SQL expertise and talking to a SharePoint database without using the API is NOT RECOMMENDED – but I did read of some folks having done this without noticeable problems (yet). Either way, it is time consuming, cumbersome and potentially dangerous
  2. Option 1 – Safe and Simple– Let SharePoint manage all versions, with everything started as version 1.0.  But, also create a ‘legacy version’ column and in it, put the version number the document was at, when it ‘left’ your old system, so you have this legacy information
  3. Option 2 – Safe but Time Consuming–As you bring in your new documents, they will all be version 1.0’s.  To get various documents to be the ‘current version’, just open, modify (even a spacebar) the document and close it and it will result in a new version – as many times as necessary to get to the 2.0, 3.0, etc.  Then, go into the version settings and choose ‘Delete All Versions’, which will delete all previous versions leaving the ‘base’ document/version as the first version (in the example below, as a 3.0).

I know it’s a bit of a hack and time consuming, but it works and doesn’t involve doing anything dangerous… Depending on your volume, your ability to script and/or automate the various options, I hope one of them helps.