0

We have a SharePoint 2013 list where we keep project information, and the form has been customized with InfoPath 2013. There are around 300 fields in the form/list, and I'm tasked with implementing some kind of change-tracking for it. I've tried the following without success:

  • Repeating table in the form (can't be used with a list form)
  • Create copy of current form as backup (list form, always updates current item even if title field is changed)
  • Web service that writes changes to duplicate list (requires CAML batch file, and web service call fails half the time)
  • Sharepoint Versioning (doesn't show what changed, and forms are updated too frequently to be practical for this)

I'm hitting a wall, so I'm hoping someone has already found a solution for this sort of thing. I'm somewhat flexible in that this can work one of two ways:

  1. User uses form normally, and all changes are automatically tracked/logged
  2. User clicks a "Change Request" button (or something) that triggers the tracking, which can be either A) backing up the pre-changed form, or B) creates a new copy of the form with a different name/title value.

This is SharePoint 2013 on-premises. Users do not have the InfoPath client installed and my manager has stated that we will not be doing so since it is going away. Therefore I'm stuck with browser-only options. I'm also stuck with InfoPath, as we do not have any other form applications for this. And I'm stuck with using a list form since HR needs the ability to update metadata on multiple forms at once, which is not possible with promoted fields.

As you can see, I'm in a bit of a bind. I'm looking into building a web application with a SQL database to replace this, but given my limited experience with code, that's going to take a while.

Is there a way, within these limitations, to track changes made to a list item?


Solved

Here's what I ended up doing. I added a second submit button to the form, and users will click that one when requesting a change to the project. The new button submits to a duplicate of the original list, and new items in that list kick off a workflow. The workflow does some checks, updates the title of the list item by appending "_CR" and the date. After that, the workflow copies it back to the original list and emails the user a link they can open for the new form.

The end result is that everything is still in one list as required, with changes clearly noted in a separate form. It's not elegant... in fact, it's pretty clunky... but it works. It will also meet our auditing requirements, which is the ability to prove who submitted what changes and when.

1

Here is a way you can have a try. Use SharePoint Workflow to copy list item to a backup list.

You will need to install SharePoint Designer on your machine. But the users can use it directly. The idea is like this. Create a list workflow to copy the list item to your backup list. Update the title of the new item with the original one adding the date for tracking.

For the trigger, you can use the SharePoint Designer to add a custom action in the list ribbon. Users only need to save the list item. Select the item and click on the action button, the workflow will be triggered to copy the list item.

Here is a video you can check. I tested with a sample and works in my end.

| improve this answer | |
  • This is fairly similar to what I ended up doing. I basically ended up using a workflow to copy the item to a duplicate list, then copy back to the original. It's not elegant, but it appears to work. – Omegacron Nov 4 '19 at 16:36
  • @Omegacron Nice Work. Glad to here you find a way to do it. You can mark the reply as answer if it helps you. – Jerry_MSFT Nov 5 '19 at 1:21
1

I would go with the versioning option and set it to keep only major versions.

https://support.office.com/en-us/article/enable-and-configure-versioning-for-a-list-or-library-1555d642-23ee-446a-990a-bcab618c7a37#OfficeVersion=2016,_2013

Given the large number of fields, it might be tricky seeing what changed in the version history. One option might be to create a daily or weekly alert on the list. This should show all the changes that has taken place.

| improve this answer | |
  • Unfortunately, the vanilla versioning won't work for this. If a user doesn't type a comment when they check-in their changes, there won't be any kind of reference as to what was changed, only that it WAS changed. – Omegacron Nov 1 '19 at 22:43
  • I see....... How about adding a comment field which is a multiple lines of text field. You would then select the option to append changes to existing text in the column settings. That way, whenever a user types a comment into the comment box, the previous comments would still be there. – Donspeck Nov 1 '19 at 23:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.