When you need to insert, update, or delete a large number of records in Dataverse, synchronous plug-ins can get in the way. Asynchronous plug-ins and Power Automate flows are triggered independently (out of process) but can be overwhelming for the system and can be throttled down. Did you know you can bypass either? Did you […]
Tip #1236: Review RetrieveMultiple plugins before migrating to Unified Interface
It’s not uncommon to register a plugin on RetrieveMultiple message and fiddle with the output, e.g. drop some values, add some calculations, etc. Chances are that you are changing the QueryExpression, and the plugin is working fine in the classic UI but you will have challenges migrating to Unified Interface. The reason is that in […]
Tip #1145: Tracing in Azure Functions MkIII
This never ends. Shortly after I finished writing about tracing in Azure Functions, I found Daryl “Always Raising” LaBar explaining how to use ExtendedOrganizationService wrapper to easily capture everything in your plugin: Wouldn’t it be nice for debugging if your plugins automatically traced every IOrganzationService Request, along with the parameters and the time that it […]
Tip #1135: For plugins, use SDK with the same or below the server version
Problem Another week, another challenge from Guido “Future Olive Farmer” Preite: I created a plugin for one Online instance (version 8.2.2.1862), I created a class library project with .NET 4.5.2 and with nuget I installed the Microsoft.CrmSdk.CoreAssemblies version 9.0.2.3 I registered the plugin and I always get this error: Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=8.0.0.0, Culture=neutral, […]
Tip #1034: Set Yourself Up For Efficient Importing
Importing into Dynamics 365 can be concerning to even the most hardened of CRM consultants. Often, if we are importing into a production system, we have tight schedules to get in and out before the users log in. If we are still importing data when the users come online, the system can be unacceptably slow […]
Tip #772: Snooping around plugins
This week is MVP Summit week and, since Joel is not around to keep me in check, I’m going wild with the useful tools recommendations. Have you ever started building a new plugin and then hesitated with the question: What the heck are those input parameters for the RetreiveMultiple message? Wonder no more because Blake […]
Tip #758: When users are unable to save personal views
tl;dr When no one in your organization including system administrators can create or update personal views, check that you don’t have any plugins registered on all entities to run in a context different from a calling user. Mundane details Symptoms: when personal views are created or updated, all users including system administrators receive the following […]
Tip #729: Mapping fields in N:N relationship
Normal out-of-box CRM relationship mapping can be extremely beneficial, but it has a very big “gotcha”. They only work when creating a child entity from the parent form. So if the user is on the parent entity form, and adding a new entity via a grid, then the mapping will automatically be populated for the […]
Tip #676: Keep your pants on and timestamps intact
Let’s say you have a field that requires complex calculations that are impossible to express as a calculated field. For example, the requirement could be to figure out the “real” full name for a contact taking into account the country, ethnicity, contact’s preferences, their royal title, and a phase of the moon. The first reaction […]
Tip #528: Execute them all
While our video dude is stuffing himself with turkey (who’d want to listen even to Morgan Freeman with a mouthful of dry meat?), I’d take this Friday to clarify few things about asking CRM server to do few things at once. There are two ways to do it. ExecuteMultiple ExecuteMultipleRequest has been around for quite […]