Honored and grateful! Awarded FastTrack Recognized Solution Architect

Summit Bajracharya is the 2021 FastTrack Recognized Solution Architect

I’m honored and grateful to announce that I’ve been named a FastTrack Recognized Solution Architect, joining a group of 27 others from around the world.

FastTrack Recognized Solution Architects | Microsoft Power Platform

The Power Platform product innovation team bestows this distinguished award for regularly demonstrating broad architecture experience and delivering high-quality solutions for customers during project engagements.

It means a lot to me to be included alongside great industry leaders. I want to express my gratitude to Microsoft, especially the product engineering team for recognition! I want to thank my team and the clients for having their faith in me and given me the ability to show my skills and do what I enjoy the most!

How to create Editable Table in PowerApps

We’ll walk through a step-by-step tutorial for building an Excel-like Editable table/grid in this video on Power Apps Editable Excel-like Gallery or Table (Tutorial). To build the editable grid and live to update our data source, we’ll use Power Apps Galleries.

How to do error handling in Power Automate?

When a connector fails, Power Automate’s default response is to exit the workflow immediately and report the entire run as a failure. Most of the time, this is what you want, but there are times when you need to treat a mistake on your own and take custom steps, such as ignoring it or applying a retry pattern. In this tutorial, I will walk through how we can do error handling in Power Automate.

Duplicate detection in Canvas based PowerApps

This video covers information on how to create Canvas Based PowerApps with Duplicate detection. After duplicate detection, you can either Update the existing record, ignore and save or cancel the record creation. #PowerApps #DuplicateDetection #PowerApps

Why and how to use Service principal to trigger PowerAutomate?

Have you faced trouble when you use “When a record is created, updated or deleted trigger”? In my case, it took a long time to trigger or sometimes doesn’t trigger at all. It worked for Depreciated Dynamics connector but with the CDS connector, it seems to be an issue.

I switched to using Service Principal for connecting with the PowerAutomate and it greatly solved this issue while I couldn’t find any official documentation which mentions this solution though.

What is Service Principal?

PowerAutomate or any automation tool required privileges to access data. In order to access data, we use connections in PowerAutomate. And usually, with PowerAutomate, it’s more convenient to use a user account to set up a required connection but it comes with its own baggage. With service Principal, you create an application within Azure Active Directory, which is authorized to access resources or resource groups in Azure and the assign security roles to that user.

Why service principal?

  • Removes dependency from a user account.
  • Provides better security and keep the access limited to the application rather than a use.
  • Make it configurable for the minimal permissions required by the flow and ensures the flow actions are not tied to a specific human user.

How to connect to service principal?

When creating a PowerAutomate, you can click on Connect with Service Principal.

You need to provide Client ID and Client Secret along with Tenant Id to establish a connection. You can check below to see how you can do that.

How to create service principal?

For creating a service principal, you need to register an app in Azure and give the access to that app to access data for user impersonation.

  • Go to portal.azure.com
  • Search for Azure Active Directory or click from the Azure Services list.
  • Go to App registration to register an app.
  • Register an application. Give a suitable name and Select a supported account type, which determines who can use the application. Under Redirect URI, select Web for the type of application you want to create. Enter the URI where the access token is sent to.
  • You can get the Client ID and Tenant ID from the overview screen.
  • For client secret, click + New client secret and generate a secret. Copy the secret and put it into your PowerAutomate connection and select user impersonation.
  • You need to provide API permission to access Dynamics 365 Data. Go to + Add a permission, Click on Dynamics CRM.

Creating a application user to impersonate.

  • Go to Advanced Settings
  • Click on Settings > Security > Users.
  • From the view selector, select Application user.
  • Click + New
  • Select Application user from the form selector.
  • Paste the Application ID of the registered App on the Application ID field.
  • And give the appropriate security role to this user.
  • And voila you’re done.

CSS in PowerApps

CSS in powerapps

Cascade Style Sheet or CSS in PowerApps is a capability that I wish will be part of a core feature of PowerPlatform someday. CSS has gone far past mere aesthetics to create unparalleled versatility. CSS is not only used, contrary to common opinion, to provide a web page with a simple style to make it appear more appealing. There are lots of other things that one can also do with CSS. 

With PowerApps, we wish there is a direct method to apply CSS to the App that we are building. Anyone who knows WordPress can feel that a simple additional CSS feature that comes with it empowers us to optimize every visual element on your site.

While Actual CSS is not possible, there are few things that we can do. 

  1. Create a pseudo CSS by creating an object and defining styling values.
  2. using inline CSS in HTMLText  

Create a pseudo CSS by creating an object and defining styling values

In this example, we will learn how to create pseudo CSS for button control in the PowerApp.

  • Go to App in the Tree View and select OnStart Property.
  • Create a style object on the OnStart Property.
CSS in powerapps
Set(ButtonCSS, {
FontFamily: Font.'Segoe UI',
BackgroundColor: RGBA(127, 178, 57, 1),
BorderThickness: 1,
Color: RGBA(255,255,255,1),
Padding: 8,
TextAlign: Align.Center
})

Now create a button and set values of ButtonCSS in the property of the button.

CSS in powerapps

Using inline CSS in HTMLText  

An HTML text control is a control in PowerApps that shows plain text and numbers and converts HTML tags, such as non-breaking spaces. Sadly, we can’t define global CSS in the HTML text control, but the best thing that we can do is define inline CSS.

CSS in powerapps

As a workaround for setting global CSS, you could set global variables in the OnStart method.

Set(myStyle, “color:blue;font-size:46px;”)

Then in the HTML text control…

"<p style='"&myStyle&"'>
      I'm a big, blue, <strong>strong</strong> paragraph
    </p>"
CSS in powerapps

And that’s it. This is how you can somehow implement the CSS like an attribute in PowerApps. We expect more to come on the platform itself in the future, but I hope it works out as a workaround for now.