<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Dataverse on It Must Be Code!</title><link>https://itmustbecode.com/tags/dataverse/</link><description>Recent content in Dataverse on It Must Be Code!</description><generator>Hugo</generator><language>en-CA</language><lastBuildDate>Tue, 08 Jul 2025 01:09:42 +0000</lastBuildDate><atom:link href="https://itmustbecode.com/tags/dataverse/feed.xml" rel="self" type="application/rss+xml"/><item><title>PCF Controls Tips and Tricks : How to skip Linting at Build-Time</title><link>https://itmustbecode.com/pcf-controls-tips-and-tricks-how-to-skip-linting-at-build-time/</link><pubDate>Tue, 08 Jul 2025 01:09:42 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/pcf-controls-tips-and-tricks-how-to-skip-linting-at-build-time/</guid><description>&lt;p&gt;Have you ever been unable to properly &lt;strong&gt;build&lt;/strong&gt; a PCF control because of &lt;strong&gt;linting&lt;/strong&gt; errors? Well, lately I have, and it can get really frustrating. Especially when the errors have nothing to do with your code, but are caused by an unexpected failure in the way the PCF framework handles the linting process.&lt;/p&gt;
&lt;figure&gt;&lt;img src="./image-4.png"loading="lazy"&gt;&lt;/figure&gt;
&lt;p&gt;Turns out I&amp;rsquo;m not alone as other members of the PCF community like &lt;a class="link" href="https://www.linkedin.com/in/cchannon/" target="_blank" rel="noopener"
&gt;Charles Channon&lt;/a&gt; have recently flagged linting issues with recent &lt;code&gt;pcf-scripts&lt;/code&gt; releases.&lt;/p&gt;</description></item><item><title>PCF Controls Tips &amp; Tricks : How to detect Authoring Mode</title><link>https://itmustbecode.com/pcf-controls-tips-tricks-how-to-detect-authoring-mode/</link><pubDate>Mon, 02 Jun 2025 02:57:10 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/pcf-controls-tips-tricks-how-to-detect-authoring-mode/</guid><description>&lt;p&gt;When you configure a &lt;strong&gt;PCF control&lt;/strong&gt; on a Dataverse model-driven app, the form designer will try to &lt;strong&gt;render&lt;/strong&gt; the control even though it&amp;rsquo;s not running in the actual app context.&lt;/p&gt;
&lt;p&gt;This usually isn&amp;rsquo;t a problem, but for complex controls that depend on runtime data, it can cause errors—and even break the form designer.&lt;/p&gt;
&lt;p&gt;Moreover, as a PCF developer, you might want to show a simplified or placeholder version of your control in the form designer to help makers understand how it will look when the app actually runs.&lt;/p&gt;</description></item><item><title>How to Create Deep Links to D365 F&amp;O Records with Dataverse Virtual Tables</title><link>https://itmustbecode.com/how-to-create-deep-links-to-d365-fo-records-with-dataverse-virtual-tables/</link><pubDate>Wed, 23 Apr 2025 02:30:01 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/how-to-create-deep-links-to-d365-fo-records-with-dataverse-virtual-tables/</guid><description>&lt;p&gt;It is a common requirement for SaaS platform that exposes form over data to be able to share a secure link (a.k.a. &lt;strong&gt;Deep Link&lt;/strong&gt;) to access a given record. That way, links can be shared publicly— &lt;em&gt;via email or Teams message for example&lt;/em&gt;—but clicking them still requires the user to &lt;strong&gt;authenticate&lt;/strong&gt; and have the right &lt;strong&gt;permissions&lt;/strong&gt; to access the record.&lt;/p&gt;
&lt;p&gt;For instance, Power Platform &lt;strong&gt;model-driven apps&lt;/strong&gt; have this functionality &lt;strong&gt;built in.&lt;/strong&gt; You can simply copy and share the URL exposed in the browser while looking at a specific record. If the recipient has the right credentials, they can click the link and go straight to the record. This predictable URL format also makes it super handy to build &lt;strong&gt;automations&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Model-Driven App Trick : How to Hide a Ribbon Button when the Form is Dirty</title><link>https://itmustbecode.com/model-driven-app-trick-how-to-hide-a-ribbon-button-when-the-form-is-dirty/</link><pubDate>Sun, 09 Mar 2025 19:56:52 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/model-driven-app-trick-how-to-hide-a-ribbon-button-when-the-form-is-dirty/</guid><description>&lt;p&gt;I recently encountered a requirement on a model-driven app project to display a custom ribbon button only when the form had &lt;strong&gt;no unsaved changes&lt;/strong&gt;—in other words, the button needed to be hidden whenever the form was &lt;strong&gt;dirty&lt;/strong&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img src="./image.png"loading="lazy"&gt;&lt;/figure&gt;
&lt;p&gt;While the solution is quite simple, I thought it would be a good idea to write about it and put all the pieces of the puzzle together. I also explore and provide a solution for the 2 current button extension models—the &lt;strong&gt;Classic Ribbon&lt;/strong&gt; and the &lt;strong&gt;Modern&lt;/strong&gt; commanding .&lt;/p&gt;</description></item><item><title>Finance and Operations Virtual Entity Manager for XrmToolBox</title><link>https://itmustbecode.com/finance-and-operations-virtual-entity-manager-for-xrmtoolbox/</link><pubDate>Sun, 25 Feb 2024 14:52:19 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/finance-and-operations-virtual-entity-manager-for-xrmtoolbox/</guid><description>&lt;p&gt;As Microsoft pursues its One Dynamics, One Platform initiative, substantial investments are made to integrate the &lt;strong&gt;D365 Finance and Operations&lt;/strong&gt; suite with the &lt;strong&gt;Power Platform&lt;/strong&gt; and &lt;strong&gt;Dataverse&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;These includes the ability to surface most F&amp;amp;O tables as &lt;strong&gt;&lt;a class="link" href="https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/power-platform/virtual-entities-overview?WT.mc_id=DX-MVP-5004959" target="_blank" rel="noopener"
&gt;virtual entities&lt;/a&gt;&lt;/strong&gt; in Dataverse. Bringing full CRUD capabilities, but also opening up the whole Power Platform ecosystem to &lt;strong&gt;consume and act&lt;/strong&gt; on F&amp;amp;O data. Think Power Automate, Model-driven and Canvas Apps, PCF Controls, Power Pages, etc.&lt;/p&gt;</description></item><item><title>How to Generate Dataverse Early-Bound Classes with PAC CLI ModelBuilder</title><link>https://itmustbecode.com/how-to-generate-dataverse-early-bound-classes-with-pac-cli-modelbuilder/</link><pubDate>Wed, 12 Apr 2023 03:37:47 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/how-to-generate-dataverse-early-bound-classes-with-pac-cli-modelbuilder/</guid><description>&lt;p&gt;As a Power Platform developer, I have always been a strong advocate for the use of &lt;strong&gt;early-bound&lt;/strong&gt; classes in customization projects that targets Dataverse tables and actions. Early-bound classes not only increase code readability and maintainability, they also significantly reduce the risk of errors. I think that being proficient and fast in generating early-bound classes is a must-have skill for any developers who works with the platform.&lt;/p&gt;
&lt;p&gt;Recently, the Microsoft Power Platform CLI ( &lt;strong&gt;PAC CLI&lt;/strong&gt;) introduced the new &lt;strong&gt;modelbuilder&lt;/strong&gt; command group that enables early bound classes generation directly from the CLI. Traditionally the generation of early-bound classes was primarily accomplished through a specialized tool called &lt;strong&gt;CrmSvcUtil&lt;/strong&gt;. Yet, integrating these capabilities into a more versatile and widespread tool like &lt;strong&gt;PAC CLI&lt;/strong&gt; is a logical step forward that will undoubtedly improve user adoption in the long run.&lt;/p&gt;</description></item><item><title>Dataverse Plugins : Unlock the latest C# features with PolySharp</title><link>https://itmustbecode.com/dataverse-plugins-unlock-the-latest-c-features-with-polysharp/</link><pubDate>Fri, 20 Jan 2023 03:30:30 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/dataverse-plugins-unlock-the-latest-c-features-with-polysharp/</guid><description>&lt;p&gt;Whenever a new version of C# is released I&amp;rsquo;m always eager to explore the new features of the language. However, as a Power Platform developer, it can be frustrating knowing that they can&amp;rsquo;t be used to develop Dataverse plugins, which constitutes a significant part of my daily work.&lt;/p&gt;
&lt;p&gt;As a matter of fact, due to a dependency on the Microsoft CRM SDK, Dataverse plugins are confined to use an older version of the .NET framework (4.6.2) which natively supports C#7.3, while the latest version is C# 11.&lt;/p&gt;</description></item><item><title>PCF Control compile error : Cannot find module 'ajv/dist/compile/codegen'</title><link>https://itmustbecode.com/pcf-control-compile-error-cannot-find-module-ajv-dist-compile-codegen/</link><pubDate>Tue, 03 Jan 2023 18:09:56 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/pcf-control-compile-error-cannot-find-module-ajv-dist-compile-codegen/</guid><description>&lt;p&gt;I was working on a new PCF control project and I encountered an unexpected error when attempting to build the project, even though no custom code had been added yet. (Cannot find module &lt;strong&gt;ajv/dist/compile/codegen&lt;/strong&gt;)&lt;/p&gt;
&lt;figure&gt;&lt;img src="./image.png"loading="lazy"&gt;&lt;/figure&gt;
&lt;p&gt;For reference, I&amp;rsquo;m using the latest version ( &lt;em&gt;at the time of writing&lt;/em&gt;) of the &lt;strong&gt;Microsoft Power Platform CLI&lt;/strong&gt; ( &lt;strong&gt;1.21.4+g4869036&lt;/strong&gt;) and here are the steps to reproduce :&lt;/p&gt;
&lt;figure&gt;&lt;img src="./image-2.png"loading="lazy"&gt;&lt;/figure&gt;
&lt;ol&gt;
&lt;li&gt;Execute the &lt;strong&gt;init&lt;/strong&gt; method of the &lt;strong&gt;pac cli&lt;/strong&gt;. This will scaffold a new PCF control projects with all the basic dependencies.&lt;/li&gt;
&lt;li&gt;Execute &lt;strong&gt;npm install&lt;/strong&gt; to download the dependencies&lt;/li&gt;
&lt;li&gt;Try to build the project : &lt;strong&gt;npm run build&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;❌Fails with error : Cannot find module &amp;ldquo;ajv/dist/compile/codegen&amp;rdquo;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pac pcf init -ns &amp;lt;Namespace&amp;gt; -n &amp;lt;ProjectName&amp;gt; -t field
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm install
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm run build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The error message is quite straitforward and points toward a node module that cannot be found : &lt;strong&gt;ajv/dist/compile/codegen&lt;/strong&gt; . Upon checking the &lt;strong&gt;node_modules&lt;/strong&gt; directory, even if the &lt;strong&gt;ajv&lt;/strong&gt; module seems present, the &lt;strong&gt;compile/codegen&lt;/strong&gt; part is nowhere to be found.&lt;/p&gt;</description></item><item><title>How to Call a Dataverse Custom API from a Canvas App</title><link>https://itmustbecode.com/how-to-call-a-dataverse-custom-api-from-a-canvas-app/</link><pubDate>Mon, 31 Oct 2022 04:01:32 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/how-to-call-a-dataverse-custom-api-from-a-canvas-app/</guid><description>&lt;p&gt;Dataverse Custom APIs are a powerful extension model of the PowerPlatform. However, at the time of writing, there are no direct method to execute a Custom API inside the PowerApps Canvas App model.&lt;/p&gt;
&lt;p&gt;In this post I will show how to call any Custom API from a Canvas App with the use of a generic &lt;strong&gt;Power Automate&lt;/strong&gt; Flow and the new &lt;strong&gt;ParseJSON&lt;/strong&gt; functionality.&lt;/p&gt;
&lt;figure&gt;&lt;img src="./image-25.png"loading="lazy"&gt;&lt;/figure&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;UPDATE 17-FEB-2023&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Dataverse Custom APIs can now be called &lt;strong&gt;directly&lt;/strong&gt; from PowerFx in Canvas Apps and Custom Pages. ( &lt;em&gt;still in experimental phase&lt;/em&gt;)&lt;/p&gt;</description></item><item><title>Storybook for PCF Controls - Part 2 : Publish to GitHub Pages</title><link>https://itmustbecode.com/storybook-for-pcf-controls-part-2-publish-to-github-pages/</link><pubDate>Thu, 29 Sep 2022 00:16:42 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/storybook-for-pcf-controls-part-2-publish-to-github-pages/</guid><description>&lt;p&gt;This is the &lt;strong&gt;second part&lt;/strong&gt; of a series on &lt;strong&gt;&lt;a class="link" href="https://storybook.js.org/" target="_blank" rel="noopener"
&gt;Storybook&lt;/a&gt;&lt;/strong&gt; for PowerApps Component Framework ( &lt;strong&gt;PCF&lt;/strong&gt;) controls, where I take one of my community PCF control hosted on Github (&lt;a class="link" href="https://github.com/drivardxrm/CountryPicker.PCF" target="_blank" rel="noopener"
&gt;CountryPicker.PCF&lt;/a&gt;) and implement a Storybook from scratch.&lt;/p&gt;
&lt;p&gt;While the &lt;a class="link" href="https://itmustbecode.com/storybook-for-pcf-controls-part-1-set-the-story-straight/" &gt;first post&lt;/a&gt;, revolved around the setup and authoring process of the &lt;strong&gt;Storybook&lt;/strong&gt;, this one focuses on the &lt;strong&gt;publishing&lt;/strong&gt; steps required to make Storybook static site &lt;strong&gt;publicly&lt;/strong&gt; available from &lt;strong&gt;GitHub Pages&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Storybook for PCF Controls - Part 1 : Set the Story Straight</title><link>https://itmustbecode.com/storybook-for-pcf-controls-part-1-set-the-story-straight/</link><pubDate>Mon, 12 Sep 2022 01:43:09 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/storybook-for-pcf-controls-part-1-set-the-story-straight/</guid><description>&lt;p&gt;In the frontend development world, &lt;strong&gt;&lt;a class="link" href="https://storybook.js.org/" target="_blank" rel="noopener"
&gt;Storybook&lt;/a&gt;&lt;/strong&gt; as emerged as the &lt;strong&gt;industry standard&lt;/strong&gt; to showcase and test UI components.&lt;/p&gt;
&lt;p&gt;In this series of posts I will show how easy (and rewarding) it is to implement and publish a Storybook for a &lt;strong&gt;PowerApps Component Framework (PCF)&lt;/strong&gt; project. That way users can have a direct and interactive access to the control without having to install anything on their side.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Part 1&lt;/strong&gt;, will focus on &lt;strong&gt;setting up&lt;/strong&gt; Storybook and write the stories in the context of a PCF control project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Part 2&lt;/strong&gt;, will demontrate how to &lt;strong&gt;publish&lt;/strong&gt; the Storybook to &lt;strong&gt;Github Pages&lt;/strong&gt; on every commit using &lt;strong&gt;GitHub Actions&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-is-storybook"&gt;What is Storybook
&lt;/h2&gt;&lt;p&gt;In essence, &lt;strong&gt;Storybook&lt;/strong&gt; is a framework that helps web developers express and test frontend workflows. It can be used for &lt;strong&gt;building&lt;/strong&gt;, &lt;strong&gt;documenting&lt;/strong&gt;, and &lt;strong&gt;testing&lt;/strong&gt; UI components in isolation.&lt;/p&gt;</description></item><item><title>Develop PCF Controls with FluentUI React v9</title><link>https://itmustbecode.com/develop-pcf-controls-with-fluentui-react-v9/</link><pubDate>Fri, 26 Aug 2022 04:50:52 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/develop-pcf-controls-with-fluentui-react-v9/</guid><description>&lt;p&gt;Microsoft recently unveiled the first stable version of &lt;strong&gt;FluentUI React v9&lt;/strong&gt;( &lt;strong&gt;&lt;code&gt;@fluentui/react-components&lt;/code&gt;&lt;/strong&gt;). This new edition of FluentUI is the result of joint efforts from the &lt;strong&gt;Office&lt;/strong&gt; and &lt;strong&gt;Teams&lt;/strong&gt; product teams to streamline their respective React front-end libraries into one component framework.&lt;/p&gt;
&lt;p&gt;To celebrate this 🎉, I have released 2 community PowerApps Control Framework ( &lt;strong&gt;PCF&lt;/strong&gt;) Controls that targets this new library.&lt;/p&gt;
&lt;p&gt;In this post I will reflect on my experience authoring PCF controls with this new set of components and highlight the main differences with prior versions.&lt;/p&gt;</description></item><item><title>PCF Controls - Tree-Shaking For Better Bundle Size</title><link>https://itmustbecode.com/pcf-controls-tree-shaking-for-better-bundle-size/</link><pubDate>Mon, 25 Jul 2022 02:29:08 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/pcf-controls-tree-shaking-for-better-bundle-size/</guid><description>&lt;p&gt;Building modern front-end controls and application requires great care to keep the &lt;strong&gt;size&lt;/strong&gt; of the assets as &lt;strong&gt;low&lt;/strong&gt; as possible. The development of PowerApps Control Framework (PCF) controls doesn&amp;rsquo;t fall short from this rule.&lt;/p&gt;
&lt;p&gt;In this post I will show how to optimize the &lt;strong&gt;tree-shaking&lt;/strong&gt; process and &lt;strong&gt;reduce&lt;/strong&gt; thebundle size of PCF controls with simple adjustments to &lt;strong&gt;module resolution&lt;/strong&gt; of the Typescript configuration file.&lt;/p&gt;
&lt;h2 id="how-i-got-there"&gt;How I got there
&lt;/h2&gt;&lt;p&gt;After seeing this tweet from &lt;a class="link" href="https://twitter.com/ScottDurow" target="_blank" rel="noopener"
&gt;Scott Durow&lt;/a&gt; that announced the release of &lt;a class="link" href="https://react.fluentui.dev/" target="_blank" rel="noopener"
&gt;&lt;strong&gt;FluentUI React v9&lt;/strong&gt;&lt;/a&gt; , I felt the urge and I immediately started a new PCF control project that targets this new library.&lt;/p&gt;</description></item><item><title>Visual Studio Talk Show</title><link>https://itmustbecode.com/visual-studio-talk-show/</link><pubDate>Fri, 08 Apr 2022 03:47:38 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/visual-studio-talk-show/</guid><description>&lt;p&gt;In this &lt;a class="link" href="https://visualstudiotalkshow.libsyn.com/0266-david-rivard-powerapps-control-framework-pcf" target="_blank" rel="noopener"
&gt;episode&lt;/a&gt; of the Visual Studio Talk Show, I had the great pleasure to talk (In French) with Microsoft MVP&amp;rsquo;s &lt;a class="link" href="https://www.linkedin.com/in/mariocardinal/" target="_blank" rel="noopener"
&gt;Mario Cardinal&lt;/a&gt; and &lt;a class="link" href="https://www.linkedin.com/in/guybarrette/" target="_blank" rel="noopener"
&gt;Guy Barette&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We talked about the PowerPlatform in general and mostly about my open source PCF control projects.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;&lt;img src="https://assets.libsyn.com/secure/show/46090/VSTS%5F430px.png"loading="lazy"&gt;&lt;/figure&gt;
&lt;a class="link-card" href="https://visualstudiotalkshow.libsyn.com/0266-david-rivard-powerapps-control-framework-pcf" target="_blank" rel="nofollow noopener"&gt;
&lt;img class="link-card__image" src="https://itmustbecode.com/linkcards/f7e345f5ea0077d5.png" alt="" loading="lazy"&gt;
&lt;span class="link-card__content"&gt;
&lt;strong class="link-card__title"&gt;Visual Studio Talk Show: 0266 – David Rivard – PowerApps Control Framework (PCF)&lt;/strong&gt;
&lt;span class="link-card__summary"&gt;Nous discutons avec David Rivard de PowerApps Control Framework (PCF), un cadre de programmation logiciel permettant de créer des composantes UI pour l’outil Power Apps. Power Apps permet l’écriture d’applications commerciales sans être un programmeur professionnel car il nécessite très peu de code…&lt;/span&gt;
&lt;span class="link-card__domain"&gt;visualstudiotalkshow.libsyn.com&lt;/span&gt;
&lt;/span&gt;
&lt;/a&gt;
&lt;/p&gt;</description></item><item><title>PCF control - Generate Shields.IO Badges in the PowerPlatform</title><link>https://itmustbecode.com/pcf-control-generate-shields-io-badges-in-the-powerplatform/</link><pubDate>Thu, 07 Apr 2022 02:49:10 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/pcf-control-generate-shields-io-badges-in-the-powerplatform/</guid><description>&lt;p&gt;One of the thing I like the most about &lt;strong&gt;PCF controls&lt;/strong&gt; for the PowerPlatform is the ability to change the normal behavior and rendering of forms attributes to add a new twist to the user experience.&lt;/p&gt;
&lt;p&gt;With that in mind, for my latest communityPCF control, &lt;a class="link" href="https://github.com/drivardxrm/ShieldsIO.Badge.PCF" target="_blank" rel="noopener"
&gt;ShieldsIO.Badge.PCF&lt;/a&gt;, I wanted to bring the ability to render custom (and awesome ) &lt;strong&gt;Shields.IO badges&lt;/strong&gt; to the &lt;strong&gt;PowerPlatform&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Using badges in Model-driven or Canvas Apps forms is a great way to provide &lt;strong&gt;concise&lt;/strong&gt;, &lt;strong&gt;actionable&lt;/strong&gt; and &lt;strong&gt;visually appealing&lt;/strong&gt; controls to end users.&lt;/p&gt;</description></item><item><title>Related Record Filtering with the Lookup Dropdown PCF</title><link>https://itmustbecode.com/related-record-filtering-with-the-lookup-dropdown-pcf/</link><pubDate>Wed, 09 Feb 2022 02:37:48 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/related-record-filtering-with-the-lookup-dropdown-pcf/</guid><description>&lt;p&gt;In the latest release of the &lt;strong&gt;LookupDropdown PCF&lt;/strong&gt; control for Dataverse, I have added a new feature that adds support for &lt;strong&gt;related record filtering&lt;/strong&gt;, hence the ability to filter the values of a dropdown in real-time based on the value of another lookup field. When rendered, this can produce nice cascading effect as seen below.&lt;/p&gt;
&lt;figure&gt;&lt;img src="./image-8.png"loading="lazy"&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src="./image-9.png"loading="lazy"&gt;&lt;/figure&gt;
&lt;p&gt;In this post I will show how to configure the PCF control for this scenario and dissert on what&amp;rsquo;s happening under the hood to make the magic happen.&lt;/p&gt;</description></item><item><title>Azure Key Vault Secrets in Dataverse</title><link>https://itmustbecode.com/azure-key-vault-secrets-in-dataverse/</link><pubDate>Tue, 25 Jan 2022 05:21:28 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/azure-key-vault-secrets-in-dataverse/</guid><description>&lt;p&gt;&lt;strong&gt;Environment variables&lt;/strong&gt; in Dataverse are a powerful vehicule to develop portable customizations between different environment. Recently, a new &lt;strong&gt;Secret&lt;/strong&gt; Data Type was introduced that enables the use of secrets stored in &lt;strong&gt;Azure Key Vaults&lt;/strong&gt; 🔐 .&lt;/p&gt;
&lt;p&gt;The integration between &lt;strong&gt;Dataverse&lt;/strong&gt; and &lt;strong&gt;Azure Key Vault&lt;/strong&gt; was long-awaited and I am really happy to see it materialize. It brings new kind of use cases and an &lt;strong&gt;additional security layer&lt;/strong&gt; to protect sensitive information needed in platform customizations.&lt;/p&gt;</description></item><item><title>Better UX with a Lookup Dropdown PCF Control</title><link>https://itmustbecode.com/better-ux-with-a-lookup-dropdown-pcf-control/</link><pubDate>Thu, 06 Jan 2022 02:35:50 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/better-ux-with-a-lookup-dropdown-pcf-control/</guid><description>&lt;p&gt;One of the most anticipated feature of the &lt;strong&gt;PowerApps Control Framework&lt;/strong&gt; (PCF) last year was the &lt;strong&gt;Lookup datatype support&lt;/strong&gt;. Hence the ability to bind a PCF control to a &lt;strong&gt;Lookup&lt;/strong&gt; field in a Dataverse Model-Driven form to customize it&amp;rsquo;s behavior.&lt;/p&gt;
&lt;p&gt;The feature was released last summer (&lt;a class="link" href="https://powerapps.microsoft.com/en-us/blog/announcing-the-general-availability-of-the-power-apps-component-framework-for-canvas-apps/" target="_blank" rel="noopener"
&gt;see official post&lt;/a&gt;) and the first idea that came to my mind was to create a PCF control that renders a lookup field as a &lt;strong&gt;dropdown&lt;/strong&gt; list instead of the of the out-of-the-box lookup selector.&lt;/p&gt;</description></item><item><title>PCF Controls - Useful Webpack Plugins</title><link>https://itmustbecode.com/pcf-controls-useful-webpack-plugins/</link><pubDate>Tue, 16 Nov 2021 04:58:31 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/pcf-controls-useful-webpack-plugins/</guid><description>&lt;p&gt;In my last post I explained how to enable &lt;strong&gt;custom webpack configurations&lt;/strong&gt; in a &lt;strong&gt;PowerApps Control Framework&lt;/strong&gt; project. I also showed how to generate the &lt;strong&gt;source-map&lt;/strong&gt; file of the generated PCF bundle.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a class="link" href="https://itmustbecode.com/pcf-controls-custom-webpack-configurations/" &gt;PCF controls – Custom Webpack configurations&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To continue on this track and push things a little further, I want to explore how to enhance the PCF development experience with the use of &lt;strong&gt;webpack plugins&lt;/strong&gt; that can be referenced in the custom configuration file.&lt;/p&gt;</description></item><item><title>PCF controls - Custom Webpack configurations</title><link>https://itmustbecode.com/pcf-controls-custom-webpack-configurations/</link><pubDate>Wed, 20 Oct 2021 02:06:29 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/pcf-controls-custom-webpack-configurations/</guid><description>&lt;p&gt;When developing Power Platform PCF controls, at build-time, &lt;strong&gt;&lt;a class="link" href="https://webpack.js.org/" target="_blank" rel="noopener"
&gt;Webpack&lt;/a&gt;&lt;/strong&gt; is invoked to &lt;strong&gt;bundle&lt;/strong&gt; the code and dependencies into deployable assets.&lt;/p&gt;
&lt;p&gt;While the &lt;strong&gt;out-of-the-box&lt;/strong&gt; configurations are suitable for most of the basic PCF control needs, sometimes, you need to throw &lt;strong&gt;your own custom&lt;/strong&gt; instructions in the game. This is what we are going to cover in this post.&lt;/p&gt;
&lt;h3 id="webpack-and-pcf"&gt;&lt;strong&gt;Webpack and PCF&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;I will not spend too much time on the fundamentals of Webpack, there are tons of great blog post that deep-dives on the matter. But I think its important to understand what Webpack is and how it works in PCF control development.&lt;/p&gt;</description></item><item><title>Embed Images in Model-Driven In-App Notifications</title><link>https://itmustbecode.com/embed-images-in-model-driven-in-app-notifications/</link><pubDate>Thu, 23 Sep 2021 03:38:29 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/embed-images-in-model-driven-in-app-notifications/</guid><description>&lt;p&gt;&lt;strong&gt;In-App notifications&lt;/strong&gt; for Model-Driven apps ( &lt;em&gt;still in preview at the time of writing&lt;/em&gt;) exposes a central &lt;strong&gt;notification hub&lt;/strong&gt; in Power Platform model-driven apps and the &lt;strong&gt;notifications&lt;/strong&gt; model provides a fantastic vehicle to deliver &lt;strong&gt;contextual&lt;/strong&gt; and &lt;strong&gt;user-specific&lt;/strong&gt; information.&lt;/p&gt;
&lt;figure&gt;&lt;img src="./image-8.png"loading="lazy"&gt;&lt;/figure&gt;
&lt;p&gt;In this blog post, I will continue my exploration of &lt;strong&gt;In-App notifications&lt;/strong&gt; and show how we can spice things up a little bit and create &lt;strong&gt;visually rich&lt;/strong&gt; and &lt;strong&gt;appealing&lt;/strong&gt; 💎 notifications by embedding &lt;strong&gt;images&lt;/strong&gt; inside the content.&lt;/p&gt;</description></item><item><title>Send Model-Driven In-App Notifications with Power Automate</title><link>https://itmustbecode.com/send-model-driven-in-app-notifications-with-power-automate/</link><pubDate>Fri, 03 Sep 2021 17:15:43 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/send-model-driven-in-app-notifications-with-power-automate/</guid><description>&lt;p&gt;I &lt;strong&gt;n-App notifications&lt;/strong&gt; for PowerPlatform Model-Driven apps are now &lt;a class="link" href="https://powerapps.microsoft.com/en-us/blog/announcing-public-preview-for-in-app-notifications-for-model-driven-apps/" target="_blank" rel="noopener"
&gt;available in preview&lt;/a&gt;. The feature provides a central &lt;strong&gt;notification hub&lt;/strong&gt; in the app and the notifications provides a fantastic vehicle to deliver &lt;strong&gt;contextual&lt;/strong&gt; and &lt;strong&gt;user-specific&lt;/strong&gt; information to end users.&lt;/p&gt;
&lt;p&gt;While my last post showed how to &lt;strong&gt;&lt;a class="link" href="https://itmustbecode.com/enable-model-driven-in-app-notifications-with-power-automate/" &gt;enable notifications&lt;/a&gt;&lt;/strong&gt; in model-driven apps, let&amp;rsquo;s see what the &lt;strong&gt;real deal&lt;/strong&gt; is and start creating simple notifications.&lt;/p&gt;
&lt;p&gt;As a use case, we will create a &lt;strong&gt;Power Automate&lt;/strong&gt; flow that will notify users whenever a new article is posted on the official PowerApps blog (&lt;a class="link" href="https://powerapps.microsoft.com/en-us/blog" target="_blank" rel="noopener"
&gt;https://powerapps.microsoft.com/en-us/blog&lt;/a&gt;). Something like this.&lt;/p&gt;</description></item><item><title>Enable Model-Driven In-App Notifications with Power Automate</title><link>https://itmustbecode.com/enable-model-driven-in-app-notifications-with-power-automate/</link><pubDate>Sun, 29 Aug 2021 20:45:22 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/enable-model-driven-in-app-notifications-with-power-automate/</guid><description>&lt;p&gt;&lt;strong&gt;In-App notifications&lt;/strong&gt; for PowerPlatform model-driven apps has been released in public preview ( &lt;em&gt;see official Microsoft blog post below&lt;/em&gt;). I am particularly excited about this new feature as it opens up very interesting scenarios that can have a significant impact on the user experience.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;&lt;img src="https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/media/app-notification-with-single-action.png" alt="App notification with single action"loading="lazy"&gt;&lt;figcaption&gt;App notification with single action&lt;/figcaption&gt;&lt;/figure&gt;
&lt;a class="link-card" href="https://powerapps.microsoft.com/en-us/blog/announcing-public-preview-for-in-app-notifications-for-model-driven-apps/" target="_blank" rel="nofollow noopener"&gt;
&lt;img class="link-card__image" src="https://powerapps.microsoft.com/images/shared/social/social-share-post-ignite.png" alt="" loading="lazy"&gt;
&lt;span class="link-card__content"&gt;
&lt;strong class="link-card__title"&gt;Announcing public preview for in-app notifications in model-driven apps&lt;/strong&gt;
&lt;span class="link-card__summary"&gt;With this public preview, notifications can be send to users within the model-driven app and are displayed using a notification center and notification toasts.&lt;/span&gt;
&lt;span class="link-card__domain"&gt;powerapps.microsoft.com&lt;/span&gt;
&lt;/span&gt;
&lt;/a&gt;
&lt;/p&gt;</description></item><item><title>Catalog Manager for XrmToolBox</title><link>https://itmustbecode.com/catalog-manager-for-xrmtoolbox/</link><pubDate>Wed, 23 Jun 2021 14:52:36 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/catalog-manager-for-xrmtoolbox/</guid><description>&lt;p&gt;&lt;strong&gt;Business Events&lt;/strong&gt; ( &lt;em&gt;still in preview at the time of writing&lt;/em&gt;) are opening up new paradigms for event-driven patterns in the Dataverse. (👉see Microsoft &lt;a class="link" href="https://docs.microsoft.com/en-us/powerapps/developer/data-platform/business-events?WT.mc_id=DX-MVP-5004959" target="_blank" rel="noopener"
&gt;press release&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Essentially, They rely on 2 new tables &lt;strong&gt;Catalog&lt;/strong&gt; and &lt;strong&gt;Catalog Assignment&lt;/strong&gt; that are surfaced in the Solution explorer.&lt;/p&gt;
&lt;figure&gt;&lt;img src="./image-5.png"loading="lazy"&gt;&lt;/figure&gt;
&lt;p&gt;However, the authoring capabilities are &lt;strong&gt;limited&lt;/strong&gt; for the moment and it&amp;rsquo;s hard to have a high level view of the Catalogs in your environment. Hence the idea behind the &lt;strong&gt;Catalog Manager&lt;/strong&gt; tool for XrmToolBox.&lt;/p&gt;</description></item><item><title>Dataverse Custom API: Keep It Private</title><link>https://itmustbecode.com/dataverse-custom-api-keep-it-private/</link><pubDate>Mon, 25 Jan 2021 02:40:22 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/dataverse-custom-api-keep-it-private/</guid><description>&lt;p&gt;Pursuing my series of blog posts on Dataverse Custom API features, this one will be &lt;em&gt;&amp;lsquo;short and sweet&amp;rsquo;&lt;/em&gt; and explores the usage of the &lt;strong&gt;IsPrivate&lt;/strong&gt; attribute that can be found on the Custom API Table.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The ability to set an API as a Private message is a unique feature of the Custom API model and does not exist for classic Workflow Custom Actions.&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;🚨The &lt;strong&gt;IsPrivate&lt;/strong&gt; Attribute is (currently) &lt;strong&gt;not available/editable&lt;/strong&gt; using the out-of-the-box Custom API authoring experience (Model-Driven form). That&amp;rsquo;s a &lt;strong&gt;very good reason&lt;/strong&gt; to try my &lt;strong&gt;&lt;a class="link" href="https://itmustbecode.com/customapi-manager-for-xrmtoolbox/" &gt;Custom API manager&lt;/a&gt;&lt;/strong&gt; tool for XrmToolBox where the attribute can be set easily. 😏&lt;/p&gt;</description></item><item><title>XrmToolCast - Podcast</title><link>https://itmustbecode.com/xrmtoolcast-podcast/</link><pubDate>Tue, 19 Jan 2021 04:29:00 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/xrmtoolcast-podcast/</guid><description>&lt;p&gt;I had the great pleasure to &lt;strong&gt;geek out&lt;/strong&gt; with &lt;a class="link" href="https://twitter.com/rappen" target="_blank" rel="noopener"
&gt;Jonas Rapp&lt;/a&gt; and &lt;a class="link" href="https://twitter.com/ddlabar" target="_blank" rel="noopener"
&gt;Daryl Labar&lt;/a&gt; on this episode of XrmToolCast&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;&lt;img src="./David_With_Daryl_and_Jonas-2.jpg"loading="lazy"&gt;&lt;/figure&gt;
&lt;a class="link-card" href="https://xrmtoolcast.libsyn.com/the-dataverse-custom-api-collection-with-david-rivard" target="_blank" rel="nofollow noopener"&gt;
&lt;img class="link-card__image" src="https://itmustbecode.com/linkcards/2d748768202d0ec9.png" alt="" loading="lazy"&gt;
&lt;span class="link-card__content"&gt;
&lt;strong class="link-card__title"&gt;XrmToolCast: The Dataverse Custom API Collection with David Rivard&lt;/strong&gt;
&lt;span class="link-card__summary"&gt;Dataverse has had custom actions for some time now, and now, a similar new tool is available to Dataverse developer, Custom APIs.  We’ve brought David Rivard on to not only help define what they are, but to talk about his new .  Other topics covered: What’s the difference between Custom A…&lt;/span&gt;
&lt;span class="link-card__domain"&gt;xrmtoolcast.libsyn.com&lt;/span&gt;
&lt;/span&gt;
&lt;/a&gt;
&lt;/p&gt;</description></item><item><title>Custom API Manager for XrmToolBox</title><link>https://itmustbecode.com/customapi-manager-for-xrmtoolbox/</link><pubDate>Mon, 04 Jan 2021 02:46:01 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/customapi-manager-for-xrmtoolbox/</guid><description>&lt;p&gt;Like most Power Platform developers, I am a heavy user of the &lt;a class="link" href="https://www.xrmtoolbox.com/" target="_blank" rel="noopener"
&gt;&lt;strong&gt;XrmToolBox&lt;/strong&gt;&lt;/a&gt; a community project led by &lt;strong&gt;&lt;a class="link" href="https://mvp.microsoft.com/en-us/PublicProfile/4028956" target="_blank" rel="noopener"
&gt;Tanguy Touzard&lt;/a&gt;&lt;/strong&gt;. The myriad of tools it surfaces just makes my day to day job a lot less painful. I also &lt;strong&gt;secretly&lt;/strong&gt; been wanting to write a tool of my own to contribute to this amazing project for a long time.&lt;/p&gt;
&lt;h2 id="the-wait-is-over-"&gt;&lt;strong&gt;The wait is over&lt;/strong&gt; 🎉
&lt;/h2&gt;&lt;p&gt;Today, I&amp;rsquo;m proud to release my first tool called &lt;strong&gt;&lt;a class="link" href="https://www.xrmtoolbox.com/plugins/XTB.CustomApiManager/" target="_blank" rel="noopener"
&gt;Custom API Manager&lt;/a&gt;&lt;/strong&gt;, and I really think that it will fill a gap in the current Custom API authoring experience.&lt;/p&gt;</description></item><item><title>XTB.CustomApiManager for XrmToolBox</title><link>https://itmustbecode.com/xtbcustomapimanager-for-xrmtoolbox/</link><pubDate>Sat, 02 Jan 2021 21:33:54 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/xtbcustomapimanager-for-xrmtoolbox/</guid><description>&lt;a class="link-card" href="https://github.com/drivardxrm/XTB.CustomApiManager" target="_blank" rel="nofollow noopener"&gt;
&lt;img class="link-card__image" src="https://itmustbecode.com/linkcards/5f73033359771e6e.jpg" alt="" loading="lazy"&gt;
&lt;span class="link-card__content"&gt;
&lt;strong class="link-card__title"&gt;drivardxrm/XTB.CustomApiManager&lt;/strong&gt;
&lt;span class="link-card__summary"&gt;Dataverse Custom Api Manager for XrmToolBox. Contribute to drivardxrm/XTB.CustomApiManager development by creating an account on GitHub.&lt;/span&gt;
&lt;span class="link-card__domain"&gt;github.com&lt;/span&gt;
&lt;/span&gt;
&lt;/a&gt;
&lt;p&gt;Management tool that provides 360° View of Dataverse Custom APIs. Provides CRUD operations on Custom API, Request Parameters (Inputs) and Response Properties (Outputs).&lt;/p&gt;
&lt;p&gt;Integrates with &lt;a class="link" href="https://github.com/rappen/CustomActionTester" target="_blank" rel="noopener"
&gt;Custom API Tester&lt;/a&gt; Tool&lt;/p&gt;
&lt;p&gt;Please submit any ideas 💡 or questions ❓  &lt;a class="link" href="https://github.com/drivardxrm/XTB.CustomApiManager/discussions" target="_blank" rel="noopener"
&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;a class="link-card" href="https://www.xrmtoolbox.com/plugins/XTB.CustomApiManager/" target="_blank" rel="nofollow noopener"&gt;
&lt;img class="link-card__image" src="https://itmustbecode.com/linkcards/7963c972123cfedd.png" alt="" loading="lazy"&gt;
&lt;span class="link-card__content"&gt;
&lt;strong class="link-card__title"&gt;Dataverse Custom API Manager · XrmToolBox&lt;/strong&gt;
&lt;span class="link-card__summary"&gt;Management tool that provides 360° View of Dataverse Custom APIs. Provides CRUD operations on Custom API, Request Parameters (Inputs) and Response Properties (Outputs).&lt;/span&gt;
&lt;span class="link-card__domain"&gt;www.xrmtoolbox.com&lt;/span&gt;
&lt;/span&gt;
&lt;/a&gt;
&lt;a class="link-card" href="https://www.nuget.org/packages/XTB.CustomApiManager/" target="_blank" rel="nofollow noopener"&gt;
&lt;img class="link-card__image" src="https://itmustbecode.com/linkcards/9941560ef828710d.png" alt="" loading="lazy"&gt;
&lt;span class="link-card__content"&gt;
&lt;strong class="link-card__title"&gt;XTB.CustomApiManager 1.2020.12.27&lt;/strong&gt;
&lt;span class="link-card__summary"&gt;Management tool that provides 360° View of Dataverse Custom APIs. Provides CRUD operations on Custom API, Request Parameters (Inputs) and Response Properties (Outputs).&lt;/span&gt;
&lt;span class="link-card__domain"&gt;www.nuget.org&lt;/span&gt;
&lt;/span&gt;
&lt;/a&gt;</description></item><item><title>Dataverse Custom API collection</title><link>https://itmustbecode.com/dataverse-custom-api-collection/</link><pubDate>Sat, 02 Jan 2021 21:20:57 +0000</pubDate><guid isPermaLink="false">https://itmustbecode.com/dataverse-custom-api-collection/</guid><description>&lt;a class="link-card" href="https://github.com/drivardxrm/Dataverse-CustomApis" target="_blank" rel="nofollow noopener"&gt;
&lt;img class="link-card__image" src="https://itmustbecode.com/linkcards/e9ffe6985986dfe4.png" alt="" loading="lazy"&gt;
&lt;span class="link-card__content"&gt;
&lt;strong class="link-card__title"&gt;drivardxrm/Dataverse-CustomApis&lt;/strong&gt;
&lt;span class="link-card__summary"&gt;Collection of Dataverse Custom Apis. Contribute to drivardxrm/Dataverse-CustomApis development by creating an account on GitHub.&lt;/span&gt;
&lt;span class="link-card__domain"&gt;github.com&lt;/span&gt;
&lt;/span&gt;
&lt;/a&gt;
&lt;p&gt;This project contains a set of generic Dataverse Custom APIs that can be installed and consumed in any Dataverse environment.&lt;/p&gt;
&lt;p&gt;The goal of the project is to enhance the capability of PowerPlatform developers and makers by providing robust and easy to use API that can be consumed agnostically by any calling mechanism. (Ex. Power Automate, PCF, Model-Driven Form javascript, &amp;hellip;)&lt;/p&gt;</description></item></channel></rss>