CRM 2011 – The difference between a plugin and a workflow

I was asked recently the difference between a plugin and a workflow and when it was best to use either.  At the time I was asked my mind went blank and I wasn’t sure.  In my mind they are both similar, so I set out to find out what the difference was.  The main difference I could think of was a workflow is asynchronous and it can fire off child workflows.

there was a good article about workflows and plugins for CRM 4 which you can read here

but then Gonzalo Ruiz has recently updated this and added in some dialog information as well, this is one of many great blog entries he has written recently

 

CRM 2011 – Where to find the timeout settings which effect CRM

I read this article today about timeout settings in CRM, go here to read the full blog entry.

The author of the blog has listed the various timeout settings which can effect CRM, they can be found in the various technologies used in CRM which vary from .NET, IIS, CRM SDK

 

  1. Registry on CRM application server(s)
    1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\OLEDBTimeout
      1. In seconds
      2. The OLEDBTimeout value controls the SQL time-out value that is used for a single SQL query
      3. Default is 30 seconds
    2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\ExtendedTimeout
      1. In milliseconds
      2. The ExtendedTimeout value controls the ASP.NET time-out value
      3. Default is 1,000,000
    3. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\NormalTimeout
      1. In milliseconds
      2. Specifies the SOAP call timeout for most operations
      3. Default is 300,000
  2. Web.config
    1. <httpRuntime executionTimeout=”300″ />
      1. .NET 3.0: “timespan” attribute.  The default is “00:01:50” (110 seconds)
      2. .NET 3.5 and 4.0: an integer in seconds.  Default is 110 seconds.
      3. Specifies the maximum number of seconds that a request is allowed to execute before being automatically shut down by ASP.NET.
  3. IIS/ASP.NET configuration
    1. IIS 6.0 -> Website Properties -> ASP.NET tab -> Edit Configuration button -> Application tab -> Request execution timeout (seconds)
      1. Related to this type of situation in CRM 4.0:http://blogs.msdn.com/b/crm/archive/2008/11/20/asp-net-2-0-50727-0-warning-event-id-1309-due-to-request-time-out.aspx
  4. When using the CRM SDK, there are also timeout settings that can be set via custom code:
    1. CRM 4.0 example:
      1. CrmService service = new CrmService();
      2. service.Timeout = 300;
      3. In milliseconds and default is 100,000
    2. CRM 2011:
      1. ServiceProxy.Timeout property (Timespan)

CRM 2011 – Microsoft will pay you $200 per user to move to CRM 2011 Online!

When I read the cloud for less offer and the title of this page

Get $200 cash per license of Microsoft Dynamics CRM Online

I always think I can’t have understood this properly, Microsoft are going to pay people to move to CRM, it seems to good to be true but Microsoft spells it out on their page.

Until June 30, 2011, Microsoft will send qualified organizations $200 for each Microsoft Dynamics CRM Online Subscription license. Buy 30 seats, get $6,000. Buy 100 seats, get $20,000.3

 

It is at this point you expect the offer to be unreachable for most companies or the criteria to be eligable to filter out most companies but it isn’t.

Who can qualify?

  • Organizations that subscribe at least 15 Microsoft Dynamics CRM Online licenses.
  • Organizations that sign a two year licensing subscription for Microsoft Dynamics CRM Online.
  • Organizations that currently license a CRM product as outlined in the Terms and Conditions.

 

It’s a bit of a new mobile phone offer, you get a snazzy new phone but you have to sign up to use it for 2 years but CRM online is currently being offered very cheaply by Microsoft at 34$ per user per month and you don’t need to invest in a big infrastructure/software outlay.

 

In addition to this great offer, all organizations can also license Microsoft Dynamics CRM Online for only $34/user/month! Together, these offers represent a great opportunity to get started with one of the best CRM solutions in the industry. Fill out the form to the right to get started!

 

The bad news is it ends on the 30th June so if anyone wants to do this they better get their skates on.  I think it’s offers and promotions like this which is one of the reasons Microsoft are or will be the leading CRM distributor and they are gobbling up market share like no one’s business.

Which is good news for people who work in the CRM industry

 

 

 

CRM 2011 – Firing a workflow from a plugin

one of my favourite CRM bloggers Jamie Miley wrote a very interesting article today – How to execute a workflow from .NET and Jscript.

Jamie is always a big fan of doing anything in Jscript but I prefer the .NET approach.  You should read the article above to see both the .NET and Jscript examples and Jamie explains what’s going on and how it works.

Basically you need to instantiate a service object, which you can get pretty easily if you are in a plugin and then you can execute a workflow.  You will need the Guid of the workflow and the guid of the entity you want the workflow to run against.

First in C#:

ExecuteWorkflowRequest req = new ExecuteWorkflowRequest(); 

//specify the guid of the 
workflow req.WorkflowId = new Guid("D009C04F-F826-4B3B-90CD-209581CFC2FF"); 
//specify the guid of the related entity instance 
req.EntityId = new Guid("A46FA1C1-E38D-E011-86BA-1CC1DEE8EA49"); 
ExecuteWorkflowResponse resp = (ExecuteWorkflowResponse)slos.Execute(req); 

excellent blog post