在Microsoft Dynamics CRM 4.0中创建插件时,您可以使用以下内容检查导致插件触发的事件的来源.
public void Execute(IPluginExecutionContext context) { if (context.CallerOrigin.GetType() == CallerOrigin.WebServiceApi.GetType()) { return; } plugin code here... }
这将允许您检查操作是由表单中的用户,Web服务还是工作流等引起的…
我有一个同步应用程序,它通过WCF创建和更新实体,并且不希望插件在发生这种情况时执行,只有当用户编辑实体时(以防止同步过程中出现无限循环).
IExecutionContext.CallerOrigin已在MS Dynamics CRM 2011中删除,那么新的方法是什么?
我想可能有一种方法可以在WCF调用中设置IExecutionContext.CorrelationId,然后检查插件中的特定Guid,但我还没有运气.