Tip #212: Getting a yes or no answer in LINQ

Say, you need to find out if your organization has any opportunities with the estimated value of more than a million dollars (that’s right, that’s how developers usually roll). No need to retrieve anything, just simple yes or no. There are many ways to accomplish the task, most of them, sadly, are as efficient as […]

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 #192: Defensive script writing

Event Handler Dependencies

(Today’s tip is actually two-in-one but we’ll get to that.) Over the years as a CRM jackofalltrades I learned that to create truly reusable, bug-free and resilient systems is very important to write your scripts as if the next team member, who comes after you, dedicated their entire career to destroying your life’s work. Consider […]

Tip #183: Keep batch modifications under control

Ploughing

Not so long ago we experienced the wrath of an unhappy customer when, with all the good intentions we verified and normalized phone numbers for all contacts in the organization. This particular implementation had sophisticated business processes that kicked in on updates and modified on timestamp was used to calculate some performance metrics. With us […]

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 #134: How to block click-to-call in CRM

People would like to have an option to switch click-to-call functionality off. Unfortunately, none of the suggestions is going to work. Why? Because this functionality relies on URL protocols skype: (for Skype) and tel: (for Lync). You can try fooling the system by deregistering protocols, fiddling with the registry, disabling addins, blocking addins, directing to […]