This is part of my workflow which works fine:

wait for status to equal B

If current Item:status equals B
and Variable:IsItemApproved equals No

set status to A

My problem is that it only works one time. i.e. the first time the user changes the status field in the document set to B, if it is not approved yet the field will change to A. However if the user again set the status to B nothing happen any more!

PS: I have already checked these boxes for the workflow:

  • Start this workflow when a new item is created.
  • Start this workflow when an item is changed.

2 Answers 2


Check in your Sharepoint Designer to see if your group has enabled "Loop" in workflow manager. The "Loop" function will show up in SharePoint designer in the ribbon in the workflow and insert section.

What you need is some sort of loop, either a for-style loop that will run for n-iterations or a while-style loop that runs while a condition is met.

Outside of that your workflow is only set to "run once". I.e., it will trigger and wait until the condition is met. Once the condition is met it will automatically stop. You can set up some logging to prove this to yourself.

You will need to create another step or use some logic that forces the workflow to either start again, place itself back in a waiting mode or go down the rabbit hole and writing a multitude of manual loop actions.


End of the workflow action, add one more action is "Stop workflow and log -------". then check may it will be works.

One more suggestion is just avoid the wait action, the wait action unnecessarily fired and stop the workflow.

  • I added this line to the end of my workflow: stop the workflow and log Current Item: status But it is still the same. Regarding to your second suggestion: when I remove the wait it is not working at all.
    – d d
    Commented May 24, 2013 at 11:13
  • After change the status is equal to B, please check your workflow status (in progress or not ) Commented May 24, 2013 at 11:19
  • I checked. it is in progress. what should I do next?
    – d d
    Commented May 24, 2013 at 14:24
  • you just modify the condition why because whenever start the workflow second time you capture the status is in progress. If current Item:status equals B and Variable:IsItemApproved equals In progress Commented May 27, 2013 at 4:45

Your Answer

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

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