SharePoint Document Set Version Extension

Before reading further, please note this is not a simple 'how do I enable versioning' and, as far as I can tell, nothing similar has been asked before...
Instead I am looking for any solutions (3rd party or OOTB) or novel suggestions for an extension to document set versions so that users are presented with a friendlier user interface than the default version history dialogue that we all know and love.  
This is a very specific request from a senior stakeholder at my company who requires the highlighting/comparison of document set versions in which we are already displaying a custom ASPX page of properties and lookups against other data in the site. The
user has previously used (and most likely prefers) the Atlassian Confluence offering (https://www.atlassian.com/software/confluence) which provides such functionality.
So far I have explored the following no code solutions:
Allowing users to track their own changes through Word and then uploading the document to the correct document set. This is not an option due to the number of clicks users have to navigate through and the loss of centralised tracking etc. through the doc
set properties
Providing users with the ability to mark their changes in the document set with rich text highlighting (has to be enabled through SPD for document sets) which was initially promising but places the reliance on users to remember to highlight changes correctly.
I have also noticed a frustrating feature with version control which, in the history dialogue box, properties with a large number of characters (we have extended most fields to be greater than 250 - I know this is probably not recommended but needed to be
done) are clipped so that the entire field is not visible. Through PowerShell I can see that the values are fully stored in the Snapshot Collection for each document set.
Currently, I am working on the assumption that this is the only way to access version history and a custom server side solution (CSOM doesn't seem to expose these properties) will be the only option going forward. Ideally a no-code option (especially not
server side) would be preferable so reaching out to you wonderful experts for some insights.
Really appreciate any responses...

Hi,
Based on your description, my understanding is that you want to make the Document Set Version history with a friendlier user interface than the default version history dialogue.
SharePoint seems to only expose the Document Set's metadata version in the "Version" column. I call this the metadata version because this will only increase if you make changes to the document set's properties, and not if you update the documents
inside. This is what I mean by metadata version.
In the Document Set Version history,  the first column displayed is No. This is not the regular version column of the library, but a totally different one. When creating a document set version the version column of the library doesn’t change,
only the No value.   
The version(s) of a document set are stored in the propertybag of the item itself. 
Take a look at this article about how to retrieve document set version history:
http://www.itidea.nl/index.php/how-to-retrieve-document-set-version-history/
Best Regards,
Lisa Chen
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
[email protected]
Lisa Chen
TechNet Community Support

Similar Messages

  • Issue related to "Document Set Version History" option for Video uploaded in Asset library

    Hi,
    When user clicks on ‘Document Set Version History’ option from context menu (ellipsis) of a particular video, ‘Sorry, something went wrong’ message is shown. The error message also says,
    versions are currently disabled for this document library.
    When we enabled version history for the video library, the functionality started working as expected.
    Ideally the context menu of video should not show ‘Document Set Version History’ option. But we are not sure why it is showing that option.
    Can anybody please explain, is it bug in sharepoint ? or any other approach we have to use.

    Hi Sanket,
    We need to configure the send to connections for the corresponding web application in Central Administration and then the locations will be available when clicking the Send To Other Location.
    Please go to Central Administration > General Application Settings > Configure send to connections.
    After configuring the send to connections for the web application where you need to use the Send To Other Location, the location will be available.
    Best regards.
    Thanks
    Victoria Xia
    TechNet Community Support

  • Workflow to capture document set version automatically

    Hi,
    I have a document library filled with over 800 document sets. I need a automatic versionning system for the library and I figured my solution was to use a custom Workflow.
    So I created a workflow in Sharepoint Designer with only one step: "Capture a version of the document set". The Workflow is setup to start at any modification or creation in the list.
    My problem is that every time the workflow run, it creates 10 identical versions of the same document set instead of 1. I tried capturing the version manually and it captures only one version (as it should).
    Any idea?
    Thanks in advance for your help!

    I found a workaround to this issue. First create a new field called AutoVersion. Make it a Yes/No checkbox. Add this to your Document Set. Update your workflow so that it first checks that AutoVersion is checked before capturing a version, then after capturing
    the version uncheck this box. Now if the user checks the box, the workflow will capture the version, but on the second through tenth time it tries to capture the version it will see the box is now unchecked and won't run. 
    This works fine, but you can go anadditional step and add some jQuery to the Edit Properties page so that the checkbox gets check automatically when the form is opened and also hides the checkbox so it can't be unchecked. To the user there will not be a
    checkbox visible, but to SharePoint it will think the box has been checked and run the workflow. 
    More info here on the code you can use to perform this: http://techaholica.com/2015/02/27/sharepoint-version-a-document-set-through-a-workflow/

  • How to know whether file is modified or metadata from SharePoint Document Library version history

    I have uploaded a document in document library. I am writing code to retrieve the items from the library only if document is modified, not the metadata.
    So if for an item only metadata is modified then it should not come, if document is modified then it should come. I tried from version history but it doesnt work. Any idea?
    Mark ANSWER if this reply resolves your query, If helpful then VOTE HELPFUL
    INSQLSERVER.COM
    Mohammad Nizamuddin

    Each file has an associated SPListItem which contains the metadata. See if the SPFile.TimeLastModified reflects the file and not the metadata.
    http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfile.timelastmodified.aspx
    Dimitri Ayrapetov (MCSE: SharePoint)

  • SharePoint 2013 - Document Set Capture Version History. Does each version captured for each document set keep a copy of all the document stored in the document set?

    Hi All,
    We have currently encountered an issue where even though version control is turned on in a document library, changes made to the metadata of a document set is not tracked in a version history. 
    We have found that in order to this a user will need to manually click on the capture version history button. 
    With this in mind, we are concerned about the impact of this on our storage. The question we have been trying to answer is whether each document set version:
    stores the change in metadata of the document set and a copy of all the documents stored in the document set
    stores the change in metadata of the document set and a reference to the documents stored in the document set (making use of SharePoint 2013's shredded storage)
    The reason we ask this is that if a document set version stores a copy of all the document stored in a document set, a change in one of the fields in the document set could result in the storage used to grow exponentially. e.g. if the document set contains
    documents totaling 30MB, and if we have 10 versions of the document set, we could take up 300 MB in the content database for just one document set.
    We have tried to some searching around Google but wasn't able to find any answers around this question. Would appreciate some assistance from anyone who has knowledge around how document set version history works. 
    Thanks in advance.
    John

    i had a long thing written out, but submit failed.  suffice to say it does "2".  it only stores the changes with pointers to the documents. 
    Christopher Webb | Microsoft Certified Master: SharePoint 2010 | Microsoft Certified Solutions Master: SharePoint Charter | Microsoft Certified Trainer| http://tealsk12.org Volunteer Teacher | http://christophermichaelwebb.com

  • Document set items Version history

    Hi,
    I'm trying to to retrieve document set version history. here i need to retrieve all modified versions of a document in document set ? Can any body help?
    I have tried but didnt find anyway .. how to get version history of a document in document set.
    Thanks in advance.
    SPSite site = SPContext.Current.Site;
    SPWeb web = site.OpenWeb();
    string ver = web.Url + "/" + sharedDocs;
    //Get the selected document
    SPListItem listItem = SPContext.Current.Web.Lists["Contract Documents"].GetItemById(99);
    if (listItem.FileSystemObjectType == SPFileSystemObjectType.Folder)
    //Get the folder
    SPFolder myFolder = listItem.Folder;
    //Make sure the folder has items
    if (myFolder.ItemCount > 0)
    //For each item get the document name
    foreach (SPFile item in myFolder.Files)
    string name = item.Name;
    foreach (SPListItem vh in myFolder.Files)
    SPListItemVersionCollection coll = vh.Versions;
    foreach (SPListItemVersion version in coll)
    var VersionLabel =version.VersionLabel;

    No Jenkis,, No thats my fault.. I forgot to add code below.
    And I have tried the below code which is fine getting versions but it is not retrieving current version.
    My case, i have a document with versions 1.0, 1.1 but here 
    filecollection.Count is showing 1. that is 1.0 version. Is any other way to get current version?
    SPSite site = SPContext.Current.Site;
    SPWeb web = site.OpenWeb();
    //Get the selected document
    SPListItem listItem = SPContext.Current.Web.Lists["Contract Documents"].GetItemById(99);
    if (listItem.FileSystemObjectType == SPFileSystemObjectType.Folder)
    //Get the folder
    SPFolder myFolder = listItem.Folder;
    //Make sure the folder has items
    if (myFolder.ItemCount > 0)
    //For each item get the document name
    foreach (SPFile item in myFolder.Files)
    string name = item.Name;
    SPFileVersionCollection filecollection = item.Versions;
    if (filecollection.Count > 0)
    foreach (SPFileVersion v in filecollection)
    var VersionLabel =v.VersionLabel;
    Thanks in advance.

  • Create a Webpart with Sharepoint Designer to see and upload documents in document set

    Hello,
    In a document set, we see documents in this document set and we can upload files and documents only in this document set.
    Can i save this view to other sites in webPart ?
    I tried to use sharepoint designer saving the dataview in a file and then import this file in other site but the result is that webpart show me the root of the library, not the document set and same for file uploads, it show me the file upload window for
    the root of the library.
    Thanks.

    Hi,
    Thanks for your answer.
    Yes, i linked source site collection from SPD; I don't want to send but i want to display document set in another site.
    Finaly, i found a solution but i don't know if its the best practice :
    i have all my libraries in the top site to have all important documents in one site.
    So i want to display a library/folder/document set in webParts to my subsites.
    To do this, i create a dataview in SPD; i save this dataview in a file and import this file as webPart in my subsites.
    my problem : It display the root of my library instead of within the document set. AND when i clic on "upload a document", it display the root of my library upload form instead of the document set upload form
    my solution : i create a dataview in SPD; i copy/past the document set upload form link in this dataview; I save this dataview in a file and import this file as webPart in my subsite; from the webpart of my subsite, i create a view to my document set.
    ... should i do it for all my views ? or is there another solution ?
    Thanks

  • SharePoint 2013 List & linked Document Set Project Help Needed

    I have struggling to find the best solution for a recent project. I'm sure someone will have a better suggestion than what I have come up with.
    Project Requests
    Project Tracking and Documents
    Status and other data
    Project Documents
    Offsite Syncing for active projects (SkyDrive Pro)
    Attempted Scenario
    1 List for Project Tracking
    1 Document Library for Project Documents (Document Set content type)
    I created a workflow to automatically create a new Document Set when an item was added to the list, then create a link to the Document set in a column called Documents. The goal with the document sets is to have them sent to another library (archive) when
    the project is marked complete. The reason is so that the user synching offline won't have so many document sets to sync or to browse through (there would easily be a few hundred within a couple of months)
    Is there a way to programmatically move the document set to an archive library when the list item status is set to complete?  And if the status were to change back to active, to move back to the active library. 
    Or maybe I am going about this the wrong way entirely?  All suggestions are greatly appreciated! 

    Hi,
    With Event Receiver, we can capture the ItemUpdated event of item of a list when the value of an item is updated, then perform the Document Set moving accordingly.
    Here is a step by step sample on creating a simple Item added event receiver for Custom List in SharePoint 2010:
    http://msdn.microsoft.com/en-us/library/ff398052.aspx
    More information on
    Event Receiver for your reference:
    http://msdn.microsoft.com/en-us/library/gg749858(v=office.14).aspx
    http://msdn.microsoft.com/en-us/library/ff408183(v=office.14).aspx
    Here is a thread with code demo about
    moving Document Set programmatically:
    http://social.technet.microsoft.com/Forums/sharepoint/en-US/1e8b1110-a719-4825-a300-cc1946f4d96a/document-sets-move-programatically
    Feel free to reply if there are still any questions.
    Best regards
    Patrick Liang
    TechNet Community Support

  • How to get Document Set property values in a SharePoint library in to a CSV file using Powershell

    Hi,
    How to get Document Set property values in a SharePoint library into a CSV file using Powershell?
    Any help would be greatly appreciated.
    Thank you.
    AA.

    Hi,
    According to your description, my understanding is that you want to you want to get document set property value in a SharePoint library and then export into a CSV file using PowerShell.
    I suggest you can get the document sets properties like the PowerShell Command below:
    [system.reflection.assembly]::loadwithpartialname("microsoft.sharepoint")
    $siteurl="http://sp2013sps/sites/test"
    $listname="Documents"
    $mysite=new-object microsoft.sharepoint.spsite($siteurl)
    $myweb=$mysite.openweb()
    $list=$myweb.lists[$listname]
    foreach($item in $list.items)
    if($item.contenttype.name -eq "Document Set")
    if($item.folder.itemcount -eq 0)
    write-host $item.title
    Then you can use Export-Csv PowerShell Command to export to a CSV file.
    More information:
    Powershell for document sets
    How to export data to CSV in PowerShell?
    Using the Export-Csv Cmdlet
    Thanks
    Best Regards
    TechNet Community Support
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
    [email protected]

  • How to create a Document Set in SharePoint 2013 using JavaScript Client Side Object Model (JSOM)?

    Hi,
    The requirement is to create ""Document Sets in Bulk" using JSOM. I am using the following posts:-
    http://blogs.msdn.com/b/mittals/archive/2013/04/03/how-to-create-a-document-set-in-sharepoint-2013-using-javascript-client-side-object-model-jsom.aspx
    http://social.msdn.microsoft.com/Forums/sharepoint/en-US/1904cddb-850c-4425-8205-998bfaad07d7/create-document-set-using-ecma-script
    But, when I am executing the code, I am getting error "Cannot read property 'DocumentSet' of undefined "..Please find
    below my code. I am using Content editor web part and attached my JS file with that :-
    <div>
    <label>Enter the DocumentSet Name <input type="text" id="txtGetDocumentSetName" name="DocumentSetname"/> </label> </br>
    <input type="button" id="btncreate" name="bcreateDocumentSet" value="Create Document Set" onclick="javascript:CreateDocumentSet()"/>
    </div>
    <script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"> </script>
    <script type="text/javascript">
       SP.SOD.executeFunc('sp.js','SP.ClientContext','SP.DocumentSet','SP.DocumentManagement.js',CreateDocumentSet);
    // This function is called on click of the “Create Document Set” button. 
    var ctx;
    var parentFolder;
    var newDocSetName;
    var docsetContentType;
    function CreateDocumentSet() {
        alert("In ClientContext");
        var ctx = SP.ClientContext.get_current(); 
        newDocSetName = $('#txtGetDocumentSetName').val(); 
        var docSetContentTypeID = "0x0120D520";
        alert("docSetContentTypeID:=" + docSetContentTypeID);
        var web = ctx.get_web(); 
        var list = web.get_lists().getByTitle('Current Documents'); 
        ctx.load(list);
        alert("List Loaded !!");
        parentFolder = list.get_rootFolder(); 
        ctx.load(parentFolder);
        docsetContentType = web.get_contentTypes().getById(docSetContentTypeID); 
        ctx.load(docsetContentType);
        alert("docsetContentType Loaded !!");
        ctx.executeQueryAsync(onRequestSuccess, onRequestFail);
    function onRequestSuccess() {       
        alert("In Success");
        SP.DocumentSet.DocumentSet.create(ctx, parentFolder, newDocSetName, docsetContentType.get_id());
        alert('Document Set creation successful');
    // This function runs if the executeQueryAsync call fails.
    function onRequestFail(sender, args) {
        alert("Document Set creation failed" + + args.get_message());
    Please help !!
    Vipul Jain

    Hello,
    I have already tried your solution, however in that case I get the error - "UncaughtSys.ArgumentNullException: Sys.ArgumentNullException:
    Value cannot be null.Parameter name: context"...
    Also, I tried removing SP.SOD.executeFunc
    from my code, but no success :(
    Kindly suggest !!!
    Vipul Jain

  • Document Set Creation in document library using REST API in Sharepoint 2013

    Hi,
    I want to create the document set using REST API call. Currently i am able to create the folder and able to upload the files using REST API's in the document library. Is there any way we can pass the contentype name or Id and create the document set using
    REST API call. We need to create the document set along with metadata and upload the files inside the document set.
    I need to create the document set along with meta data column values using REST API. Please let me know how we can achieve this through REST API.
    Thank you,
    Mylsamy

    Hi,
    According to your post, my understanding is that you wanted to create document set along with managed metadata fields.
    The REST API does not currently support working with Managed Metadata or Taxonomy fields.
    As a workaround, we can use the JavaScript Client Object Model.
    Create document set using JavaScript Client Object Model.
    http://blogs.msdn.com/b/mittals/archive/2013/04/03/how-to-create-a-document-set-in-sharepoint-2013-using-javascript-client-side-object-model-jsom.aspx
    http://social.technet.microsoft.com/Forums/sharepoint/en-US/aacd96dc-0fb2-4f0d-ab4c-f94ce819e3ed/create-document-sets-with-javascript-com-sharepoint-2010
    Set managed metadata field with JavaScript Client Object Model.
    http://sharepoint.stackexchange.com/questions/95933/add-list-item-with-managed-metadata-field-through-jsom
    http://sharepointfieldnotes.blogspot.com/2013/06/sharepoint-2013-code-tips-setting.html
    Thanks,
    Jason
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Jason Guo
    TechNet Community Support

  • How to find out the extension set version in R/3 Enteprise.

    Hi all
    I have an SAP system with kernel 640 and Basis and abap and other SPs at version 620.
    I am trying to install Auto id infrastructure. I have the following questions.
    1. With kernel level 640 should i take my system as R/3 4.7 or ECC5.0?
    2. How do i find the extension set version (2.00 or 1.10) of my R/3 4.7 system?
    Thanks in advance:)
    Regards,
    Hari

    Hi hari,
    Ofcourse your system is a R/3 4.7 System and as it is running on 620 stack hence the extension set is 1.10.
    for extension set 2.00 the stack level will be 630.
    The same can be confirmed at
    http://help.sap.com/content/documentation/r3/docu_sbs_r3_470.htm
    Please note the following:-
    a) SAP R/3 Enterprise Release 4.70 SR1
    SAP Technology Components Release 6.20
    <b>Extension Set 1.10</b>
    b) SAP R/3 and R/3 Enterprise 4.70 SR1
    SAP Web Application Server 6.30
    <b>Extension Set 2.0</b>
    Please update the thread status and reward the useful posts!
    Regards,
    Prem

  • Download older version of a file from SharePoint Document Library using CSOM and 404 error

    Hi,
    I am trying to download previous versions including Major and Minor versions of documents from SharePoint Online using CSOM. I get 404 error when I try to download the file. I found several posts on various discussion forums where people are getting same
    error but none of those have any solution/answer. Below is one of the threads and sample code I have tried that results in 404 error. If I use the link in browser directly, I am able to download the file. Also I am able to download the current version of file
    using CSOM without any problem, it is only the older versions that give me 404 in CSOM.
    http://qandasys.info/how-to-download-the-historical-file-version-content-using-csom/
    public int GetStreamFromFile(string docid, string lib, string fileurl, ClientContext clientContext, int iuserid, string Version, bool isCurrrent)
    if(!isCurrent)
    List LibraryName = clientContext.Web.Lists.GetByTitle(lib);
    clientContext.Load(LibraryName);
    clientContext.ExecuteQuery();
    CamlQuery camlQuery = new CamlQuery();
    camlQuery.ViewXml = "" + fileurl +
    Microsoft.SharePoint.Client.ListItemCollection collListItem = LibraryName.GetItems(camlQuery);
    clientContext.Load(collListItem, items => items.Include(item => item.Id, item => item["FileLeafRef"], item => item["LinkFilename"],
    item => item["FileRef"], item => item["File_x0020_Size"], item => item["DocIcon"], item => item.File.Versions));
    //clientContext.Load(collListItem);
    clientContext.ExecuteQuery();
    foreach (Microsoft.SharePoint.Client.ListItem oListItem in collListItem)
    //string fileurl1 = (string)oListItem["FileRef"];
    //string filename = (string)oListItem["LinkFilename"];
    foreach (FileVersion version in oListItem.File.Versions)
    if (Version == version.VersionLabel)
    //Added excutequery to get object one more time as per blog
    //http://social.technet.microsoft.com/Forums/de-DE/sharepointdevelopmentprevious/thread/88a05256-8694-4e40-863d-6c77512e079b
    clientContext.ExecuteQuery();
    FileInformation fileInformation = ClientOM.File.OpenBinaryDirect(clientContext,version.Url);
    bytesarr = ReadFully(fileInformation.Stream);
    Darwaish

    Hi,
    According to your description,
    I know you want to get older version of a file from SharePoint Document Library using Client Object Model.
    The following code snippet for your reference:
    public void GetVersions()
    ClientContext clientContext = new ClientContext(“http://SPSite”);
    Web site = clientContext.Web;
    clientContext.Load(site);
    clientContext.ExecuteQuery();
    File file = site.GetFileByServerRelativeUrl(“/Shared Documents/mydocument.doc”);
    clientContext.Load(file);
    clientContext.ExecuteQuery();
    ListItem currentItem = file.ListItemAllFields;
    clientContext.Load(currentItem);
    clientContext.ExecuteQuery();
    FileVersionCollection versions = file.Versions;
    clientContext.Load(versions);
    clientContext.ExecuteQuery();
    if (versions != null)
    foreach(FileVersion _version in versions)
    Console.WriteLine(“Version : {0}”,_version.VersionLabel);
    More information:
    http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.client.file.versions.aspx
    Best Regards,
    Dennis Guo

  • No actions for document sets in SharePoint Designer

    Hi,
    I am an SharePoint Online user and I want to create a workflow that copies/moves a document set from one library to an other library/repository.
    The problem is, that I don't have any actions concerning document sets in my SharePoint Designer. There should be an action "send document set to repository".
    I have already activated the content organizer feature. Did I miss to activate a feature? Are actions for document sets included in SharePoint Online?
    Thank you.

    Do the normal move item actions not work?
    The content organiser feature is slightly different. That allows you to use the Information Management policies which might be more appropriate as they let you move documents based on things like the time since last updated + 5 months.

  • Insert SharePoint document version in Word documents - Viewing in Word Web App

    Hello all,
    I'm using Labels with the label format {Version} to display the SharePoint document version in MS Office documents stored on my company´s SharePoint site. This works fine if I open the document from the Word client application but if I open it from Word Web
    App it displays the previous version number (a minor one). After half an hour or so, when I open the document in Word Web App, the version number is the correct one. I tought it was related with the IE cache so I cleaned it but the results were the same.
    Is there any way around this?
    Thanks a lot.

    Hi,
    By design. Versioning is a property of a SharePoint item. When displaying an item from SharePoint, Office Web Apps only checks if there has been any change to the file content. It does not check for changes in metadata (if the Properties of the file have
    been modified). It then displays the cached image of the last modified version of the file instead of running a new file conversion. This is why the last minor version is displayed in the Content Control instead of the major version. This behaviour is completely
    intended and designed to work this way. This is, in fact, a performance optimization. If we would not have this performance optimization in place, then this would mean that Office Web Apps would need to download the file again every time there is a metadata
    change (which would, of course, mean overloading the SharePoint server).
    I found a similar thread as below, please refer to it for workaround:
    https://social.msdn.microsoft.com/Forums/sharepoint/en-US/75c09197-934b-42ff-8de6-c321267dfd68/document-property-not-updated-when-viewing-a-word-document-in-office-web-apps
    Regards,
    Rebecca Tu
    TechNet Community Support

Maybe you are looking for