How to work with connection References
In one of my older posts, I described how connections and connection references work. I still often get asked how one can properly work with connection references since a few problems always occur. In this post, I will explain everything you need to know about how to work with connection references in the area of flows. Recap Let’s first have a short recap of the mentioned blog post to… Continue Reading Benedikt’s...
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...
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...
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...
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...
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...
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...
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-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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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 “
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...
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...
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...
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...
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...
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...
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...
[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
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...