Tip #462: Waiting for developer toolkit

CRM developers have been patiently waiting for Godo CRM Developer Toolkit that works with something better than Visual Studio 2012. Now being two version behind, it does not look like it’s coming any time soon. The good news is that, acknowledging both the demand and the delay, the team has been releasing the most important […]

Tip #427: Making sense out of plugin parameters like a boss

As some of you may know, correcting Joel is one of my hobbies. But being able to add to a Tanguy’s tip takes it to a completely new level. To recall: our challenge is to find all parameters including their types specific to a plugin message. Instead of writing some temporary code only to delete […]

Tip #426: Making intelli-sense out of plugin parameters

Browse object library

Our today’s tipster is the man himself: Tanguy “The XRM Toolbox” Touzard. Did you ever feel lost when you wanted to develop a plugin and didn’t know what keys to use in IPluginExecutionContext.InputParameters or IPluginExecutionContext.OutputParameters? Did you ever wonder why we do use the mysterious “Target” key when writing a plugin for Create, Update or […]

Tip #408: “Value cannot be null” when configuring Outlook Client

Recently we found that users in a specific CRM environment could not configure CRM for Outlook. The error message returned by the configuration wizard was “Value cannot be null. Parameter name: String.” Client trace showed the following: >Failed to refresh entry. Exception Microsoft.Crm.Application.SMWrappers.InvalidOrganizationIdException: Invalid OrganizationId “e79c824a-fee4-40cf-9a2f-fb79112be8b6”.    at Microsoft.Crm.Application.SMWrappers.ClientOrganizationContextFactory .Get(Guid organizationId)    at Microsoft.Crm.Application.SMWrappers.ClientOrganizationContextFactory .Microsoft.Crm.IOrganizationContextFactory.GetOrganizationContext(Guid […]

Tip #351: Tracing for plugins and custom workflow activities

CRM Online continues to improve on the existing features, as Andre “I’ve got 88 in my handle” Margono noticed when looking at the tracing functionality. ITracingService was available to the savvy developers since CRM 2011, however, the catch always has been that trace is only available when things go wrong, exception kind of wrong. Enter […]

Tip #263: Avoid unnecessary plugin execution

Filter the attributes in Visual Studio

Inspired by our rather radical approach to enforcing development discipline, Andre “I’ve got 88 in my handle” Margono decided to pick on another sinful habit in development, this time within plugin development. Corporal punishment triggering behavior this time is to select all attributes as filtering attributes for Update message. Unfortunately, plugin registration tool that comes […]

Tip #194: When automatic update is not your friend

tl;dr Nuget is a great tool and a real timesaver but beware of automatic updates that can unexpectedly bring incompatible or broken builds of third-party libraries and that will, in turn, break your plugins or workflows. The real story or “I saw the whole thing” Friday, August 1st, 6:00PM All users logoff and CRM is […]

Tip #154: One pre-validate to rule them all

It may come as a surprise but when a contact is created as a side-effect of another operation, e.g. qualifying a lead or processing incoming message with contact auto-create in force, pre-validation plugin does not fire at all. It happens when operation performed is a compound message such as QualifyLeadRequest or DeliverPromoteEmailRequest. This behaviour, unintuitive […]

Tip #135: What to check if on-disk plugin registration fails

Registering plugin on disk has its benefits but can be tricky business. Plugin registration tool that comes with SDK is very coy about the errors and display the following message (in the log section of the form): ERROR: Occurred while checking whether the assembly exists You can opt to see more details about fault exception […]

Tip #84: What a difference a date makes

At Convergence 2014, the tipsters participated in some “Ask the MVP” sessions. There were many great questions, but one question kept coming up time and time again, no matter whether the session was for administrators or developers. That’s right: how to deal with timezones when date-only field is used. Since our tipping truck is a […]