2017-05-04 79 views
0

我們在Dynamics CRM 2013中存在以下問題。合併兩個潛在客戶時,通常會合並與這兩個潛在客戶相關的所有內容(包括註釋記錄(註釋))。問題是,當筆記合併時,他們不保留他們擁有的原始所有者,但他們被分配給主要所有者。Dynamics CRM。更改潛在客戶 - 注意默認合併關係

我明白這是默認情況下,並沒有直接的解決方案,因爲即使將關係更改爲「可配置級聯」,仍然無法更改刪除和合並關係。

但我想知道是否有任何第三方解決方案可以幫助我們保護所有者,否則,當合並銷售線索時,我們不知道誰是最初在舊銷售線索中編寫筆記的。

我不知道如果我是我需要什麼,所以我安裝這個線程也已沒有得到答覆和有關問題正是會談,我們有足夠清晰:

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

所以我的問題是與上面線索中的最後一個回覆完全相同......是否有任何第三方解決方案或插件可用於開發合併之後保留備註記錄所有權?

謝謝

回答

0

應該可以用一個非常簡單的插件來做到這一點 - 簡單地創建這將在註釋(Annotation)的預更新運行的插件。在插件中,您應該能夠獲取原始消息名稱(通過檢查父上下文),這應該是合併消息。如果是合併信息,只需從更新的屬性中刪除所有者。這看起來像這樣:

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"); 
    } 
} 

我剛剛檢查,它工作得很好。當然,爲了減少性能影響,您應該註冊此插件並使用屬性過濾,並且僅在所有者即將更改(您在插件註冊工具中指定此屬性)時運行它。

正如你所看到的,插件是非常通用的,所以你可以在任何實體不僅說明

其註冊
+0

非常感謝你爲這個!我會嘗試並測試結果。這對我們來說確實是一個很大的問題,因爲它在合併時混淆了領先的歷史。再次感謝! – Ermal

+0

謝謝帕維爾!它工作得很好。只有「?」在我刪除的「ParentContext?.MessageName」中。我還添加了「修改過的」和「修改過的」屬性,並且它非常完美。再次感謝! – Ermal

+0

我很高興,但要小心刪除這個「?」 - 如果你會在筆記上進行正常的更新,你將不會有ParentContext,所以你的插件會拋出一個空的引用異常(除非你以某種不同的方式檢查了ParentContext的存在 - 如果你確實檢查過,那麼?不是必要)。 –

相關問題