我已經編寫了一個在創建新記錄(發佈)時觸發的插件。這個插件簡單運行一個SSIS包,將新創建的記錄細節移動到SQL表中。我不得不將此插件作爲無隔離模式部署。如何將新創建的CRM聯繫人記錄複製到SQL表中
我想知道的是,是否有更好的解決方案來實現與SQL表同步CRM記錄?
我正在研究CRM 2011 RU 18的前提下。
string connectionString = "User Id=username; Password=password; Initial Catalog=db; Data Source=myServer;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand("INSERT INTO testPerson (Firstname, Lastname, Emailaddress, CrmGuid) VALUES (@FN, @LN, @Email, @CrmGuid)");
cmd.CommandType = CommandType.Text;
cmd.Connection = connection;
cmd.Parameters.AddWithValue("@FN", "James");
cmd.Parameters.AddWithValue("@LN", "Bolton");
cmd.Parameters.AddWithValue("@Email", "[email protected]");
cmd.Parameters.AddWithValue("@CrmGuid", "C45843ED-45BC-E411-9450-00155D1467C5");
connection.Open();
cmd.ExecuteNonQuery();
}
//////// Direct DB Connection //////////// <--- END 1
}
catch (Exception ex)
{
tracingService.Trace("CRM to mWeb Sync Plugin: {0}", ex.ToString());
throw;
}
每次創建記錄時啓動一個SSIS包都是矯枉過正的,並且需要是Async,除非最終用戶需要等待。我見過SSIS軟件包需要一分鐘或更長時間才能啓動。 – Nicknow 2015-02-24 21:32:12
@Nicknow它是異步的,因爲它是一個單獨的記錄,它將花費少於幾分鐘的時間。 – kmria 2015-02-25 13:11:05
只是爲了澄清,我並不是說插入需要一分鐘 - 我是說SISS包的啓動(與正在完成的工作無關)可能需要一分鐘或更長的時間。這是必須爲每個操作啓動SSIS包的原因之一可能是有問題的體系結構。 – Nicknow 2015-02-25 15:34:06