CrmService Web Service
1 Retirve Data with ConditionExpression
CrmService.CrmService ser = new CrmService.CrmService();
ser.Credentials = new NetworkCredential("Administrator", "pass@word1", "CRMDOMAIN");
![]()
//CredentialCache cache = new CredentialCache();
//cache.Add(new Uri(ser.Url), "Negotiate", new NetworkCredential("Administrator", "pass@word1", "CRMDOMAIN"));
//ser.Credentials = cache ;
![]()
QueryExpression query1 = new QueryExpression();
query1.EntityName = EntityName.contact.ToString();
![]()
ColumnSet col = new ColumnSet();
![]()
col.Attributes = new string[]
{ "fullname", "familystatuscode", "gendercode" };
query1.ColumnSet = col;
![]()
//Lookup pc = new Lookup();
//pc.type = EntityName.systemuser.ToString();
//pc.Value = new Guid("{A08C3155-728C-DA11-8F30-0003FF2689B7}");
![]()
ConditionExpression conExp = new ConditionExpression();
conExp.AttributeName = "gendercode";
conExp.Operator = ConditionOperator.Equal;
![]()
conExp.Values = new object[]
{ "2" };
![]()
ConditionExpression conExp2 = new ConditionExpression();
conExp2.AttributeName = "familystatuscode";
conExp2.Operator = ConditionOperator.Equal;
![]()
conExp2.Values = new object[]
{ "1" };
![]()
//conExp.Values[0] = new Guid("{49B4D00F-553E-4A1D-A567-0F9E3399D020}");
FilterExpression filter = new FilterExpression();
filter..FilterOperator = LogicalOperator.Or;
![]()
filter.Conditions = new ConditionExpression[]
{ conExp, conExp2 };
query1.Criteria = filter;
![]()
RetrieveMultipleRequest retrieve1 = new RetrieveMultipleRequest();
retrieve1.Query = query1;
![]()
try
![]()
{
RetrieveMultipleResponse retrieved1 = (RetrieveMultipleResponse)ser.Execute(retrieve1);
![]()
foreach (BusinessEntity obj in retrieved1.BusinessEntityCollection.BusinessEntities)
![]()
{
contact c = (contact)obj;
Picklist p = c.gendercode;
Picklist p2 = c.familystatuscode;
![]()
Console.WriteLine(string.Format(" FullName: {0} \n", c.fullname));
![]()
if (p != null)
![]()
{
Console.Write(string.Format(" Gender: {0} ({1}) \n", p.name,p.Value));
}
if (p2 != null)
![]()
{
Console.Write(string.Format(" Family Status:: {0} ({1}) \n", p2.name,p2.Value));
}
![]()
Console.WriteLine("=================\n");
}
}
catch (SoapException sx)
![]()
{
Console.WriteLine(sx.Message);
}
![]()
catch (Exception ex)
![]()
{
Console.WriteLine(ex.Message);
}
2 Create Data
//Retirve contact data from CRM server in class method
CrmService.CrmService ser = new CrmService.CrmService();
ser.Credentials = new NetworkCredential("Administrator", "pass@word1", "CRMDOMAIN");
![]()
//CredentialCache cache = new CredentialCache();
//cache.Add(new Uri(ser.Url), "Negotiate", new NetworkCredential("Administrator", "pass@word1", "CRMDOMAIN"));
//ser.Credentials = cache ;
try
![]()
{
account objAcc = new account();
objAcc.name = "Castor1";
Guid guid2 = ser.Create(objAcc);
![]()
contact objCon = new contact();
objCon.firstname = "Lee1";
objCon.lastname = "Peng1";
![]()
Customer c = new Customer();
c.type = EntityName.account.ToString();
c.Value = guid2;
![]()
objCon.parentcustomerid = c;
Guid guid1 = ser.Create(objCon);
}
![]()
catch (SoapException sx)
![]()
{
Console.WriteLine(sx.Message);
}
catch (Exception ex)
![]()
{
throw;
}
![]()
Console.ReadLine();
Delete Data
CrmService.CrmService ser = new CrmService.CrmService();
ser.Credentials = new NetworkCredential("Administrator", "pass@word1", "CRMDOMAIN");
try
![]()
{
QueryExpression query1 = new QueryExpression();
query1.EntityName = EntityName.contact.ToString();
![]()
ColumnSet col = new ColumnSet();
![]()
col.Attributes = new string[]
{ "contactid", "firstname" };
query1.ColumnSet = col;
![]()
RetrieveMultipleRequest retrieved= new RetrieveMultipleRequest();
retrieved.Query = query1;
![]()
RetrieveMultipleResponse retrieved1 = (RetrieveMultipleResponse)ser.Execute(retrieved);
![]()
foreach (BusinessEntity obj in retrieved1.BusinessEntityCollection.BusinessEntities)
![]()
{
contact c = (contact)obj;
![]()
if (c.firstname!=null&&c.firstname.Trim().Equals("Lee1"))
ser.Delete(EntityName.contact.ToString(), c.contactid.Value);
}
}
![]()
catch (SoapException sx)
![]()
{
Console.WriteLine(sx.Message);
}
catch (Exception ex)
![]()
{
throw;
}
Console.ReadLine();
Fetch Data
Following is the example of the fetchXml:
<fetch mapping="logical">
<entity name="contact">
<all-attributes />
<attribute name="contactid"/>
<attribute name="fullname"/>
<link-entity name="account" from="accountid" to="parentcustomerid">
<filter type="and">
<condition attribute="address1_stateorprovince" operator="like" value="CA%"></condition>
</filter>
</link-entity>
</entity>
</fetch>
This is calling code:
CrmService.CrmService ser = new CrmService.CrmService();
ser.Credentials = new NetworkCredential("Administrator", "pass@word1", "CRMDOMAIN");
try
![]()
{
string fetchXML,resultXML;
using (StreamReader reader = new StreamReader("XMLFile1.xml"))
![]()
{
fetchXML = reader.ReadToEnd();
}
![]()
if (fetchXML.Length > 0)
![]()
{
resultXML = ser.Fetch(fetchXML);
![]()
using (StreamWriter writer = new StreamWriter("XMLResult.xml",false))
![]()
{
writer.Write(resultXML);
writer.Flush();
}
Console.WriteLine(resultXML);
}
}
![]()
catch (SoapException sx)
![]()
{
Console.WriteLine(sx.Message);
}
catch (Exception ex)
![]()
{
throw;
}
Console.WriteLine("Finish.");
Console.ReadLine();