By now you should be able to get your Azure Function triggered from Dynamics 365 and connect back to Dynamics 365 to do some evil awesome things. Debugging Azure Functions however, is not a walk in a park – not like you can set breakpoints and step through the code. Well, you should, of course, […]
Tip #787: Creating records in Project Service
When creating records for one of the Dynamics 365 solutions, you may find yourself in the same situation as Guido “Trekkie not Star Wars fan” Preite. The simplest possible code to create msdyn_actual (part of the Project Service) generates “The given key was not present in the dictionary” error. One of the advantages (and curses) […]
Tip #768: Avoid running out of memory when using CRM context
When you process large data in your code, email attachments, for example, there is always a danger of running out of the available memory. Consider this code dealing with the email attachments: The danger here is running out of memory on retrieval of the file attached to the CRM notes. Even though from C# point […]
Tip #767: Server-to-server authentication is here
Woot, woot! At long last we can create passive clients – the ones that do not have someone sitting in front of them. Clients like web sites or services – and authenticate them without using username and password AND get the magic bearer token that is good to use in Web API. The detailed walkthrough […]
Tip #746: Bring in the specialist
Washing car on weekend is something that everyone can do on their own. Probably. But if some serious cleanup is required, one’s better off calling Mr Wolf. Same goes for complicated cases in customer service. If you run a secure shop that deals with the cases that include sensitive or personal identifiable information, then security […]
Tip #731: Hide and protect your custom CRM API
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
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
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
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
Tip #679: Multiple CTI matches in Unified Service Desk
We have already talked about dealing with multiple search results coming from entity searches in Unified Service Desk. Results of CTI Search are just as easy to handle – they are very similar, however, there is one crucial difference. Generated as a result of a phone call (or a chat, or a sip call, etc), […]