locked
Infinite Loop Detection RRS feed

  • Question

  •  

    OK, in CRM 4, as I understand the infinite loop detection - a workflow will stop on the 8th call of a workflow calling itself on the same entity.

     

    So....

     

    If a workflow calls a child workflow, other than itself...it seems that the infinite loop detection considers this the same workflow anyway....that is, if I have Workflow1 call Workflow2 call Workflow3...etc all the way down to Workflow8, the last call will fail, even though they are technically separate Workflows.

     

    This is a problem because we are taking our workflows and breaking them out into several child ones to allow us to modify the process at certain steps as needed.

     

    Is there any way around this other than putting everything into 1 giant workflow?  If we put this into 1 workflow...it's going to be HUGE and quite unmanageable in the web interface...not to mention that since we cannot move steps around...if we ever needed to...we'd have to rewrite the entire workflow - not good!

     

    Is there a way to turn this off???

    Tuesday, November 11, 2008 10:20 PM

Answers

All replies

  • Kevin;

     

    The short answer is that there is no officially supported way to change the maximum call depth at this time. Neither the Deployment SDK or the CRM Web application support changing the depth.

     

    Unofficially, I can tell you where the depth is kept in the CRM database. Look in the DeploymentProperties table of the MSCRM_CONFIG database on the CRM server. By default, the MessageProcessorMaximumDepth column has a value of 8.

     

    I have no knowledge or experience in manually changing (increasing) this value, so do so at your own risk on a test server.

     

     

    PeterH

     

     

    Friday, November 14, 2008 1:22 AM
  • You can change this with the Deployment Config Tool, which is available here - http://www.microsoft.com/downloads/details.aspx?FamilyID=6e211231-30fe-4df2-9b81-15cfb87adcf1&displaylang=en

     

    The following sets the value to 12:

     

    microsoft.crm.deploymentconfigtool.exe workflowsettings update -maximumdepth:12

     

    Friday, November 14, 2008 12:30 PM
    Moderator
  • Wow, didn't even know that tool existed.

     

    At the moment, we are using CRM Live...so, it won't help for now...but we are in the process of installing OnPremise - in which case, it will help out.

     

    I'll have to test this on the VM Environment I setup the other day.

     

    Thanks!

     

    ** edit **

    Tested in the VM Environment...and it works...of course.  One strange thing however, it seems that you have to add "2" to the number of workflow you want to be able to run.  That is, if you want the loop detection to allow 10 child calls, you need to set this number to 12.  Not sure why...but, whatever...it works!

    Friday, November 14, 2008 2:36 PM
  • Will CRM 4.0 still be supported by Microsoft after we use the Deployment Config Tool to change any of config parameter?

    Thanks
    darrmerc
    Tuesday, May 5, 2009 11:21 AM
  • Question: is this within a certain time-frame?  Or, if the multiple calls to child workflows are spaced out, say, a month, will duplicate detection still pick it up?
    Thanks, God bless! Michael C. | Using Win 7, IE9, CRM 4.0 - Rollup 15
    Wednesday, October 26, 2011 4:59 PM
  • Hi kevin,

    could you please tell me I am not able to see the MessageProcessorMaximumDepth column on the DeploymentProperties table of the MSCRM_CONFIG database .

    please see below columns and let me know..

    Friday, June 8, 2012 9:50 AM
  • It's a record in that table, not a field. There's about 100 records in this table containing various server settings and this is just one of those settings.

    MessageProcessorMaximumDepth is stored in ColumnName where IntColumn is the value that you want (as said previously, 8 by default). You'll need to run an update on this table to change it, something like UPDATE [MSCRM_CONFIG].[dbo].[DeploymentProperties] SET IntColumn = 9999 where ColumnName = 'MessageProcessorMaximumDepth

    As mentioned before, make sure you try this out on a test server first.

    Tuesday, September 25, 2012 9:06 AM
  • Took me sometime to figure out, might help someone :)MessageProcessorMaximumDepth
    Tuesday, September 30, 2014 11:16 AM