So much of what goes on in running through a Microsoft Power Apps Canvas App has to do with context: What data am I trying to submit, and where? Is there data I am trying to collect from a specific source? These are just a few of the questions that run through the mind of many solution architects and consultants who are tasked with creating Canvas Apps to help streamline and extend the capabilities of a client business process. Sometimes, the answer to those posed questions will cause an app architect to have to create lengthy selection processes or impose strict code to pull data from a specific source. Both solutions can be rather inefficient or even can cause overall performance issues.

So, how would you go about starting up your app with your context already pre-defined? Well, it just so happens that Microsoft utilizes a function in their Canvas App code bank to allow a user to retrieve certain context from a URL to set a record that will provide the scope for the entire app. The Param() function allows a user to enter the app with a certain experience already pre-populated. This function will take the context of a variable stored in a URL and allow that record or value to be utilized as the overall source of information for the app.

An example use case of this situation can be seen through the streamline of order entry that can now be done on a mobile device. The given client was hoping to take information from an Activity record in Microsoft Dynamics 365, and pre-populate the Order record they would be filling out on-the-go from their mobile device. Instead of having to initiate the order entry process by selecting who the order is regarding and entering in a number of fields that pertain to the business or contact that is set as the regarding entity, the Param() function can already capture who the regarding entity is, and source all other supplemental information from there just from the launch of the App.

One of the best aspects of leverage the Param() function is that a user’s experience through the app can be controlled based on the value of the parameter being passed. What that means is that a developer can create just one Canvas App that can take users down a different number of paths based on the in-scope parameter. For example, if the parameter has no value upon initiation, the app can take a user down a path that will help them retrieve context in a different manner. Or, if the parameter is set to a specific value, the Canvas App can be altered to bring users through different experience dependent on what context has already been provided, and what context and information still needs to be retrieved. For developers who are trying to implement a Canvas App for individuals on their own team, or a client they have, this can be an extremely enticing scenario. Now developers do not have to tailor each app they make to a specific group of users who will be interacting with the app, but can create a global app that gives users a dictated pathway throughout based off where they are starting. Additionally, this could have some licensing implications as well, enabling clients to save some money where they can.

Overall, passing parameters in Microsoft Power Apps Canvas Apps can be an extremely useful tool in providing context for users of the app. With the ability to eliminate a significant amount of user error, provide concrete pathways throughout the app, and increase overall efficiency and ease of use, Param() function is one of the most exciting aspect of Microsoft Power Apps.

Additional Power Apps Resources

What’s Coming to PowerApps and Power Automate in 2020 Release Wave 1?

Re-Engineering Signature Capture in PowerApps

Utilizing Microsoft Flow to Integrate PowerApps and Netsuite

Wait! Before You GoWould you like to talk to a business software expert to answer your questions?

When you schedule a free consultation with MIBAR, you will experience a one-on-one conversation with a business technology expert who is passionate about understanding your unique needs or issues. Schedule a free consultation today at the link below or give us a call at (212) 869-9300.

Learn More