2010-02-26 94 views
0

我正在擴展一些CRM標註以添加額外的功能,我被告知不會因兼容性原因將它們重寫爲插件。在牽頭實體的後更新中,如果牽頭實體上的某個屬性發生更改,我想執行一些額外的操作。我的標註是corectly註冊和鉛更新之後觸發並運行與下面的簽名Microsoft CRM 4.0標註

public override void PostUpdate(CalloutUserContext userContext, CalloutEntityContext entityContext, string preImageEntityXml, string postImageEntityXml) 
{ 
} 

的overidden方法從我的理解,我可以deserialise preImageEntityXml和postImageEntityXml到DynamicEntity對象,這樣我可以計算出發生了什麼變化。然而,preImageEntityXml和postImageEntityXml都是空的,我不能解決原因。

回答

2

真的很遺憾您不能將插件重新編寫爲插件。插件可以在這裏完美工作,因爲您可以註冊您的步驟,只有在特定屬性發生變化時纔會觸發。這樣你的插件就不會在指定實體的每次更新上運行(比如標註)。

雖然我寫了3.0標註已經有一段時間了,但是我記得有一個callout.config文件,您可以在其中指定想要傳遞的標註前後值。也許沒有爲註釋標記註冊前後值?

<callout entity="lead" event="PostUpdate"> 
<subscription...> 
    <prevalue>... 
    ... 
    <postvalue>...