Environment vs. Source code centric ALM approach
Mar26

Environment vs. Source code centric ALM approach

When I discuss different Application Lifecycle Management (ALM) approaches with colleagues, customers and other community members there is often confusion about the differences between an Environment centric and Source code centric approach. This blog post tries to explain the differences and shed some light on the different terms. Environment centric approach As the name suggests the… Continue Reading Benedikt’s Article...

Read More

Why use managed solutions

Every now and then I get asked why someone should use managed solutions. We also had a discussion internally recently because some of our projects have problems with it. The same discussion came up in the Power Platform Level Up discord. This blog post tries to summarize those discussions and give insights to a broader audience. If you are not part of the Power Platform Level Up discord I… Continue Reading Benedikt’s...

Read More
Improve Solution import time
Nov24

Improve Solution import time

Microsoft is investing a lot in advancements in the overall Application Lifecycle Management process and capabilities. One area they already made a lot of improvements is the Solution import time. In this blog post, we will discuss how this improved solution import time can be achieved. Background As mentioned Microsoft has improved the import time when it is done with the correct… Continue Reading Benedikt’s Article on...

Read More
Generic TS/JS to open a Custom Page
Aug15

Generic TS/JS to open a Custom Page

In the last few weeks, I have created TS/JS functions/snippets for several projects to open a custom Page from a ribbon button within a model-driven app. Since I am a lazy developer and like to make stuff reusable, I created a generic TS/JS to open a Custom Page. In this article, I will explain the script. Sara Lagerquist wrote a companion blog post which explains in detail how this script… Continue Reading Benedikt’s...

Read More
Upcoming Licensing enforcement in Power Automate explained
Aug01

Upcoming Licensing enforcement in Power Automate explained

A few weeks ago I saw a message in the M365 Message Center regarding “Non-compliant” flows. Unfortunately, I can’t find the message any longer, but it was pretty concerning because it looked like a lot of flows could be turned off during the summer holiday season. Therefore I am making this attempt to explain the upcoming licensing enforcement in Power Automate. This whole topic created… Continue Reading...

Read More
Release 2023 Wave 2 Summary
Jul18

Release 2023 Wave 2 Summary

As I described in one of my previous posts (Explaining “One Version” – Dynamics MDA) Microsoft is releasing two “Waves” of new functionalities and improvements per year. Today, 2023-07-18, Microsoft has published the Release Notes for the Release 2023 Wave 2. Like the last time, it is overall a quite huge “document”. This blog post is a “curated” summary of the Release 2023 Wave… Continue Reading...

Read More
Async onSave preventDefault with external call
Mar20

Async onSave preventDefault with external call

One of our current projects is the migration of an onPrem Dynamics 365 to the Cloud. Part of that is refactoring existing JavaScript implementation. The current implementation had an onSave function which prevented the save process based on a call to the WebAPI. It took me some time to migrate the function, therefore I thought it might be interesting for others to know how to write an async… Continue Reading Benedikt’s...

Read More
Read-only nested editable grid
Feb22

Read-only nested editable grid

One of my colleagues recently approached me regarding a requirement she had. In one of our customer projects, we needed to show a subgrid with information from a table two relations away. In this blog post, we will learn how to create a read-only nested editable grid in dataverse. Problem As mentioned one customer had the requirement to show information from a table two relationships… Continue Reading Benedikt’s Article on...

Read More
Fill Excel using Power Automate and Office Script
Oct25

Fill Excel using Power Automate and Office Script

Över two years ago I wrote about how to “create and fill an Excel file dynamically using Power Automate“. I recently had a similar use case again. I discovered Office Script (Thanks to Tomasz Poszytek (LinkedIn, Twitter, Blog) for mentioning it to me), which I found to be a much easier way of manipulating Excel fills than doing everything in Power Automate. Therefore I decided to recreate the… Continue Reading...

Read More
Export Dataverse data to SQL using Data Lake and ADF
Oct10

Export Dataverse data to SQL using Data Lake and ADF

I recently had the challenge of exporting Dataverse data to an SQL Database. I ended up using an Azure Data Lake Gen2 in combination with an Azure Data Factory (ADF). Throughout the process of setting it up, I faced some issues. We will discuss those in this blog post. Parts of the shown implementation are in preview as of writing this article. Background One of my customers still… Continue Reading Benedikt’s Article on...

Read More
Environment Variable caching in Power Automate
Feb22

Environment Variable caching in Power Automate

In this blog post, we will talk about Environment Variable caching in Power Automate, what the problem is with it and how to work around it. I have attached both a managed and unmanaged solution containing the complete flow to this post. You can find the link furthure down at the bottom of this page. Background As of writing this blog post (2022-02-22) Power Automate Flows do cache… Continue Reading Benedikt’s Article on...

Read More
Connections and Connection References explained
Feb08

Connections and Connection References explained

In the last couple of weeks/months, I found myself explaining Connections and Connection References to several colleagues as well as community members while having conversations with them. Usually, questions about them came up along with other stuff we talked about. This made me think it might be interesting for the wider community to get Connections and Connection References explained. So… Continue Reading Benedikt’s...

Read More

Release 2022 Wave 1 Summary

As I described in one of my previous posts (Explaining “One Version” – Dynamics MDA) Microsoft is releasing two “Waves” of new functionalities and improvements per year. Today, 25.01.2022, Microsoft has published the Release Notes for the Release 2022 Wave 1. Like the last time, it is overall a quite huge “document”. This blog post is a “curated” summary of the Release 2022 Wave… Continue Reading...

Read More
Dataverse Solutions explained
Jan18

Dataverse Solutions explained

With the rising number of citizen developers, I thought it might be time to write a blog post explaining Dataverse Solutions. When developing/configuring within Dataverse one question comes up pretty soon How do I get my changes from one environment to another That’s where Solutions come into the picture. Let’s see what they are good for and what the dos and don’ts are. < h2 id=”basics”><i...

Read More
Setup a Service Principal in Power Automate
Jan04

Setup a Service Principal in Power Automate

Every now and then I get the question on how to setup a Service principal in Power automate. This blog post intends to explain this common request. Background First of all, we have to talk about what a Service Principal is and why we should use it. What is a Service Principal? The Microsoft docs do describe a Service Principal very well. They write the following: To access… Continue Reading Benedikt’s Article on their blog...

Read More
Create custom connector for own API
Dec30

Create custom connector for own API

Recently I have been in a project where we had to create a custom connector for our own API of the customer. The setup was not as straightforward as I would have expected and took me way longer than I would have liked it to be. Since I don’t think I am the only one with that problem I thought why not create a blog post about it. If you only are searching for the setup of the App… Continue Reading Benedikt’s Article...

Read More
Settings solution component explained
Dec04

Settings solution component explained

A few days ago Microsoft announced a new Feature in public preview, the Settings solution component. In this blog post, we will take a look at this new feature. I will explain how it works and how you could use it in your solution. The functionality I will explain in this blog post is still in preview and might change over time. It is working as described as of writing this blog post… Continue Reading Benedikt’s Article on...

Read More
Set Connection References and Environment Variables in Pipelines
Dec02

Set Connection References and Environment Variables in Pipelines

Since Microsoft has released both Connection References and Environment Variables the process of setting them in a Pipeline wasn’t very straightforward. Scott Durow (Twitter & LinkedIn) explained a possible solution to it in one of his blog posts (Connection References with ALM – Mind the Gap!). In this blog post, I will explain a different way to set Connection References and Environment… Continue Reading...

Read More
Spkl setup for multiple assemblies
Sep12

Spkl setup for multiple assemblies

In several of my previous posts (Add Sparkle XRM to a Webresources project or Deploying Web resources or Plugins with Azure DevOps Pipeline), I mentioned Sparkle XRM for webresource deployment. I am currently in a project where we have several plugin assemblies (as I described here), one per entity. I struggled to set up spkl to be able to deploy all of those at once. After figuring out how it… Continue Reading Benedikt’s...

Read More
App secret valid longer than 24 months
Aug24

App secret valid longer than 24 months

As you might know, it’s only possible to create app registrations secrets that are valid for a maximum of 24 months. At least in the Azure UI. The process of creating it in the UI I described in an earlier post. In this blog post, you will learn how to create an app secret valid longer than 24 months. In the section “Summary” you can find everything you’ll need in case you don’t need all… Continue...

Read More
Execute Power Apps CLI in Azure DevOps
Aug06

Execute Power Apps CLI in Azure DevOps

A few months ago I wrote a post about how to “Unpack Canvas Apps in a Pipeline“. The first function of the Power Apps CLI (PAC) was around PCF creation. Since then a lot was added to it and there is still more to come I do assume. Since a few weeks the Power Apps Solution Packager (PASopa) is included in the PAC, which means the approach I explained in the other post is not needed anylonger…. Continue Reading...

Read More
Add Sparkle XRM to a Webresources project
Jun16

Add Sparkle XRM to a Webresources project

One of the presentations I give regularly is about setting up a Typescript project for Dataverse. It basically is a presentation/live demo of one of my other blog posts. One of the questions I get often during the presentation is how to set up Sparkle XRM to automate the deployment process of Webresources. So I thought it might be good to write a blog post about how to add Sparkle XRM to a… Continue Reading Benedikt’s...

Read More
Folder structure of a Dataverse project
Apr27

Folder structure of a Dataverse project

A few days ago Daryl LaBar (LinkedIn & Twitter) tweeted a question regarding the folder structure of a Dataverse project. Naming conventions/Folders for repository of #PowerPlatform projects? Maybe something like this:Root– Canvas (maybe this belongs in solutions?)– Client (for WebResources/PCF controls)– Server (For Plugins/Workflows)– Solutions@MikeFactorial @PPDevWeekly @ScottDurow—… Continue...

Read More
Implement MS Graph silent flow and device code flow using NodeJS backend
Apr22

Implement MS Graph silent flow and device code flow using NodeJS backend

In this blog post, you will learn how to request MS Graph with silent flow using device code flow with NodeJS. I will use the NodeJS application I developed for my Teams status indicator light as an example. You can find the complete code on my GitHub. If you would like to skip all the chit chat at the beginning you can directly go to either “Implementation” or even further to “

Read More
Create a Teams status indicator light
Mar31

Create a Teams status indicator light

For a long time, I thought about a great use case for a raspberry pi. Beginning of 2021 I found a great article of Elio Struyf on how he created such a light. I thought: “I want one of those! This is a great use case to get my first raspberry pi.”. So that’s when I decided to create a Teams status indicator light of my own. Unfortunately, his setup and approach weren’t usable for me. In the… Continue...

Read More
Unpack Canvas Apps in a Pipeline
Mar19

Unpack Canvas Apps in a Pipeline

In this blog post we will learn how to unpack Canvas Apps in a pipeline to be able to see and track changes in our repository. Problem As you might know the step “Unpack Solution” of the Power Platform Build Tools will not unpack Canvas apps. When you run the mentioned step (as described in one of my previous posts) canvas apps will be stored in your repo as .msapp-files. < div class=”wp-block-image...

Read More
How to handle hotfixes in Dataverse
Feb28

How to handle hotfixes in Dataverse

Recently I noticed some questions coming up here and there regarding how to handle hotfixes in Dataverse. There was one community member who specifically asked whether I would have a blog post about that. @BergmannBene do u have a blogpost about this strategy somewhere maybe? Sounds interesting. Ur way of deploying sounds sophisticated. I m struggling espacially with the hot fix part at… Continue Reading Benedikt’s Article...

Read More
Add SASS to a TypeScript project for Dataverse
Feb21

Add SASS to a TypeScript project for Dataverse

In some of my recent blog posts, we learned how to set up a TypeScript project and how to add React and tests to it. Today we will learn how to add SASS to a TypeScript project for Dataverse. The following configuration is working as of writing this blog post (February 2021). Everything in the Front-end space is evolving very fast. There might be stuff that is not working as described when… Continue Reading Benedikt’s...

Read More
Release 2021 Wave 1 summary
Jan27

Release 2021 Wave 1 summary

As I described in one of my previous posts (Explaining “One Version” – Dynamics MDA) Microsoft is releasing two “Waves” of new functionalities and improvements per year. Today, 27.01.2021, Microsoft has published the Release Notes for the Release 2021 Wave 1. Like the last time, it is overall a quite huge “document”. This blog post is a “curated” summary of the Release 2021 Wave… Continue Reading...

Read More
Use Fiddler to serve a local version of Webresources
Jan21

Use Fiddler to serve a local version of Webresources

In this article, I would like to explain how to use Fiddler to serve a local version of Webresources. End of last year I asked a question about source maps to the community on Twitter. How do you handle JS sourceMaps within your Dataverse/CDS projects? Do you even use them?— Benedikt Bergmann ?? ?? (@BergmannBene) November 23, 2020 After a short time Fiddler popped up… Continue Reading Benedikt’s Article on their...

Read More
Add React and Tests to a TypeScript project
Jan17

Add React and Tests to a TypeScript project

In one of my last blog posts, I explained how to set up a basic TypeScript project. In this article, I would like to explain how to add React and Tests to a TypeScript project. We will achieve this in a way that the react parts are in the same structure as the rest of our TypeScript. At the end of this post, you can find a “Summary” section where I list all the commands we executed and the… Continue Reading...

Read More
[QuickTip] How to use setVisible within TypeScript
Dec05

[QuickTip] How to use setVisible within TypeScript

One of my colleagues recently approached me and asked how one could use the function “setVisible” on a Dataverse control in TypeScript. The function is present in JavaScript but when trying to use it in TypeScript he got an error. SetVisible Error The reason for that is that setVisible is not exposed in the Xrm type definitions. Since it is there in JavaScript (as you can see in the

Read More
Setting up a TyeScript project for Dataverse
Dec04

Setting up a TyeScript project for Dataverse

In one of my recent projects, I had the need to set up a new TypeScript project. To be honest it was the first time I did this from scratch, which resulted in a few situations where I had to search for tutorials/explanations and combine all of those. That is the reason for me to write this blog post and describe how to do that. There are a few great posts about this topic out there already… Continue Reading Benedikt’s...

Read More
Setting up a TypeScript project for Dataverse
Dec04

Setting up a TypeScript project for Dataverse

In one of my recent projects, I had the need to set up a new TypeScript project. To be honest it was the first time I did this from scratch, which resulted in a few situations where I had to search for tutorials/explanations and combine all of those. That is the reason for me to write this blog post and describe how to do that. There are a few great posts about this topic out there already… Continue Reading Benedikt’s...

Read More
Filter rows between start and end dates
Nov17

Filter rows between start and end dates

In this article we will learn how to filter a list of rows (f.k.a records, learn more) between start and end dates. Scenario In one of my current projects we had the need to categorize rows. Creating new categories should be dynamically and not require a deployment. To achieve this we created a table (f.k.a entity, learn more) to store the categories. The table contains, beside… Continue Reading Benedikt’s Article on their...

Read More
How to call Xrm.WebApi using TypeScript
Nov01

How to call Xrm.WebApi using TypeScript

A lot of projects come to a point where it gets necessary to get information from another entity within JavaScript (JS)/TypeScript (TS) to act on those in some way. There are different ways of achieving this. Some of those are sync calls, which should not be used. In this post, I will describe how to get this information in a proper way using the Xrm.WebAPI, TypeScript and async… Continue Reading Benedikt’s Article on...

Read More
Enable additional language in CDS with Azure DevOps Pipelines
Oct22

Enable additional language in CDS with Azure DevOps Pipelines

In this blog post, you will learn how to enable additional languages in your CDS environment with Azure DevOps pipelines. This post can be considered the second post in a series of blog posts that talk about different approaches to solve challenges with Azure DevOps Pipelines that cannot be solved with the Power Platform Build Tools. The first blog post in that series explained how one… Continue Reading Benedikt’s Article...

Read More
Adding Anchor Links to every header
Sep29

Adding Anchor Links to every header

Usually, I blog about the Power Platform, Dynamics 365/CDS, and ALM, but in this blog post, I will describe how to add Anchor Links to every header of your blog posts automatically. A few weeks ago, Jonas Rapp posted a video on how to add Header Anchor Links in WordPress. My first thought was: “That is really nice and helpful. I want that on my blog as well!” My second thought was:… Continue Reading Benedikt’s...

Read More
Create and fill an Excel file dynamically with Power Automate
Sep27

Create and fill an Excel file dynamically with Power Automate

In this article, I will describe how to create an Excel file dynamically with Power Automate and fill it with data from the Common Data Service. Creating those dynamically can be a bit tricky. Therefore, I will provide step by step description of how to do that. Scenario Let’s assume AB Company is using Dynamics 365 for Marketing and manages events within this module. The handling of… Continue Reading Benedikt’s...

Read More
Apply Solution Upgrade in Pipeline
Sep20

Apply Solution Upgrade in Pipeline

In todays article I would like to describe how it is possible to apply a Solution Upgrade directly in your Azure DevOps pipeline. Background Let me give you some background information first. Update/Upgrade While working with managed solutions you do have two different options when importing a solution: Update It will add components that have been added to the solution and… Continue Reading Benedikt’s Article on their blog...

Read More
Deploying Web resources or Plugins with Azure DevOps Pipeline
Jul14

Deploying Web resources or Plugins with Azure DevOps Pipeline

In this blog post, I will explain how to deploy Web resources automatically with Azure DevOps Pipelines. To achieve this, I will use Sparkle XRM from Scott Durow (LinkedIn & Twitter). This article will not cover how to set up Sparkle, since Scott has some excellent videos about this already (Web Resources & Plugins) To make it easier we will focus on deploying only Web resources in this… Continue Reading Benedikt’s...

Read More
Close Case with Power Automate
Jun27

Close Case with Power Automate

In one of the projects, I am currently working on, we recently had the requirement to close/resolve a case when a certain condition is met. Unfortunately, it is not possible to do this with Power Automate directly. But one of my colleagues, Jesper Jonsson, came up with a nice solution and asked me to write about it. So, the credit should go to him. Problem Like mentioned our… Continue Reading Benedikt’s Article on their...

Read More
Quality Gates for Check-Ins
Jun14

Quality Gates for Check-Ins

In this blog post I will describe how it is possible to add Quality Gates for Check-Ins in your git repository. The solution contains several Quality Gates: It will not be possible to check-in directly to the “master” branch. A Pull-Request will always be needed.At least one other person/developer has to accept the Pull-Request before it will be possible to merge it.All Comments on the… Continue Reading...

Read More
PCF – Use “ConversationControl”
May23

PCF – Use “ConversationControl”

A few weeks ago, I have published a new PCF Control, “ConversationControl” (Github, PCFGallery, my Page). Since the release, I received one or two questions on how to use the control. It looks like it is not as straight forward as I thought. In this post, I will describe the use case of the control as well as how to configure and use it. Use case Let me begin by explaining the use case… Continue Reading...

Read More
PCF – Prevent saving the form when input is invalid
May01

PCF – Prevent saving the form when input is invalid

In today’s article, we will learn how it is possible to make it possible to prevent saving the form when input in your custom PCF control is invalid. At the moment there is no out of the box possibility to do this. There is an idea from Ben Thompson regarding this issue in the idea forum. Thanks to Andreas Ziegler who pointed it out and change one of my PCFs to make it work. Now all of… Continue Reading Benedikt’s...

Read More
PCF – How to use images in component
Apr22

PCF – How to use images in component

A few days ago a twitter user (kr!$#n@) mentioned me and some other developers in a tweet. Included was a question regarding PCF. How to set icon for button in PCF Button Control without using font awesome ? Please suggest @DynamicsNinja @nishantranaCRM @linnzawwin @BergmannBene @ramimounla— kr!$#n@ (@dkrishnap) April 4, 2020 I was happy to help and honored to be one of the persons… Continue Reading Benedikt’s...

Read More
ALM – Run EasyRepro in Azure DevOps Pipeline
Mar29

ALM – Run EasyRepro in Azure DevOps Pipeline

In my previews articles, you learned about Basic ALM, how to use the Solution Checker in an Azure DevOps pipeline as well as how to use the results of it. In this article you will learn another “Quality Gate” you could add to your ALM process. We look at how to run EasyRepro in Azure DevOps Pipeline. EasyRepro EasyRepro is a UI (User Interface) Test Framework for Dynamics 365 and all… Continue Reading...

Read More
ALM – Use Results of Solution Checker
Mar06

ALM – Use Results of Solution Checker

In my last post, you learned how to use the Solution Checker in an Azure DevOps pipeline. Lars Martin asked a question regarding using the results of this step on LinkedIn. This inspired me to write this article. Thanks to Lars. Result The Solution Checker will evaluate a solutions zip file against certain criteria. If a violation or issue is found it will be marked and shown in the… Continue Reading Benedikt’s Article on...

Read More
ALM – Using “Solution Checker” in a pipeline
Feb23

ALM – Using “Solution Checker” in a pipeline

In my last post, I explained a Basic ALM process for CDS. In this article, I promised to write about different Quality Gates to improve a pipeline. Today we will learn how it is possible to use the “Solution Checker” in a pipeline as a Quality Gate (QG). This kind of QG would fit in different parts of the Basic ALM process. For example, before pushing the unmanaged solution to the source… Continue Reading...

Read More
CDS – Basic ALM process
Feb10

CDS – Basic ALM process

In today’s article, I will explain a Basic ALM Process inside of CDS. This article is split into 3 Areas Explaining ALMGoal processImplement the process For the implementation, I will use Azure DevOps and the PowerApps BuildTools. Explaining ALM The application lifecycle describes the complete circle an application normally does over and over again. The following image describes… Continue Reading Benedikt’s Article...

Read More