Tip #731: Hide and protect your custom CRM API

Protect yourself by covering

Yesterday we illustrated how you can wrap some server-side functionality as a custom API to be consumed by the developers. One of the undesired side effects is that business can now poke their nose into the API when building workflow processes: If your API is a smoking gun and you don’t want business to accidentally […]

Tip #730: Turn your CRM into API machine

Locked black box

When people ask me to describe the differences between custom workflow activities and custom actions, I always use the following definitions: Custom workflow activities. A functional blackbox created by the developers to be consumed by the business Custom activity. A functional blackbox created by the business to be consumed by the developers There is more […]

Tip #699: Don’t go back on context

Tima and Punishment

This one is for javascript lovers. If you work with HTML web resources, you know that you need to include ClientGlobalContext.js.aspx to get CRM context in your script. If everything is working correctly but you receive JS error “GetClientContext is not defined” when using back button in Chrome browser, add dummy query parameter to the […]

Tip #692: Extract Word and Excel templates from CRM 2016 like a boss

Military Extraction

The creativity of our fellow CRMers does not stop to surprise me. They go to the extraordinary lengths to avoid code because, as the true masters of their craft, they do not parade the skills just for the sake of it. But, as I was preparing the awesome tip #691 I couldn’t help but repeat […]

Tip #674: Dealing with multiple search results in Unified Service Desk

Too many search results

Unified Service Desk has a concept of Entity Search, that allows you to store parameterized fetchxml and reuse this definition declaratively (say, in Windows Navigation Rules), or via DoSearch action of the Global Manager, or directly from your code. One aspect that Entity Search does not deal well with is the searches returning multiple results. […]

Tip #655: Defensive use of undocumented functions

Black box

This is a sweet lesson for all the lovers of the undocumented functions. On odd occasion yours truly is guilty of being lazy and choosing a shortcut worthy spießrutenlaufen. From time to time those fits of laziness come back hard. For a long time I’ve been using SaveAsCompleted internal function on a command bar for […]

Tip #644: Async Dynamics CRM awaits you

Hanging minesweeper

Gayan “Performance Wizard” Perera hates waiting. Be smart, be like Gayan. For anyone who’s been waiting to get async/await support for the CRM SDK, you can now get a simple extension class from https://github.com/NZxRMGuy/crmsdk-async The downside with my one is that it’s a wrapper around the sync method – some people do frown upon this […]

Tip #639: I shall call him Squishy

I shall call him Squishy

Selecting a good name for an organization in CRM On-premises has always been a challenge especially when you automate provisioning of your CRM organizations. At least one would hope that the chosen name would stick. However, our special correspondent Mehmet “Sputnik” Ozdemir reports from the trenches that organizationid and name fields in the organization entity […]