Tip #1137: Learn language and study API to simplify your code

Simple life

I already wrote about the benefits of learning new language features. Equally important is to understand what assemblies are available as part of Dynamics 365 SDK, how they work, what classes and interfaces are available, and how the edge cases work (basically, “what-if” scenarios, like “what if this is null”). This week I had “privilege” […]

Tip #1132: Performance of various instance types

Lottery balls

We keep hearing this question over and over again from the customers, consultants, and developers: Are production instances given any preferential treatment in terms of resources as compared to sandbox and trial instances? I thought it’d be a good idea to revisit the 4 years old answer as nothing has changed since then. As per […]

Tip #1131: Add some vector finesse to your Unified Interface App

Calligraphy

We want our users to have confidence in the apps that we create and shove down their deploy. That’s not an easy task according to Steve “Mr SMB” Mordue who asks “How do we display our icon here, instead of puzzle piece in custom app? Puzzle Pieces do not instil confidence.” “That looks like a […]

Tip #1127: Don’t update auto number field

Locked boxes with the engraved numbers

We did mentioned in the past that most of the good inventions are driven by the laziness. Auto numbering the new records is one of those. Instead of manually looking up the next available number, calling other users to see if they have any intention of creating a new record in the next few minutes, […]

Tip #1125: Busy times and say .NYET to .NET

Busy hamsters

You probably have noticed a somewhat reduced stream of daily tips. “More like tip of the week now” you say and you’d be right. We’ve been extremely busy in the last couple of months: countless pints consumed in between awesome sessions at CRMUG EMEA in Dublin despite my inept organizational abilities, the inaugural BAD Masterclass […]

Tip #1122: Multiple tokens in cache

Golf balls in a bucket

If you are working with multiple user or app identities (e.g. for testing), and the code uses ADAL, and especially if the application is killed or crashes, you may occasionally get an error: multiple_matching_tokens_detected: The cache contains multiple tokens satisfying the requirements. Call AcquireToken again providing more requirements (e.g. UserId) Note that it does not […]

Tip #1119: How is From resolved to Dynamics 365 record

Survey

Mini Truckstop Today we have a stop with two Vikings (different countries though): Jonas “The Shuffler” Rapp and Marius Agur Hagelund Lind Jonas – Question Recently we have found a new (?) problem at a customer, where emails are incorrectly “connected” to the wrong sender. By what rule/rules does Dynamics 365 chose which record to […]

Tip #1114: Check scalability of your canvas PowerApp

Remote control

PowerApps are very expressive when it comes to data filtering, sorting, and other data manipulations. To maximize the application performance, PowerApps have a concept of delegation where PowerApps will delegate the processing of data to the backend instead of pumping data to the app for local processing. For your application to scale it’s important to […]

Tip #1112: Impersonate Azure AD users

Elvis impersonator

Developers are familiar with the concept of impersonating Dynamics 365 users. It’s easy – all you need to do is to add MSCRMCallerID header to your Web API request, and you’re done (assuming that you have prvActOnBehalfOfAnotherUser privilege). One of the typical scenarios where you’d want to use the impersonation when you have a web […]

Tip #1111: Fake mobile devices

Fake

When Scott “Mr Ribbon Workbench” Durow was delivering his “Typescript or Die” presentation at CRMUG EMEA last month, he stunned the audience by showing his phone right on the screen without any pairing. He tricked everyone, of course; I don’t believe he even has an iPhone. Turns out, Google Chrome has a not-so-obvious menu when […]