3

I have a date field in a document set content type. My working environment is in SharePoint online and I am implementing this workflow specifically in Sharepoint Designer. I am keeping 2 other hidden date fields to keep track of the current date and previous date.

The only way I have managed to achieve this, is by creating a workflow which runs on item changed (which means when a column is edited from the document set). Then at the start of the workflow, I check whether Date is different to HiddenDate1 and if yes I do the logic. i.e. set Date to HiddenDate1 and HiddenDate1 to HiddenDate2. This way the HiddenDate2 is always the previous and Date is always the current.

I would like to initiate the workflow just when the Date field specifically is changed, contrary to having to still access the workflow to check the condition in the first step, when any column in the document set is modified. By doing this, I will get rid of unnecessary workflows being run in the background (the system is already overflowed with workflows, and if I had to add a workflow for each document set type, I would need to add at least 10 more) and this will also prevent the document sets from changing versions unnecessarily.

Thanks for your help in advance.

2 Answers 2

1

There is no OOB way to start a workflow based on a change in a single column. Your strategy is the one that is generally used. Another possibility is to have a "master" workflow that checks to see which field changed and then starting the appropriate workflow. This could make testing scenarios easier. Also, if you're monitoring 10 columns, this would mean always running two workflows instead of 10.

2
  • Thanks for your reply. I had never heard about your suggestion. A quick online search did not yield many results. Any link I can follow to learn more on how I can make a workflow actively check for changes in specific columns ? Mar 22, 2017 at 8:46
  • Sorry, I was suggesting a different organization of your method. There is no way to kick off a workflow based on a column change. Your method of comparing the current value to the previous value is the common method that others use. My suggestion is merely that having 10 running workflows is challenging to troubleshoot and manage, so that number can be reduced. You'd still have 10 workflows, but only two would run in any given situation. (the master would run, figure out which field changed, and then run the appropriate child workflow).
    – Mike2500
    Mar 22, 2017 at 12:12
0

I have had to do something similar in the past in order to have an email sent. You will need to utilize variables and a secondary "helper" column to do it. This will allow for the ability to keep track of the pre-change state of the fields.

enter image description here

Source

2
  • Hi ! Thank you for your reply. From what I can understand, your solution is the same like mine! This will still require access to the workflow. I would like to initiate the workflow only if a column changes, not initiate the workflow and decide whether to do the logic or not based on a condition in the workflow. In the latter case the workflow would still need to be fired and that is what I dont want! Mar 22, 2017 at 8:41
  • You should be able to add the action wait for field to change, in essence it will pause until a change is made. Mar 22, 2017 at 12:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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