0

Do you have any thoughts or general ideas how to create a something like changelog using InfoPath 2013 and SharePoint Designer 2013? I don't need to archive previous versions of my form, I just need to save as a text changes made from last edit in another TextBox. For example:

  • Field1: value changed from 'aaa' to 'bbb'
  • Field2: value changed from 'In progress' to 'Finished'

Please tell me if it is possible without coding or without using any other high-level methods. This is not a specific question, a specific solution I will do on my own, but for now I don't know how to start with it and every help, including "It is impossible without coding" will be appreciated.

2

I've done this a few times with this method:

Create an XML file that has fields for every form field you want to track and a change flag for each field. Load the XML as a secondary data source.

Add a ChangeLog field to the form's main data source.

When the form is opened, use rules to load the current values of the fields you want to track into the fields of the XML data source (set a field's value).

Set rules on each of the form fields you want to track. When the field is changed, set the XML change flag for that field from 0 to 1. You can also tally up all change flags in a total field in the XML source.

Before the form is saved, check the XML flag total field. If it is greater than 0, some of your tracked fields have been changed. Now go check all the change flags. For each change flag that has a value of 1, take its corresponding XML value field (the old value), and the current form field value (the new value). Append these to the ChangeLog text field with a bit of explanatory text.

I've had situations where I also added time stamps and user name to the change log field. Along the lines of Change by Joe Bloggs on 1/1/2017: Status from "open" to "closed"; Color from "green" to "blue".

It's not too complex, just a bit of manual work in the setup.

The thing to understand is that an XML data source, even though it is created as a data source to read from, can very well be used to write into while the form is open. That can be a very powerful tool. You can create your own XML file with Notepad. If you need to make changes, like add more fields, just re-upload the file and re-do the data connection with Next-Next-Finish.

  • Thanks. By saying 'change flag' you mean Boolean field which will change value to TRUE when field was edited? – tm_ May 31 '17 at 7:43
  • 1
    I just use a 0 or a 1 in an XML text field. I don't know if these simple XML files understand Boolean. – teylyn May 31 '17 at 19:39
  • Finally I created my changelog without using XML file. I just created another fields which are responsible for collecting 'old' data (data before edition). If this 'old' data differes from data after edition a changeog is updated. Thanks for help and for good advices. – tm_ Jun 26 '17 at 5:44
  • 1
    The fields you created will be fields that are stored in the list and they will take up storage space and make the list structure more complex. The beauty of an XML file as a secondary data source is that the values are calculated dynamically and don't take up space in your list. It's entirely possible to use SharePoint list fields, of course, but an XML file is a much more efficient way, because you don't really need to STORE the data, just keep a copy of it while the record is being modified. That is where the XML file is more efficient. – teylyn Jun 26 '17 at 9:09

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.