动态客户关系管理。 Change Lead - 注意默认合并关系

Dynamics CRM. Change Lead - Note default merge relationship

我们在 Dynamics CRM 2013 中遇到以下问题。当我们合并两个线索时,通常与这两个线索相关的所有内容都会合并,包括注释记录(注释)。问题是,当笔记合并时,它们不会保留原来的所有者,而是分配给主要的主要所有者。

我知道这是默认情况,没有直接的解决方案,因为即使将关系更改为 "Configurable Cascading" 仍然无法更改删除和合并关系。

但我想知道是否有任何第三方解决方案可以帮助我们保留所有者,否则当线索合并时我们不知道是谁在旧线索中最初写的注释。

我不知道我是否足够清楚我需要什么,所以我也附上了这个线程,它仍然没有得到答复,并确切地讨论了我们遇到的问题:

https://community.dynamics.com/crm/f/117/t/109936

所以我的问题与上面线程中的最后一个回复完全相同...是否有任何第三方解决方案或插件可以开发以在潜在客户合并后保留笔记记录所有权?

谢谢

应该可以使用一个非常简单的插件来做到这一点 - 只需创建一个插件,该插件将 运行在注释的预更新(注释)上运行。在插件中,您应该能够获得原始消息名称(通过检查父上下文),它应该是 Merge Message。如果是合并消息,只需从更新的属性中删除所有者。这看起来像:

public void Execute(IServiceProvider serviceProvider)
{
    var context = serviceProvider.GetService(typeof(IPluginExecutionContext)) as IPluginExecutionContext;
    if(context.ParentContext?.MessageName == "Merge")
    {
        var target = context.InputParameters["Target"] as Entity;
        target.Attributes.Remove("ownerid");
        target.Attributes.Remove("owningbusinessunit");
    }
}

我刚刚检查过它工作正常。当然,为了减少性能影响,您应该使用属性过滤来注册此插件,并且 运行 只有当所有者即将更改时(您在插件注册工具中指定此属性)。

如您所见,插件非常通用,因此您可以在任何实体上注册它,而不仅仅是在 Notes 上