0

我在 Microsoft CRM 2011 中有一个工作流,它会在某个字段更改时触发。
当此工作流触发时,它将首先检查 flag 的布尔值:如果值为yes,则将其设置为no ,否则如果 flag 值为no,则创建另一个“XYZ”实体。

我的问题是:当我将标志值更改为no时,它会再次触发并创建另一个实体“XYZ”。

4

1 回答 1

0

发生这种情况是因为您的插件无限循环,因为它一遍又一遍地触发自身。

您可以使用 IExecutionContext.Depth 属性防止循环

http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.iexecutioncontext.depth.aspx

IPluginExecutionContext context = IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

if (context.Depth > 1) { return; }

当您的深度大于 1 时,这将取消您的插件。

于 2013-08-27T12:33:10.877 回答