Microsoft CRM – Client Relationship Management package from Microsoft Business Solutions was initially designed to be customizable with Microsoft Visual Studio.Net and one of its programming languages – C#.Net or VB.Net. You can use ADO.Net, Web Service, Transact SQL scripting and stored procedures, deploy such SQL Server tools as Linked Server to all ODBC/OLEDB compliant database, including ORACLE, Sybase, Ingress, DB2, Unidata, Pervasive SQL, Ctree and even Lotus Notes/Domino. In this small article we would like to give you the clue on programming the integration with SQL third party Database.
First – use Microsoft CRM SDK to initiate communication with Microsoft CRM, we have it in C#:
String[] arr1 = coll.AllKeys;
int loop1, loop2;
for (loop1 = 0; loop1 0?1:arr1.Length); loop1++)
{
String[] arr2 = coll.GetValues(arr1[loop1]);
for (loop2 = 0; loop2 < arr2.Length; loop2++)
{
strAccountId = arr2[loop2].Replace("}",null);
strAccountId = strAccountId.Replace("{",null);
}
}
if (Page.IsPostBack==false)
{
// Server should be set with the name of the platform Web server
string Server = ConfigurationSettings.AppSettings["ServerName"];
// VirtualDirectory should be set with the name of the Microsoft
// CRM Virtual Directory on the platform Web server
string VirtualDirectory = "mscrmservices";
string strDir = "http://" + Server + "/" + VirtualDirectory + "/";
// BizUser proxy object
Microsoft.CRM.Proxy.BizUser oBizUser = new Microsoft.CRM.Proxy.BizUser ();
oBizUser.Credentials = System.Net.CredentialCache.DefaultCredentials;
oBizUser.Url = strDir + "BizUser.srf";
// CRMAccount proxy object
Microsoft.CRM.Proxy.CRMAccount account = new Microsoft.CRM.Proxy.CRMAccount ();
account.Credentials = System.Net.CredentialCache.DefaultCredentials;
account.Url = strDir + "CRMAccount.srf";
Then you use ADO.Net for calling stored procedure with parameters to do the integration job:
try
{
string SQLStatement="ICS_UpdateAccountPrivate '"+
strAccountId +"' , '" + this.TextBoxWorkPerformed.Text +
"' , "+doubleEncode(System.Double.Parse(this.TextBoxAnnualRevenue.Text))+" , "+
intEncode(System.Int32.Parse(this.TextBoxNumberOfEmployees.Text.Replace(",","")))+" , "+
doubleEncode(System.Double.Parse(this.TextBoxAverageGrowthRate.Text))+" , "+
"'"+this.DropDownListOwnership.SelectedItem.Text +"' , "+
intEncode(System.Int32.Parse(this.RadioButtonList.SelectedItem.Value))+" , "+
intEncode(System.Int32.Parse(this.TextBoxCredit.Text.Replace(",","")))+" , '"+
this.TextBoxComments.Text+"'";
System.Data.SqlClient.SqlConnection tmpConnection =
new System.Data.SqlClient.SqlConnection(ConfigurationSettings.AppSettings["ConnectionStringICS"]
);