Category Archives: Dynamics 365

Dynamics: how process duration is calculated

  When looking at the BPF-enabled entity in Dynamics, we can see process duration there – here is an example: In case you were wondering how the duration (“18 days, 1 hour” in this example) is calculated, here is a diagram: If the process is still active, what will show up in the duration area… Read More »

XperiDo – starting the trial

Before I continue.. I’m not affiliated with XperiDo, and I’m pretty sure they have no idea I am writing this blog post right now. Still, I was looking for a document generation solution, and, since XperiDo seems to have some interesting features, figured I’d try it a few days ago: https://www.xperido.com/support/blog/microsoft-dynamics-crm-2016-document-generation-vs-xperido Not pretending to be… Read More »

Custom indexes and solution upgrades

In the on-prem version of Dynamics, we can create our own custom indexes. And, even though it’s a supported customization (here is a reference: https://msdn.microsoft.com/en-us/library/gg328350.aspx ), there is at least one scenario which may fail. Basically, the problem is that custom indexes are not managed by Dynamics, so what it means is that any operation… Read More »

Turns out business process flow entities have super powers

  Did you know that, when setting up a workflow for a business process flow entity (Opportunity Sales Process, for example), we can configure that workflow to trigger on change of the related entities?   In the example above, we can trigger that workflow on change of the related opportunity entity fields etc. That’s an interesting feature which… Read More »

V9: Checking string fields for null

It seems there is an unexpected change in how V9 (specifically, 9.0.0.3172) is treating string fields on the SDK side. Normally, if you clear a field, you can use this code in the plugin to see if the field is being cleared:             if (entity.Contains(“ita_integer”) && entity[“ita_integer”] == null)             {                 throw new InvalidPluginExecutionException(“Integer is null”);            … Read More »

Developing the plugins – divide and conquer

  One of the main problems with plugin development is that we have a very limited set of debugging techniques. We can use the Tracing Service, but it’s not, really, debugging.. It’s tracing. We can keep throwing errors from the plugin, but that’s just another form of tracing. We can use a plugin profiler, and… Read More »