I said it before and I said it again that presenting at the conferences like eXtremeCRM can be a real eye-opener. You quickly learn, for example, that Bob could not make it and you also learn how much people know about CRM. With all the accumulated knowledge it comes as a surprise that some of […]
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 #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
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
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 […]