At Ignite 2020, Microsoft showed us the new Power Platform Icons for the very first time. I had a tough time searching it on google so please find all the in this blog. Find PowerApps logo 2020, PowerAutomate Logo 2020, PowerBi logo 2020, and Power Virtual Agent Logo 2020. All the icon set of PowerPlatform.
The Bulk Edit feature is an underdog feature in Model-Driven App. The fat that when you do the bulk edit it opens the form in the old bulk edit form design speaks the fact that it’s not much of the priority at the moment.
However, Customers love to bulk edit, specially because Companies that have adapted the bulk edit feature are usually big enterprises with thousands if not million of data. So, filtering and bulk editing is quite common work that happens.
While working on the bulk edit, it can give you errors if not done correctly.
The privilege issue:
To bulk edit you need two privileges, write on the entity in question and bulk edit. The edit option won’t appear when you multi-select records in Model-Driven PowerApps if these privileges are not given.
The first main form in the form order
The bulk edit form uses the first form in the form order. Though it’s something one would expect more control over because if have multiple forms, you may not have the form that you want to be used to bulk edit.
In the app designers of the Model Driven app where you want to edit, you must have the Main form checked.
In my case, I want Device Form to appear in while doing the bulk edit to appear as the default form. So, I kept it first in the form order and checked it in the App designer.
Not doing so, you will get a dialogue box that says Invalid Argument.
PowerApps performance optimization has become one of the important aspects of the platform as it continues to evolve and many organizations are adopting it. The convenience that PowerApps has afforded customers to interact with businesses via apps – and vice versa, of course – paves the way for necessitating better, efficient app performance. In this article, I’m here to help provide tips on ways to improve your PowerApps performance. Here’s the list of 40 things to make sure of the performance of the app.
- Try to limit the number of controls on the screen. The time taken to render the page in PowerApps screen has a direct relation with the number of controls on the screen. There is not a defined limit but at around 300-400 controls, there have been experiences of slow loading times.
- Use Components rather whenever you need to reuse certain blocks like header or footer. Components also reduce duplication of efforts by eliminating the need to copy/paste controls and improve performance.
- Have the right data source for the task you’re looking to process through your low-code app.
- Loading Data on App Start, On Visible, and within individual controls like the gallery control.
- User Pre-loader animation to sets user expectations while data is loading.
- Fetch data in such a way that the required data are loaded at first and while user interaction is happening call the remaining data in the background.
- Use Concurrent Call in cases when you don’t have to do serial calls. Concurrent function evaluates multiple formulas at the same time
- User Monitor tool to find events and logs that could help diagnose performance and functional issues.
- Use compressed images to minimize the time to download them.
- Update view of the data in such a way that users see data updates reflected in the user interface while actual save (Patch/Submit) is done in the background.
- Avoid passing context variables between screens when a global variable is more appropriate.
- If you have multiple formulas or rules that reference the value of a Text input control, set the DelayOutput property of that control to true.
- Use inline expressions in control properties instead of putting logic in the OnVisible event in your PowerApp’s first screen.
- Limit your use of collections, try to use them only when absolutely necessary.
- Limit your use of context variables, try to use them only when absolutely necessary.
- Use ClearCollect instead of Clear;Collect().
- Use CountIf instead of Count(Filter()).
- Update all necessary context variables in a single UpdateContext call
- Avoid using unnecessary DataCards or Canvases if they have nested galleries, which will not work in the future.
- Don’t use multiple variables when you could just use a single one.
- Don’t ‘nest’ secondary logical tests by explicitly writing If after the initial statement.
- User one control’s styling properties like color, fill, x, y, width, height properties as the master to style other controls.
- Use galleries whenever there is repetitive data instead of using multiple repeated controls to show as if it is a grid.
- Use a single screen to handle edit/insert operations.
- Use a CardGallery to handle updating data instead of referencing individual controls in a Patch function.
- When working with an Excel sheet as a data source, use one DataTable per worksheet.
- Don’t connect to more than 30 data sources from the same app.
- Use the ClearCollect function to cache data locally if it doesn’t change during the user session.
- Use the Set function to cache data from lookup tables locally to avoid repeatedly retrieving data from the source.
- Use functions that delegate data processing to the data source instead of retrieving data to the local device for processing.
- Republish your apps to get performance improvements and additional features from the Power Apps platform.
- Avoid repeating the same formulas in multiple places
- Don’t use Set to create a context variable, which holds a piece of information scoped to single-screen use UpdateContext instead.
- Use IsError for exception handling wherever possible
- Handle SubmitForm failure or success using onFailure or onSuccess.
- Ensure no delegation warnings from the app checker.
- where you can try a new formula bar experience with improved speed and usability features informed by some of the requested improvements from the community.
- Use HTML control to display images or displaying images to lessen the load on the Media
- If you are using custom APIs in your apps, you should enable server-side caching as you would do normally three tier applications.
- Maintain your app quality by continually validating that your app works as expected when new changes or updates are deployed using Test Studio. https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/test-studio
There is no direct trigger in PowerAutomate that triggers when a folder is created. You can achieve this with when an item is created trigger.
A trigger is the thing (event) that happens that starts the process. That’s what you’re asking the workflow to look out for. For example, when someone loads a file in a specific location.
Actions are the things you want the workflow to do once the trigger takes place. For example: Send boss email to approve new document.
You can create a PowerAutomate and have “When an item is created” as the trigger. The next you need to do is add a condition to check whether the item that was created is a folder or not.
You can put a condition and add “isFolder” equals to true in the condition. Rest of the actions you can keep inside the Yes of the condition.
In this article, you will learn about different areas within a power apps screen. The PowerApps studio helps in building and using custom business apps that connect to your data and work across the web and mobile – without the time and expense of custom software development. You can use Power Apps Studio to design, build, and manage your canvas app. To excel in PowerApps Development, you need to know the different components of a PowerApps Studio Screen.
- The main tab has three tabs; File, Home, Insert, View, and Action.
- File tab will take you to a system menu screen where you can save your app, share the app, or view collections, media, and variables used in the app.
- The home tab is where you can add new screens to your app, format, re-order, align, or group objects together.
- Insert tab is where you can add objects (buttons, galleries, labels, forms, pictures, icons, etc…) to your app.
- View tab helps to see the current data sources in your app or create new data sources. It helps you to see collections, media, and variables used in the app and open up advanced settings for selected objects.
- Action tab helps you to quickly add actions to the OnSelect property of selected objects.
- App actions are the action that helps to preview the app, run the app checker, redo, or undo the action, share the app with other users, and help icon.
- In this Ribbon, you get options based on what you’ve clicked in the Main tab where. If you have selected Insert in the main tab, you add controls and customize design elements
- Property drop-down list gives you the properties of the object you have selected, if no objected is selected, the current screen property is shown. You can define the properties or formula in the formula bar for the currently selected object.
- The formula bar is the section where you define or edit a formula for the property of the selected object.
- The left pane gives you different options based on what you select from the focus zone option. You can see the app in a tree view, see a list of data sources, media galleries, and advanced tools.
- Properties pane shows the UI properties for the selected object and Advance properties in another tab.
- Canvas/screen is the main area where you put objects for composing the app structure.
- App breadcrumb container gives a trail of objects that contains each other on the screen.
- Change canvas screen size zooms in or zooms out the size of the canvas during development in Power Apps Studio.
- The Focus zone helps you switch between a list of options like tree view, inserting controls, data sources, and advancedd tools.
PowerApps gives you loads of built-in controls and ways to visualize your data with just a few clicks. Often, however, with just those controls, you may want to create custom visualizations that are not quite achievable. This article illustrates the way you can create custom visualizations of your own. In such situations, it can help to save your day by using SVG in Powerapps.
What are SVGs?
SVG stands for Vector Graphics Scalable. It is a vector image format based on the Extensible Markup Language (XML) for two-dimensional graphics with interactivity and animation support.
Implementing SVG in PowerApps
In order to use SVG in PowerApps, you can take following steps:
- Insert an Image control into the PowerApps Canvas.
- In the Image property of the Image control, add a string on the front showing the image data form “data:image/svg+xml;utf8, ” and followed EncodeUrl encapsulating the SVG code. The code becomes:
"data:image/svg+xml;utf8, " & EncodeUrl("<svg width='400' height='110' xmlns='http://www.w3.org/2000/svg' > <rect width='300' height='100' style='fill:rgb(0,0,255);stroke-width:3;stroke:rgb(0,0,0)' /> </svg>");
A rectangle filled with blue is drawn using the above code. They have a width of 300 and a height of 400.
You can learn more about implementing SVGs in the following tutorial.
Using SVG icons in PowerApps
SVG is can be used to place complicated icons in your application. To get SVG images, you can navigate online to find SVG images. In this blog, I am placing a twitter SVG icon in the PowerApps. You can download the icon from here: https://www.flaticon.com/
I’ve download the SVG file of the twitter icon from the list:
I can see when I open the SVG in a text editor that I have <svg at top and bottom sections and different code in between the,.
Since, the SVG we’ve got has double quotes, it can’t be placed directly in the PowerApps. So, I’ll use an online tool to convert the double quotes to single quote. You can find it over here:
Once, converted I copy the code from and place it in our PowerApp. And for that, I insert an image in the code, Paste the code in the code and put the string in front defining format of image data.
And voila, here we have our twitter icon in our PowerApps.
In conclusion, this was a quick overview of using SVG in PowerApps, in the next blog, we’ll further discuss over changing color, animating or Dynamic changes that we can apply in the SVG in PowerApps.
The traditional processes that still use paper is taking the path towards going digital. Microsoft PowerApps a powerful tool that guides the transition to a cloud-first experience to improve internal processes and communication. Microsoft Power Apps enables you to create feature rich custom apps without writing code.
In this blog post, I will share our learnings through a sample PowerApps canvas app which uses Power Apps Pen Input with Microsoft Flow or Power Automate.
Power Apps can enable you to quickly build app. Power Automate is a service that helps you create automated workflows between your favorite apps and services to synchronize files, get notifications, collect data, and more. Today we’ll create an electronic signature app that allows you to sign paper work digitally using Microsoft Power Apps. It will help you to to automate any signature approval workflows such as equipment handoff, new hire contracts, guest registration etc.
First, we’ll start with a new Power Apps canvas model app. Our next step would be to place a pen input control in the screen that will collect the digital signature in the screen.
Add a button. We can then use button to trigger the PowerAutomate.
Power Automate can connect with One Drive to create a consent form, place a signature and create a PDF file to complete the approval process. You can pass signature data from PowerApps to Flow Click on the button. You can use the OnSelect Property to store the signature on a variable =.
Set(pdfView, PowerAppsbutton.Run(TextInput1.Text, penVar));
The below is an example of Power Automate workflow:
Finally, preview the freshly created PDF with a PDF Viewer with the following steps.
- Create a new Screen
- Place a PDF Viewer : Insert > Media > PDF Viewer
- Set theDocument Property of PDF Viewer with PDF filename parameter you have passed from PowerAutomate.
And there you go, you have a signature collection app which generates PDF with Sign on it!
PowerApps is a platform for creating a custom business application for someone with very little hardcode coding skilling. It creates an application so fast that you end up having a lot of spare time. And what do you do when you have a few hours to space? You end up creating another application, just for fun. What better than create a simple game and explore the possibilities that PowerApps can do. So you can do Game Development or Animation in PowerApps.
Though PowerApps is not something you create a game with and it was never envisioned to do so. An actual software to create games should be able to provide an easy way to animate, loop, and trigger changes. Technically, we don’t have a direct feature to do that in PowerApps but we have an amazing thing called Timer control. Timer Control generates a continuous value that increases with time. This value can be mapped with the values of other objects in the PowerApp and you end up with animating objects in PowerApp.
Game Development or Animation in PowerApps
The first try, that I did with PowerApps was creating Flappy Bird. For creating a Flappy bird you will have the following objects in the canvas.
- Pipes, and
Download these gif images of these objects from the internet place it on the canvas. Additionally, you would need :
- Text to show scores
- Text to show Game Over
- A restart button
- A jump button
The animation happens by changing the x-y coordinates based on Timer Control.
I initiated three variables: ‘varTimer’ to start and stop the timer. varJumpValue which is used in bird object to jump and TimerValue which is updated from the timer.
The timer duration is set to 10ms. After 10ms the timer restarts and OnTimerStart TimerValue is increased. The same time we do the collision test to check if the bird has collided with the pipes.
When the Timer starts rolling, TimerValue subtracted with varJumpValue is updated which is bind to the Y position of the bird. This will keep the bird move down with the increase in TimerValue while the varJumpValue helps to make the bird jump.
When Up Button is clicked, the varJumpValue is increased that makes the bird jump.
To keep the background moving, You can add the value of Timer control to the X position of the background and it starts moving.
The pipes will also start moving with the TimerValue from right to left. Once, the pipes are out of the frames, it will move back to the original position.
Now, you have a jumping bird, moving background and moving pipes.
To check if it collides with the pipe or goes through the narrow passage or not. You can calculate it with the normal linear function.
With same collision logic and changing the positions of the objects based on the timer, ended up making another simple game I called it Superman vs Darkseid.
In this article, we are going to discuss PowerApps Connectors which is one of the core components of Microsoft PowerAutomate, aka. Microsoft Flow because it allows your flow to connect with the systems within and beyond the Microsoft tenant. As a result, you can quickly develop processes that span all your systems. Thus, it allows you to automate your job. Moreover, Microsoft has a vast range of connectors – Standard, Premium, and Custom Connectors in Power Platform.
In brief, Standard Connectors are connectors that are open for use in all the licensing plans of PowerApps. We can efficiently utilize Standard Connectors in Power Automate, Logic Apps, and anything we create in PowerApps because they are available to use all across the Microsoft Power Platform
So, Standard connectors cover the most commonly used data sources like SharePoint, OneDrive, and even third-party data sources such as Google Drive, Twitter, Github, etc.
Likewise, the Premium connector is only available if you subscribe to Premium Licence Plan. Premium connectors and Standard both work out of the box without any further configuration. Premium connectors mostly cover external applications such as Salesforce, DocuSign, Survey Monkey, Amazon, and so on. Moreover, The premium connectors are identified by the Premium Stamp.
Basically, Custom Connectors are used to connect with external web services. So, you can access, modify data in external systems with PowerApps via Custom connectors. As a result, When we register a custom connector, we configure the web service’s characteristics, including the authentication it requires, the triggers and actions that it supports, and the parameters and outputs for each of those actions.
So, if you want to learn how to Register and use custom connectors then you can follow the tutorial below. Afterward, you register your custom connector, you can share it within your organization for testing.
Also, you can have your connector as an Out-of-the-box product for all users by registering it in PowerPlatform. ( documentation here )
In conclusion, check out the differences between all three PowerApps Connectors in nutshell in below.
Differences between PowerApps Connectors
|Purpose||Connect with services within or beyond Microsoft.||Connect with services within or beyond Microsoft.||Connect with external web services not available in the Microsoft connector list.|
|Licenses||Available in all the licenses.||Only available in Premium PowerApps license.||Available in all the licenses.|
|Configuration||No configuration required.||No configuration required.||Configuration required like authentication, actions, parameters to be passed etc.|
I have found PowerApps Developers struggling big time after having crucial apps deployed to the default environment. Obviously it seems like a default production environment. Since there is minimal documentation on the PowerApps Default Environment, most of us do the mistake of using the default environment for production apps or business-critical apps. The documentation around the default environment is spread across different places in Microsoft documentation limbo. So, here is in a nutshell what’s default environment and why not to use it for production.
What is the default environment?
A default environment is a particular type of production environment. Each tenant has a default environment that’s created automatically. For each tenant, a default environment is automatically created by Power Apps, which is shared by all users. Whenever a new user signs up for Power Apps, they’re automatically added to the Maker role of the default environment. So it is seen as a public environment of your tenant.
Why not use the default environment for production?
- You can’t backup and restore the default environment.
- The default environment is limited to 32 GB of storage capacity. In case you need to store more data, you can create a production environment.
- Helps to segregate data and apps so that other environments can not use them.
- Everyone in your tenant has permissions to create apps and flows in default. There currently is no way to block the Environment Maker role assignment in the Default environment.
- Non-default environments offer more control around permissions.
What’s the use of the default environment then?
- It is used the environment as a user and team productivity environment for the business groups, not business-important or mission-critical apps. Hence it is recommended to rename the environment through the admin center to make the purpose of that environment self-explanatory.
- This environment is used for first-party integrations, like creating an app from a SharePoint list. Learn more: The default environment. Thus, This environment can’t be disabled or deleted because it hosts integration with products like SharePoint and Project.