2017-03-28 68 views
-2

我有一個實體在更新消息上註冊了4個插件。CRM 2016插件發射不一致

兩個插件在預操作流水線階段註冊,兩個插件在操作後流水線階段異步註冊。所有四個插件都有不同的過濾屬性。

只要輸入Execute方法,每個插件都會將其上下文序列化爲xml文件。這是功能烘焙到我們有一個基類,我沒有理由相信這會失敗。

當測試相同的記錄更新時,我得到不一致的結果。

有時候只有預處理管道插件會觸發,有時候所有四個插件都會觸發。

奇怪的是,我可以通過我正在測試的記錄的價值來判斷,所有四個插件都被解僱了。然而在很多情況下,沒有生成序列化的上下文文件

我已經嘗試將兩個異步插件更改爲同步,並且似乎暫時解決了該問題。我也嘗試過禁用預處理插件並只讓異步觸發。

有沒有人處理過類似的問題?

+0

我還沒有看到這個問題;需要考慮的一件事是插件會共享一些上下文項,所以根據您的基類的構建方式,可能會涉及一些緩存 – jasonscript

+0

請參閱此MS文章:https://msdn.microsoft.com/en-us/library /gg328263.aspx – jasonscript

+0

我認爲這隻能通過調試插件來解決 – Alex

回答

0

歡迎來到調試插件的地獄。作爲一個最佳實踐,我總是建議爲一個事件和一個實體提供一個插件。這樣調試更簡單,你可以處理更復雜的場景。在插件內部,我檢查目標以瞭解哪個字段已更新。

至於你的不一致的結果,它可能是由異步步驟引起的。你配置了它們被觸發的順序嗎?默認情況下,它們是1.這意味着隨機。