我们在Dynamics CRM 2013中遇到以下问题。当我们合并两个潜在客户时,通常会合并与这两个潜在客户相关的所有内容,包括备注记录(注释)。问题是,当合并笔记时,他们不会保留他们拥有的原始所有者,但是他们被分配给主要所有者。
我理解这是默认情况下没有直接的解决方法,因为即使将关系更改为“可配置级联”,仍然无法更改删除和合并关系。
但是我想知道是否有任何第三方解决方案可以帮助我们保护所有者,因为否则当合并潜在客户时,我们不知道谁是最初在旧导致中写下的。
我不知道我是否对我需要的内容足够清楚,所以我也附上了这个线索,但仍然没有回复,并且正在谈论我们遇到的问题:
https://community.dynamics.com/crm/f/117/t/109936
所以我的问题与上面线程中的最后一个回复完全相同...是否有任何第三方解决方案或插件我们可以开发以保留主要合并后的票据记录所有权?
谢谢
答案 0 :(得分:0)
应该可以使用一个非常简单的插件来完成它 - 只需创建一个将在Pre-Update of Note(注释)上运行的插件。在插件中,您应该能够获得原始消息名称(通过检查父上下文),这应该是合并消息。如果是Merge消息,只需从更新的属性中删除所有者。这看起来像是:
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");
}
}
我刚刚检查过它工作得很好。当然为了降低性能影响,您应该使用属性过滤注册此插件,并仅在所有者即将更改时运行它(您在插件注册工具中指定此属性)。
正如您所看到的,插件非常通用,因此您可以在任何实体上注册它,而不仅仅是注释