Friday, July 1, 2011

Server Side Example - Run query expression

Hi,
Here is an example of run query QueryExpression in CRM 2011.
Example project for Console application.

Before run the application musat add reference to dlls:
1. Microsoft.Xrm.Sdk.dll ( get this file from SDK 2011)
2. Microsoft.Crm.Sdk.Proxy.dll ( get this file from SDK 2011)

Before run the console application add Service References to:

http://ServerName:5555/XRMServices/2011/Organization.svc

Console Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel.Description;
using System.Net;
using Microsoft.Xrm.Sdk.Client;
using Microsoft.Xrm.Sdk;

namespace crm2011Test1
{
    class query2
    {
        static void Main(string[] args)
        {
            Button1_Click();
        }
        static void Button1_Click()
        {
            //Authenticate using credentials of the logged in user;       
            ClientCredentials Credentials = new ClientCredentials();
            Credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
            //This URL needs to be updated to match the servername and Organization for the environment.
            Uri OrganizationUri = new Uri("http://crmserver:5555/crm2011dev/XRMServices/2011/Organization.svc");
            Uri HomeRealmUri = null;
            using (Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy serviceProxy = new Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null))
            {
                serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
                IOrganizationService service = (IOrganizationService)serviceProxy;
                // Create query in contact entity                Microsoft.Xrm.Sdk.Query.QueryExpression qe = new Microsoft.Xrm.Sdk.Query.QueryExpression();
                qe.EntityName = "contact";
                Microsoft.Xrm.Sdk.Query.FilterExpression filter1 = new Microsoft.Xrm.Sdk.Query.FilterExpression();
                filter1.FilterOperator = Microsoft.Xrm.Sdk.Query.LogicalOperator.And;
                filter1.Conditions.Add(new Microsoft.Xrm.Sdk.Query.ConditionExpression("firstname", Microsoft.Xrm.Sdk.Query.ConditionOperator.Equal, "amos"));
                filter1.FilterOperator = Microsoft.Xrm.Sdk.Query.LogicalOperator.Or;
                filter1.Conditions.Add(new Microsoft.Xrm.Sdk.Query.ConditionExpression("createdon", Microsoft.Xrm.Sdk.Query.ConditionOperator.NextXDays, 7));
                filter1.Conditions.Add(new Microsoft.Xrm.Sdk.Query.ConditionExpression("createdon", Microsoft.Xrm.Sdk.Query.ConditionOperator.NextXDays, 30));
                qe.Criteria = filter1;
                //first retrive
                EntityCollection ec = service.RetrieveMultiple(qe);
                //create loog on result
                foreach (Entity act in ec.Entities){}
                Console.ReadKey();            }
        }
    }
}

Server Side Example - Fetch

Hi,
Here is an example of update entity in CRM 2011.
Example project for Console application.

Before run the application musat add reference to dlls:
1. Microsoft.Xrm.Sdk.dll ( get this file from SDK 2011)
2. Microsoft.Crm.Sdk.Proxy.dll ( get this file from SDK 2011)

Before run the console application add Service References to:

http://ServerName:5555/XRMServices/2011/Organization.svc

Console Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel.Description;
using System.Net;
using Microsoft.Xrm.Sdk.Client;
using Microsoft.Xrm.Sdk;

namespace crm2011Test1
{
    class Fetch
    {
        static void Main(string[] args)
        {
            Button1_Click();
        }

        static void Button1_Click()
        {
            ClientCredentials Credentials = new ClientCredentials();
            Credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
            //This URL needs to be updated to match the servername and Organization for the environment.
            Uri OrganizationUri = new Uri("http://crmserver:5555/crm2011dev/XRMServices/2011/Organization.svc");
            Uri HomeRealmUri = null;
            using (Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy serviceProxy = new Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null))
            {
                serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
                IOrganizationService service = (IOrganizationService)serviceProxy;
                //fetch example
         
       string opportunity_count = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
                                              <entity name='contact'>
                                                <attribute name='fullname' />
                                                <attribute name='new_customernumber' />
                                                <attribute name='donotemail' />
                                                <attribute name='birthdate' />
                                                <order attribute='new_customernumber' descending='true' />
                                                <filter type='and'>
                                                  <filter type='or'>
                                                    <condition attribute='birthdate' operator='next-seven-days' />
                                                    <condition attribute='birthdate' operator='last-x-days' value='30' />
                                                  </filter>
                                                </filter>
                                              </entity>
                                            </fetch>";

                EntityCollection contact_count_result = service.RetrieveMultiple(new Microsoft.Xrm.Sdk.Query.FetchExpression(opportunity_count));
                //Create loop of the result                 foreach (var c in contact_count_result.Entities){}
                //end fetch example
                Console.ReadKey();
                //This code will clear the textboxes after the contact is created.
            }
        }
    }
}

Thanks,
Rami Heleg

Server Side Example - Update Entity

Hi,
Here is an example of update entity in CRM 2011.
Example project for Console application.

Before run the application musat add reference to dlls:
1. Microsoft.Xrm.Sdk.dll ( get this file from SDK 2011)
2. Microsoft.Crm.Sdk.Proxy.dll ( get this file from SDK 2011)

Before run the console application add  Service References to:

http://ServerName:5555/XRMServices/2011/Organization.svc

Console Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel.Description;
using System.Net;
using Microsoft.Xrm.Sdk.Client;
using Microsoft.Xrm.Sdk;


namespace crm2011Test1
{
    class Update
    {
        //static void Main(string[] args)
        //{
        //    Button1_Click();
        //}
        static void Button1_Click()
        {
            //Authenticate using credentials of the logged in user;       
            ClientCredentials Credentials = new ClientCredentials();
            Credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
            //This URL needs to be updated to match the servername and Organization for the environment.
            Uri OrganizationUri = new Uri("http://crmserver:5555/crm2011dev/XRMServices/2011/Organization.svc");
            Uri HomeRealmUri = null;
            using (Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy serviceProxy = new Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null))
            {
                serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
                IOrganizationService service = (IOrganizationService)serviceProxy;
                //Create Entity - > define entity name
                Entity contact = new Entity("EntityName");

                contact["contactid"] ="{EntityId}";
                contact["firstname"] = "rami11";
                contact["lastname"] = "heleg11";
                service.Update(contact);                Console.ReadKey();
            }
        }
    }
}

Thanks,
Rami Heleg

Server Side example – SetState

Hi,
Here is an example of setstate entity in CRM 2011.
Example project for Console application.

Before run the application musat add reference to dlls:
1. Microsoft.Xrm.Client.dll ( get this file from SDK 2011)
2. Microsoft.Xrm.Sdk.dll ( get this file from SDK 2011)
3. Microsoft.Crm.Sdk.Proxy.dll ( get this file from SDK 2011)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel.Description;
using System.Net;
using Microsoft.Xrm.Sdk.Client;
using Microsoft.Xrm.Sdk;

namespace crm2011Test1
{
    class SetState
    {
        //static void Main(string[] args)
        //{
        //    Button1_Click();
        //}
        static void Button1_Click()
        {
            //Authenticate using credentials of the logged in user;       
            ClientCredentials Credentials = new ClientCredentials();
            Credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
            //This URL needs to be updated to match the servername and Organization for the environment.
            Uri OrganizationUri = new Uri("http://crmserver:5555/crm2011dev/XRMServices/2011/Organization.svc");
            Uri HomeRealmUri = null;
            using (Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy serviceProxy = new Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null))
            {
                serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
                IOrganizationService service = (IOrganizationService)serviceProxy;
                //set state of contact to disable (add microsoft.xrm.client.dll)
                OrganizationServiceContext osc = new OrganizationServiceContext(service);
                Microsoft.Xrm.Client.Messages.OrganizationServiceContextExtensions.SetState(osc, new EntityReference("contact", new Guid("{contactGuid}")), new OptionSetValue(1), new OptionSetValue(2));
                Console.ReadKey();
            }
        }
    }
}

Thanks,
Rami Heleg