none
Looping SharePoint Designer 2010 workflows are blocked RRS feed

  • Question

  • Hi,

    I have been experiencing issues with the "Start workflow automatically when an item is created" functionality I can enable in SharePoint Designer.

    I first add a new item to a list (List A), and the associated workflow is triggered.

    After processing this item for a few steps, the workflow creates a copy of the item (using the Copy item in ___ to ____ functionality) in another list (List B) I had previously created. It then deletes the current item (Delete item in ______), and ends.

    The List B also has a workflow associated with it. When the new item is created (copied in), it triggers this second workflow. After processing some more, it (in certain cases) goes and returns the item to List A in the same way (Copy item, Delete item).

    Strangely, this does not retrigger the workflow for List A. 

    EDIT 3: I have discovered why this seems to be happening. Microsoft has seen fit to include an undocumented "feature" specifically designed to break my attempts at building a looping workflow. When a workflow is triggered for a second time in one chain, it throws a "AutoStart Workflow: Microsoft.SharePoint.SPException: Recursive workflows are not permitted" error, and stops working.

    What I am looking for now is some advice on how to get around or disable this "functionality". It was not present in MOSS '07, and pretty much makes SharePoint 2010 useless for my purposes. Considering this "feature" is completely undocumented, it stands to reason that Microsoft should be able to help me either get around it or point me to some software that doesn't come with these restrictions.

     

     

    • Edited by craig12222222 Tuesday, July 6, 2010 5:44 PM Updated title
    Thursday, July 1, 2010 3:34 PM

All replies

  • I actually have successfully created the looping functionality on at least two projects that I have worked on. I will explain:
    I essentially (as several Posts will state), have created "two" workflows that are exactly the same that fire off of each other based on:
    start this workflow when an item is changed or added. The way that I stop the workflows from going into an infinite loop is to set up a column on my list item that flags the record to to say that a certain condition has been met, so stop processing the workflow. So the design of the workflow is as follows:
    List A (Content Type - MyContentType), List B (Content Type - MyContentType - is a child of the content type that list A is based on for inheritance with additional fields).
    List A has a column named WorkFlowVarSet, this is my flag field, it also has a counter field that controls the number of items that I want to copy to my List B
    When the workflow is initialized (on add), it takes the number of items that I request to be copied to list B and looks at the numbers of Items that I requested to be copied to my child List (b) and (--) decrements the number of items requested, once the number of items have been copied to my child list decrements to 0, the workflows stop initiating and terminate.
    This is the only way that I found to get looping to work with share-point designer.
    Other than that, I would create a custom sequential wf with visual studio 2010 (in which you have a lot more control - and debugging as well). They have also made creating custom workflows a who lot easier to create in terms of not having to fiddle around with configuration files, its "super" easy now to deploy custom workflows to you sharepoint site

     

    Monday, July 26, 2010 9:39 PM
  • LionelJones5516, How many times does the looping succesfully run?

    This is what i have tested.

    Create a List. Add a number column to the list and set the default to 100.

    Attach 1st workflow to the list. Start when item created and item changed.

    • If number column is creater then 1
    • Subtract 1 from column number and set in variable A
    • Update current item (set column number to variable A)

    Attach 2nd workflow to the list. Start when item is changed.

    • If number column is creater then 1
    • Subtract 1 from column number and set in variable A
    • Update current item (set column number to variable A)

    When i create an item the 1st workflow starts, which will fire the second, and so on. Each time the number column is subtracted by 1, so you can monitor how many times the workflow loop will run succesfully.

    Now this is where i get confused. Most of the times the loop will run 11 times (1 onadd and 10 onchange). Then i get the "AutoStart Workflow: Microsoft.SharePoint.SPException: Recursive workflows are not permitted" in the log. But sometimes it will run longer (13 or 15 times) I have tested this with multiple farms and experienced the exact same problem. It never runs to 1.

    This functionality was working in Moss 2007 Sp2. It looks like there is some limit for recursive workflows in SharePoint 2010.

    So how do we disable this threshold? Anybody??

    Marc

    Thursday, July 29, 2010 9:53 AM
  • Did some futher testing. When i add a pause (of one minute) to 1st workflow it will completely run down to 1. It's no solution, since a countdown from 100 will take about an hour, but it looks like the speed in which the 1st and the 2nd workflow follow up on each other is the culprit.

    Marc

    Monday, August 23, 2010 9:33 PM
  • Hello,

    I have written a blog on how to configure a SPD looping workflow, I think this may help you, the blog is located here:

    http://sharepointgypsy.blogspot.com/2011/01/sharepoint-designer-workflows-2.html

    Thanks!

    Tom


    Tom Molskow - SharePoint Architect - Microsoft Community Contributor 2011 Award - Linked-In - SharePoint Gypsy
    Wednesday, April 20, 2011 12:53 PM
  • Hi, Marc

    Did you found other solution to run a loop for more then several times without 1 minute pause?

    I' ve got the same problem as you. In WSS 3.0 there was no problem with such loops. After my project was transfered to SP 2010 one of the key functionality was stopped. I can't go back to WSS 3.0. It's horrible!

    Can you support me with any ideas?

    Maciej

    Wednesday, May 4, 2011 10:30 AM
  • I dont see any further discussion on this topic....  does anybody have any solution other than adding a pause to the workflows? I am having the same problem that Marc described above... without a pause... it stops processing after about 6 items...
    Monday, August 22, 2011 8:59 PM
  • Hi

    Does anybody from Microsoft read this forum!?

    I'm stil searching for soultion, but found nothing.

    Maybe someone knows any other usefull url?

    Bstrg

    Maciej 

    Tuesday, August 30, 2011 9:33 AM
  • Same problem here... just upgraded from 2007 to 2010 and one of our "looping" workflows will only create 5 items. Every time I run it stops at 5. It also updates 5 records for a total of 10 changes so maybe there's some threshhold that can be increased or ignored?
    Friday, September 23, 2011 7:05 PM
  • Hello,

    What design are you using for the looping?

    Thanks!

    Tom


    Tom Molskow - SharePoint Architect - Microsoft Community Contributor 2011 Award - Linked-In - SharePoint Gypsy
    • Edited by Tom Molskow Tuesday, September 27, 2011 5:48 PM
    Tuesday, September 27, 2011 5:48 PM
  • Hello,

    I believe this will solve the issue for you - or at least it's worth a try (this information is an extract from this blog - http://www.dev4side.com/community/blog/2010/12/1/bug-using-delay-activity-on-sharepoint-2010-workflow.aspx)

    In order to make a workflow using a Delay activity work, you need to set a property on the site where you intend to run your workflow, through STSADM utility.
    The property is "jabo-workflow", which should be valued with "Every 5 minutes between 0 and 59".

    So, firstly we try to print the actual value of the property at issue:

    stsadm -o getproperty -pn job-workflow -url http://siteurl

    Then, we can set it:

    stsadm -o setproperty -pn job-workflow -pv "Every 5 minutes between 0 and 59" -url http://siteurl

    When you are done with all the operations through STSADM utility, you should remember that you need an IISRESET and a restart of SharePoint timer service.

     

    I hope that helps!

    Tom


    Tom Molskow - SharePoint Architect - Microsoft Community Contributor 2011 Award - Linked-In - SharePoint Gypsy
    Tuesday, September 27, 2011 6:31 PM
  • the same problem - process stops after 5 items....any solution?

    Thanks

    Marcin

    Monday, October 10, 2011 10:40 AM
  • Hello,

    I have tested this too and it is definately a new problem in SPS 2010 that wasn't a problem in SharePoint 2007.  The good news is I have written a new blog that helps resolve this issue:

    http://sharepointgypsy.blogspot.com/2011/11/create-for-each-loop-for-workflows.html

    Thanks!

    Tom

     


    Tom Molskow - SharePoint Architect - Microsoft Community Contributor 2011 Award - Linked-In - SharePoint Gypsy
    Friday, November 4, 2011 2:36 PM
  • Dear Tom

    I think you've complicated the problem too much.

    The "key" of solution is 1 minute pause between starting next loop action. But it was mentioned by Marc 23th August 2010 and confirmed by me in May this year.

    Bsrg

    Maciej

    Monday, November 7, 2011 7:33 AM
  • Hello Maciej,

    I will try that and see if it works for me.

    Thanks!

    Tom

     

     


    Tom Molskow - SharePoint Architect - Microsoft Community Contributor 2011 Award - Linked-In - SharePoint Gypsy
    Tuesday, December 13, 2011 1:08 PM
  • Tom, your blog solution posted above is awful! It doesn't address the madness that we are all experiencing in that to iterate a list we need to pause 1 min (and on my farm it seems like the job timer default is 5 min!!!). This means my recursive WF that needs to execute 36 times, takes 3 hours to run!, when actually, if Microsoft (in its infinite wisdom!!) hadn't block recursivness, the WF would run and give the user feed back in less than a minute.

    I think all of us developing WF in designer got used to the SP2007 method of "lacing" 2 WFs and 2 lists together to fire back and forth off of each other, but has anyone figured out a way to executed a proccess multiple times (more than 11)  without having to build in the ridicoulous pausing?

    Thanks for any help, this is sooooo frustrating.

    Sunday, May 20, 2012 12:36 PM
  • Yes, I think we can all ingore Tom's post. I think he just wants to drive people to his blog. He seems remarkably deaf to the fact that we are all looking for a successful method of looping without PAUSING! His solutions all require the 1 min pause which basically makes his suggested methods foolish.

    I have at least been able to execute looping in "batches" of loops, stopping each "batch" at 9 and then doing a redirect to another list, pausing for 1 min (tho on our farm the 1min=5min is this a settting on the farm), and then resuming. Very kluge and hard to work with.

    MICROSOFT ARE YOU LISTENING??????

    Sunday, May 20, 2012 12:44 PM
  • I had the same problem. I went through all the tages of pausing and trying to get this working in 2010 unfortunately without success. At the end I decided to write simple event receiver which loop through my list when item is updated.

    If anyone is interested I am happy to share solution.

    Monday, May 21, 2012 7:04 AM
  • Hey Granola911,

    First, when you are in these forums you should conduct yourself as a mature professional.  If you can't do that then please go somewhere else because none of us need this childish ranting.

    Second, I know the pauses are a problem, unfortunately, the For-Each Loop capability in the new SPD 2010 workflows just doesn't work like it did in SPD 2007, so my solution is intended to just make the best of a bad situation.  If you are not restricted to using SPD 2010 for your solution then suggestions like Marion C's are obviously a much better way to go.

    Thanks!

    Tom


    Tom Molskow - Senior SharePoint Architect - Microsoft Community Contributor 2011 and 2012 Award - Linked-In - SharePoint Gypsy


    Monday, May 21, 2012 3:28 PM
  • Hi, Marcin

    I'm very interested in your solution. Could you write something more how it works, what is needed to implement it, etc.

    Maciej

    Wednesday, May 23, 2012 8:23 PM
  • I'm using SharePoint Online and I can't even get the solution with the 1 minute pause to work (which would actually be fine in the case that I need it for) because the workflow never resumes after the pause. Anybody have any experience or, better yet, a solution for this?

    Thanks,

    Mathias

    Thursday, July 5, 2012 6:54 PM
  • Hey Mathias_DC,

    Have you tried the solution I posted on my Blog? 

    Create a For Each Loop for Workflows Using SharePoint Designer 2010

    In my design the pauses are 2 minutes, but I found that I had to work with the pause duration to get it just right for my environment.

    As for a solution, there is none I know of aside from the types of work arounds I designed.  Preventing looping is intentional behavoir in SPD 2010 workflows.  The good news is that in SharePoint Designer 2013 there is a new loop action (and a state action!) that will overcome this problem for all us.

    I hope that helps!

    Tom


    Tom Molskow - Senior SharePoint Architect - Microsoft Community Contributor 2011 and 2012 Award - Linked-In - SharePoint Gypsy

    Thursday, July 5, 2012 8:51 PM
  • Tom,

    Thanks for your reply. I actually ran into this problem while I tried implementing the 3-list approach you described to get around the blocked looping workflows issue. With SharePoint online, however, an additional problem seems to be that the workflows simply never resume after pausing. I've tried with pauses of varying length (0, 1, 2, 3, 5 minutes) and none of them ever wake up again. Well, I did have a few of them continue eventually - about 5 days later! I think I read somewhere that after a server restart, pending timer jobs are reevaluated, so that's what may have happened, but that's obviously not something you want to have to rely on  :)

    I'm starting to wonder whether maybe SharePoint online in its current incarnation is just not very useful as a platform for actual applications that go beyond really, really simple steps, which would be a shame since it's one of the few feasible SharePoint options for many small organizations that don't have their own IT staff and can't afford to rent a dedicated hosted server.

    The MS support staff in the forums is not very helpful either in this respect, since in the Office365 forums they will tell you that they don't provide support for "customized workflows" (even though the problem is with one of the standard OOTB functions in SP Designer) and recommend asking in a programming forum, whereas the moderators here on technet like to send you to the Office365 community forums because the question is about SharePoint online .

    I guess I'll try submitting a service request, but I'm not getting my hopes up.

    Thanks,

    Mathias

    Friday, July 27, 2012 1:02 AM