Connect to CRM via a console application.
If you are writing some complicated business logic inside
your custom workflow activity or a plugin there is a high chance of your code
throwing exception once you have registered them and started testing.
What I do is I create a simple Visual Studio C# console
application and connect to CRM. Then debug the business logic in the console
application first and make sure everything is working well before I insert the
code into the plugin or workflow activity skeleton. This saves lot of time as
debugging plugins and custom workflow activities is not very straight forward.
Creating a Console application is very easy and once created
you can use it for multiple projects as you need to change only few variables.
Step 1:
Open visual studio and create a new project of type Console
Application as below:
Step 2:
Under solution explorer right click on the project created
and click properties. Then under the Application tab change the Target
Framework to .Net Framework 4.5.2
If you don’t have this version of .net installed in your
computer download it from Microsoft site and install.
Step 3:
Refer the following assemblies. CRM dlls can be found under
the bin folder in CRM SDK. You can download the SDK from Microsoft site.
Update your Program.cs class like below.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xrm.Sdk;
using System.ServiceModel.Description;
using Microsoft.Xrm.Sdk.Client;
using Microsoft.Xrm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Metadata;
using Microsoft.Xrm.Sdk.Query;
namespace CRM2016ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
#region credentials
string SoapOrgServiceUri = "https://CRMUrl/OrganizationName/XRMServices/2011/Organization.svc";
ClientCredentials credentials = new ClientCredentials();
credentials.UserName.UserName = "username";
credentials.UserName.Password = "password";
#endregion
Uri serviceUri = new Uri(SoapOrgServiceUri);
OrganizationServiceProxy proxy = new OrganizationServiceProxy(serviceUri, null, credentials, null);
proxy.EnableProxyTypes();
IOrganizationService orgService = (IOrganizationService)proxy;
XrmServiceContext serviceContext = new XrmServiceContext(orgService);
}
}
}
Update username, password and crm url.
Now you have OrganizationService instance and if you have
built your early bound classes then you have access to the ServiceContext too.
In this example they are orgService and serviceContext respectively.
Now you can build your CRM queries with hard coded GUIDs to
test your business logic. Once all tested and good to go move them to your
plugins. J
No comments:
Post a Comment