Tip #1198: Add email address to recipients in javascript

Six colorful mailboxes in a row

The advantage of having access to friendly brainpower is that the problems are getting resolved much quicker. The disadvantage is that it breeds inattentive coding. Daryl “Always Raising” LaBar almost threw in a towel but recovered and redeemed himself with the snippet how to add an arbitrary email address to the list of the email recipients […]

Tip #1159: Run your script after business rules

Queue

Dynamics 365/CRM customizations inflicted by a customer are always fun. How can I tell their customizations apart? Easy, by the new_ prefix. Where things get really complicated if the customer later asks you to do something they are not sure how to. Just recently I was asked to stop couple fields from being locked if […]

Tip #1032: Be careful with those function names

Namespaces

Today’s tip is from Tom Pickles – thank you! And, hey, you can be a guest tipster too – just send your tip to jar@crmtipoftheday.com. I fixed a curious issue today that I thought I’d share. Users had reported that when using the multi-edit form to update multiple cases, the form would freeze when they […]

Tip #706: Passing arguments to the webresource does not work after authentication

Fallen god

We are all mortals, after all. I just witnessed a rare occassion when even Tanguy “The XRM Toolbox” Touzard needed a helping hand from none other than Andrii “Khohol” Butenko. Tanguy I’m working on a really simple integration where an external app needs to open a webresource with parameters passed in data url argument: https://qwerty.crm4.dynamics.com/WebResources/foo_/cti/index.html?data=phonenumber%3d0123456789%26service%3dadv […]

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 #589: Programmatically Move Cross Entity Business Process Flow Stages in CRM 2016

It’s been a while since we’ve heard from Gayan “Not Daddy” Perera. As often the case with Gayan’s tips, this one is a nugget. Moving the stage of a cross entity business process flow programmatically can be achieved by using the NavigateToNextEntity request. Most of the parameters are self explanatory, the only tricky one is […]

Tip #574: Hidden sources of javascript errors

Quite often developers complain about getting javascript errors when the form does not contain any scripts or events. Explicit script definitions are not the only source of the possible errors: Business Rules are deployed on the client as generated javascript. While it’s unlikely that business rules will generate an erroneous script, it’s worthwhile disabling the […]

Tip #570: Remote debugging in CRM with vorlon.js

Object explorer in Vorlon

Our resident visual effects tipster asked me the other day if I had any experience with using vorlon.js in CRM. I didn’t as I never heard of it. But since someone somewhere some time ago pointed out that these days <random noun>.js is probably a valid javascript library, I decided to take a look. As it […]

Tip #531: CRM, SPA and CORS walk into a bar

If you wanted to access your CRM from the javascript using web services, the only option until CRM 2016 was to wrap your script as a webresource. That way script is hosted in the same domain as CRM and “rides” authenticated session of your browser. External pages were no go because of the Cross-Origin Resource […]