在導入時如何註冊插件?
有消息「導入」和「全部導入」。他們如何使用?在導入時註冊CRM 2011插件
我想導入到一個特定的實體時,創建一個單一的紀錄。
我試圖用'導入',但我不知道context.InputParameters["Target"]
是什麼。導入CSV時插件不會觸發。
在導入時如何註冊插件?
有消息「導入」和「全部導入」。他們如何使用?在導入時註冊CRM 2011插件
我想導入到一個特定的實體時,創建一個單一的紀錄。
我試圖用'導入',但我不知道context.InputParameters["Target"]
是什麼。導入CSV時插件不會觸發。
一個插件可以使用更新和創建消息。現在,我明白你想限制執行只是一個(和最後一個)實例。從技術上講,不能做到。每個更新和創建將分別調用插件。
但,有變通辦法。不自豪,但是,我做到了。一旦。
public void Execute(...)
{
Entity entity = context.InputParameters["Target"] as Entity;
bool isTheLast = entity["someField"] == "Viltersten is Godlike";
if(!isTheLast)
return;
}
這可以做得更短,一條線做。我只是想成爲一名教師。另外,我沒有檢查確切的語法,但你明白了。把你導入的最後一件東西命名爲獨特的東西。然後,讓插件開火一切。只有一個實例可以通過。
這將是FUBAR如果你無法控制進口秩序。
就我而言,我不能。我的解決方案是引入一個新的實體,稱爲控制器。在所有的輸入之後,我創建了一個新的實例。在那裏,我確實執行了其他實體所需的所有操作。
Braggable?幾乎不。是否可行?是。
謝謝。我創建了一個記錄 - 具有相同的導入順序號 - 爲導入單獨的實體。插件檢查是否存在具有與其他實體的序列號相同的記錄,如果不存在,則創建記錄。我發現,即使在創建多個記錄的情況下,這也必須是因爲線程。我引入了另外一個條件來檢查是否有多條記錄被返回,如果有的話刪除多餘的記錄;刪除必須在try {}中,因爲多個實例最終試圖刪除相同的記錄! – Bvrce
很酷。可怕的調試(特別是如果你在網上),但很酷。我沒有經歷過**這個特殊問題,但你正在做更復雜的操作,可能是我所做的。很高興知道這些事情,所以我知道要注意什麼。另外,如果您想更改示例代碼片段,請隨時編輯我的答案。我感覺有點太懶,而你的頭腦裏新鮮的東西。 –
我不是在我的電腦前,現在所以它的選中,但自發的我會說,你應該聽*更新*在插件的消息。 –
非常感謝您的答案。我正在Create上註冊插件;儘管我真的很希望插件僅在整個導入時觸發一次。 – Bvrce
看到我的答案。 :) –