Tip #489: Limitations of Retrieve plugins

Calculated fields is one of the best new features and is indispensable for simple calculations. Keyword here is simple. Range of functions available in calculated fields is limited (though it continues to expand from release to release). One of the “traditional” methods to add calculated field is to add a simple field and then create […]

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 #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 […]