CDS Solution Development – Best Practices – ModelFeatureApp Architecture

Introduction.

Hi all! Another week went by, another page in the GitHub wiki added… In case you’re new here, read this article which explains the motivation behind it all.

I wasn’t able to add new content last week and I’m very sorry for that. Hopefully this week will make up for it.

Continue reading “CDS Solution Development – Best Practices – ModelFeatureApp Architecture”

Solution Import Failure Message: Cannot add a Root Component 80


Have you tried to upload your own solution containing a model driven app into your environment, but for some unexpected reason, you got a very non descriptive error that the solution just cannot be uploaded, and only after a closer inspection, you discovered that the solution cannot add Root Component of type 80 because it is not in the target system?

I know I did, and here is how I fixed the problem.

Continue reading “Solution Import Failure Message: Cannot add a Root Component 80”

CDS Solution Development – Best Practices – Developed Components

Introduction.

Hi all! Another week went by, another page in the GitHub wiki added… In case you’re new here, read this article which explains the motivation behind it all.

There’s not a lot I can comment on for these few new pages. But I can think of one thing.

Continue reading “CDS Solution Development – Best Practices – Developed Components”

CDS Solution Development – Best Practices – Tooling

Introduction.

Hi all! Another week went by, another page in the GitHub wiki added… In case you’re new here, read this article which explains the motivation behind it all.

What are my thoughts on current CDS tooling? Let’s get into it.

Continue reading “CDS Solution Development – Best Practices – Tooling”

Common Data Service Solution Development – Best Practices

Introduction.

I started with series of articles about managed and unmanaged solutions from the ISV (Independent Software Vendor) perspective. You can find the first about merging forms and layering views here, and the second about missing dependencies here. I was thinking about the next topic in the managed vs. unmanaged series and decided to start over with best practices for CDS (Common Data Service) in general.

I just want to state one thing. We are ISV. We build and endorse managed solutions and these best practices are our own based on the documentation from Microsoft and implementations of customer projects.

Continue reading “Common Data Service Solution Development – Best Practices”

Quick Fix: Microsoft Flow Error – Invalid type. Expected String but got Null.

Hi, today I came across JSON parser error in Microsoft Flow. I used auto-generated schema and everything had been working just fine until a connector I used had started to return null values for strings.

Microsoft Flow error – Invalid type. Expected String but got Null.
Continue reading “Quick Fix: Microsoft Flow Error – Invalid type. Expected String but got Null.”

Merging Forms and Views – managed vs unmanaged (Microsoft Power Platform and CDS)

Introduction.

If you are developing Model-driven app (business application) above the Microsoft Power Platform and you want to follow the best practices, you should deliver your complete solutions (zip packages) as managed solutions to all downstream environments.

Your goal should be to deploy your Model-driven app through AppSource. To achieve that, your app should be separated in smaller packages that can work on their own. For better understanding let’s say, that your app is separated in three main groups.

Continue reading “Merging Forms and Views – managed vs unmanaged (Microsoft Power Platform and CDS)”

Making Xrm.WebApi.retrieveRecord Synchronous calls in Common Data Service (D365 fo CE)

With v9 a lot of changed. One of the major changes is client web API, some of calls were made deprecated and some were added. For example, Xrm.WebApi.

The new ‘Xrm.WebApi.retrieveRecord(entityLogicalName, id, options).then(successCallback, errorCallback)’ can’t be made synchronous. But imagine situation, in which you need to go through multiple entities (lookups). In this scenario, you need the result of retrieved record to access the next record. So how can this be done?

Continue reading “Making Xrm.WebApi.retrieveRecord Synchronous calls in Common Data Service (D365 fo CE)”

Override the default open behavior of data rows in an entity-bound grid

Hello there, fellow power platform customizers/developers! Have you tried to override the default open behavior in subgrid and failed?

 

What I’ve found in my research:

Documentation by Microsoft says: “You can now create a command definition for an entity with Mscrm.OpenRecordItem as the value of the Id attribute (<CommandDefinition> (RibbonDiffXml)), and define custom action for the command <Actions> (RibbonDiffXml). Customer Engagement will look for this command Id for an entity when you try to open a record from the entity-bound grid, and if present, will execute the custom action instead of opening the entity record (default behavior).”
IMPORTANT NOTE: This feature is supported only for Unified Interface.

Did this. No luck. What now? Google…

Continue reading “Override the default open behavior of data rows in an entity-bound grid”