Vote for Cange first result! ✅🏆

A while back I started the YouTube series Vote For Change where I highlighted different Ideas on Microsoft’s change portal and pushed for more votes.

The idea was to create more traction around the subjects so that we could all push for changes that the people wanted, and not just Microsoft’s top priority. With the low number of votes on the Dynamics side, it was important to get the number higher so that Microsoft would take us more seriously.

The results so far are that 2 of the 3 topics that have been covered have been solved!!

https://crmkeeper.com/ideas/

Country Address Lines FIXED✅

It just goes to prove that Microsoft actually does listen from time to time! 😀Look at how beautiful it turned out 💯

Please keep VOTING for good ideas!

Solution Designing With Limits: The Solution Architect’s Challenges in Dynamics/Power Apps”

If you grasp the title of this post, you’re likely one of the many seasoned consultants familiar with the Dynamics platform. You might also relate to the cover photo, hinting at the point of this post

Being a Solution Architect on our platform is often a frustrating endeavor. On one hand, you have Dataverse, an exceptional platform. On the other, Microsoft seeks to capitalize on its potential, which sometimes complicates solution design. Have you ever caught yourself thinking:

  1. Table Strategy: “I need to rethink my table strategy to avoid excessive storage costs in Dataverse. The client won’t be pleased with the added expense.”
  2. API Calls: “This integration will result in numerous extra API calls, pushing us into the ‘RED zone.'”
  3. Execution Limits: “I have to shift the logic outside of Dataverse due to the 2-minute execution limit.”

If these thoughts resonate, you’re not designing the optimal solution based on what could be, but rather one constrained by cost and enforced technical limitations. When you master this, I name you a “Workaround Specialist.” Coming from me, this is a compliment—it means you truly understand the platform.

I could make a long list of many things that are considered workarounds, but in the last few years the following ones have been the main challenges I have been facing:

1. Storage Challenges

Microsoft values feedback, except when it concerns storage costs. The first issue is the tough price per GB per month compared to other services Microsoft offers. However, it’s cheaper than Salesforce storage, so a price drop seems unlikely soon

Another issue is Microsoft’s inclusion of their solution files and resources, consuming your storage regardless of your needs. This is tied to the cost per GB, prompting partners and customers to push for change.

As a Solution Architect, you must be aware of these factors and plan accordingly, making some projects more challenging and requiring creativity in data storage strategies within Dataverse.

2. API Overages

Microsoft introduced API usage rules years ago, detailing what’s included in licenses and what happens with excessive queries. While free unlimited API access could put a high strain on Dataverse servers, most customers aren’t significantly affected by the limits of today. However, in larger solutions, optimizing API calls is crucial because of the large volumes of data.

This often means offloading logic to other services before Dataverse processes the results. A change chat we all felt when moving from OnPremise to SAAS.

3. Execution Timeout Plugins

The 2-minute execution timeout on server-side code is interesting. New developers don’t always understand why this is a problem, and seasoned developers will always argue that anything running for that long is bad logic or poor design.

While the senior dev’s have a point on the 2-minute limitation design, you often see them offload logic to Azure Functions, which may exceed the 2-minute limit outside Dataverse. So again creating a scenario where logic moves outside of Dataverse to enrich.

What if ?!??!?!?!?!

There may be several reasons why Microsoft needs restraints. Could be technical limitations or the need for monetization. I’m not upset with Microsoft, but it’s interesting to consider what designs could emerge without these restrictions.

  • What if we didn’t need to offload data to save on costs?
    • Provide cheaper storage at reasonable prices. Make the platform a datahub💡
  • What if we could expose our data via “unlimited APIs”?
    • Dataverse could be the master of “all data” where all systems and employees interact
  • What if there were no 2-minute execution limits on Dataverse code?
    • Make async plugins work the same way Azure Functions work. We pay for all compute time over 2 minutes (or something similar).

Do you now see why I call us Workaround Specialists? 😊 Most of us understand how to navigate the platform’s quirks to achieve goals. The “best architecture framework” exists due to cost and technical limits, not because the platform couldn’t handle more (I believe). Without these constraints, maybe we could avoid building a cobweb of services to solve the customer’s challenges!

We are not the only platform with these challenges, but I’m arguing that we represent a platform where this actually doesn’t have to be an issue. Microsoft owns their own infrastructure in a way many other companies don’t, and therefore have the upper hand on infrastructure.

Ribbon Editor Updates: Hide/Show Buttons and Customize NEW Button

Since my last post Advanced Settings Facelift was about old things getting a facelift, I thought I would be ok to continue on another similar post. This time it’s about the good old ribbon.

It’s no news that the ribbon is possible to edit in the make.powerapps view, but we all know that the functionality there has been so poor that you mostly end up customizing the buttons in the good old Ribbon Workbench from Scott Durow. Not that there is anything wrong with the tool, but Scott works for Microsoft ATM, and maintaining an amazing tool like that is not future thinking.

A few days ago, I stumbled upon a post on Twitter/X from Robin that mentioned new updates to the Command Bar (Ribbon Editor in Make). The video might seem a bit simple, but we have to look behind the simplicity to see the complexity 😃

Whats new?

We are now able to Hide/Show (without formula for now) the following buttons

The hide is currently only located on the left side menu

You are probably going to ask yourself WHY exactly these buttons and not all? Well, there seems to be a lot of technical things behind the scenes where a button isn’t just a button. A CRM button isn’t even the same as a Dataverse button in the backend according to sources. We could all complain about this, since RibbonWorkbench doesn’t seem to even care about any of this, but let’s focus on the positive parts here. WE ARE ONE STEP CLOSER 🙂

Next update was the possibility to modify the actually NEW button

This is the first time we have been able to customize an OOTB button with PowerFX or JavaScript. Again, you may ask why only the NEW button. I’m asking the same thing, but also accepting that it’s a step in the right direction 😂

This does bring the possibility to add cool stuff to the NEW button when in Main Grid. Have a look at the Twitter video and you might see what is going on. The button calls a JavaScript that in turn opens a Custom Page. The record itself isn’t actually ever opened. Yes, we could do this with RibbonWorkbench, but again… One step closer 😉

Why is it important?

Just to reiterate what I wrote earlier. Scott now works at Microsoft, and leaving the Ribbon Workbench unattended for the next years is not a viable option! Microsoft has to realize that the Command Bar has to get better fast. A LOT BETTER. This update might seem like a small/insignificant change, but this is jumping a few hurdles that will get us closer to the end goal. 🏁

In the future, we can hopefully retire the Ribbon Workbench and be thankful that Scott got us through a lot of hard situations😃. Just imagine the weight Scott has had on his shoulders since the release of the first Ribbon Workbench! Everyone is reliant on his work, but we all probably take it for granted every time we use it. Just think of how many hours it has saved you, and it’s designed and maintained by a single person receiving no money for it!