Gone are the days when creating a sophisticated app required extensive coding knowledge! Microsoft’s Power Apps empower citizen-developers of any skill level to build custom apps. Users can build solutions to satisfy both simple and complex business requirements. The sleek Power App interface requires little to no code; however, the platform is flexible enough to handle business logic and coding as well. Users can connect to a myriad of data sources, ranging from cloud to on-premises sources. By leveraging Power Apps, developers can create responsive solutions that drive business engagement and foster efficiency within the organization.
In order to use Power Apps, you must purchase a plan. Pricing varies each month based on either a subscription plan or a pay-as-you-go model.
Certain Dynamics 365 and Office 365 licenses include Power Apps automatically with the subscriptions, and subscribers can build Power Apps with the default connectors. A separate Power Apps plan is required to connect to data sources outside of Microsoft 365 and leverage Premium connectors. The benefit of purchasing a subscription is having a predictable fixed cost each month, which is useful when managing a budget. With the pay-as-you-go plan, you have the flexibility to build apps without any upfront licensing commitments. Pricing fluctuates based on usage of the platform. When you share an app, you only pay when the app is being used. The benefit is that if the app is not being used, you do not pay for it. However, the pay-as-you-go plan does require an Azure subscription as well.
Alternatively, you can purchase a Power App per app plan if you want to allow users to run apps in a specific environment. This approach serves as an easy way to test Power Apps before wider-scale adoption within the company. If you have multiple environments, you must allocate the plan’s capacity in each environment.
The starting point for working with Power Apps is an environment. Environments house your business’ apps, data, chatbots, and flows. By building apps in a single environment, users can isolate content aimed at a specific use case or target their content towards a specific team or department. A common practice is to build separate environments for Development, Test, and Production stages. Power Apps Environments can even connect to GitHub, streamlining source control within an organization.
An Azure Active Directory tenant is required to create an environment, and only users within that tenant can access the content within the environment. After the environment is created, users deploy data sources to that environment. Thereafter, the content created can only connect to the data sources within the same environment. You can create a database in each environment, but there can only be one database in each environment.
You can view and switch between the environments you have access to in the top ribbon of the Power Apps portal.
There are several different types of environments. The main type of environment is the Default environment. Power Apps automatically creates the Default environment within each tenant, and users cannot delete it or backup and restore it. The Production environment is designed for longevity and is aimed towards permanent work within a company. The Sandbox environment is targeted towards the development and testing stages. The Trial environment is for short-term testing needs, and it expires after thirty days. The Developer environment requires a Developer Plan license; only the owner can use the environment. Finally, a Microsoft Dataverse for Teams environment is automatically created once a user embeds a Power App within Teams. You can only change the type from Production to Sandbox or vice versa; otherwise, the environment type is fixed.
Users manage the environment settings and permissions within the Power Platform Admin Center. There are two security roles that correspond to permissions within the environment: the Environment Admin and the Environment Maker. The Admin has full control over the environment and can add or remove users, configure Dataverse databases, and manage all the content within the environment. The Maker has more limited capabilities, but can create any type of content.
When you log in to Power Apps, there are six major features within the environment: Apps, Data, Flows, Chatbots, AI Builder, and Solutions. Users can navigate to each section on the left-hand pane and create or edit content within that environment.
The Apps section contains all the apps within the environment. An App connects to data sources in the environment, and users design apps to serve a specific business function. Apps can be optimized for either mobile or tablet layouts. Further, users can share apps across their organizations and embed published apps in a variety of locations, such as Power BI, Microsoft Teams, or SharePoint .
There are three main types of apps: Canvas Apps, Model Driven Apps, and Portals. To begin, you can create an app directly from the Home tab of the Power Apps Portal, or you can click either the Apps or Create sections on the left pane. You can begin by connecting to a data source, or you can start with a blank app and configure data sources later.
Canvas Apps are best suited to serve a single, focused business purpose and do not require complex modeling or logic. Designing a Canvas App is simple thanks to Microsoft’s clean, straightforward user interface. Users drag and drop components onto a canvas interface like that of Microsoft PowerPoint. Little to no code is required. Canvas Apps connect to a wide variety of data sources, such as SharePoint, Excel, SQL Databases, or Dataverse. After creating an app, users can publish it and share it with other users.
The advantage of Canvas Apps over Model Apps is the ability to customize every aspect of the layout. The app is literally a blank canvas – the design options are almost endless. Users can create Excel-like formulas for each property of a visual, such as the fill and hover color or the text. For example, you can write formulas to show or hide content based on expressions or filter visible data for certain criteria. There are even hundreds of available templates to kick-start the design process.Tip: to start from a template, access the Create tab on the left pane.
Model-driven apps are designed for more complex data models. Users first create a data model in Dataverse with relationships between tables. The data is stored in tables in sets of records. Then, users create a model-driven app that contains components such as fields, forms, views, and charts that are defined in Dataverse. Unlike Canvas apps, there are limited opportunities to customize the layout. However, the Modern App Designer experience offers a straightforward, drag-and-drop user experience. Apps can be as complex or as simple as needed and still do not require code.
The model driven app is focused more on interacting with the data and utilize more complex logic. Thus, model driven apps are better suited for end-to-end solutions that span different teams or roles. Model driven apps can integrate with Office 365, and the responsive nature of model driven apps makes navigation and maintenance easy for users of any skill level.
A portal is an external-facing website that connects users to sources outside of their organization. Users can log in using numerous types of identities. Users can even access content anonymously. Portals extend the capabilities of Dataverse outside of the organization, allowing users to reuse their data models and avoid recreating relationships and tables for external-facing purposes. Portals centralize management of the data, users’ roles and permissions, and business rules within the Power Apps portal.
The underlying data for your apps is stored in Microsoft’s Dataverse. Formerly known as the Common Data Service (CDS), data is stored within tables that can be used and reused across the organization. Data is secured and stored in the cloud, making maintenance and management a breeze. Dataverse can house any kind of data and is simple to configure, allowing virtually any business to benefit from it. Data stored in Dataverse can connect with any type of app, allowing you to reuse common business logic and save time.
There are numerous ways to funnel data into your environment. The following sections of the Power Apps portal pertain to the process of loading data into your environment’s tables.
Dataflows allow users to connect to various sources and clean or transform the data before loading it into the environment. The experience is like using Microsoft Power Query, in that no coding is required to shape the data. Dataflows can connect to hundreds of different sources, including other Power Platform dataflows. The wide range of available data sources allows organizations to reuse standard transformation techniques and promote a single source of the truth for their data.
Users create a dataflow within the desired environment, set the refresh schedule, and configure the destination table. Users create a dataflow in one environment, so only the users with access to that environment can access the dataflow. The destination table can either be an existing or a new table in the environment.
Azure Synapse Link
Environments can connect directly to Azure Synapse Analytics. By clicking the Azure Synapse Link on the left-hand pane, you can set a connection to Synapse that continuously feeds data and metadata from Dataverse into Synapse. By performing all the transformation within Dataverse environment, organizations can promote consistency across their users and save time by only shaping their data only once.
By configuring a Connection, you can load external data into your environment. Power Apps can connect to hundreds of different data sources. The available data sources can be either cloud-based, such as Azure VMs, or on-premises like SQL Server. Users can even connect to Excel sources in OneDrive. Due to external facing nature of connectors, please note that once the data moves outside of Microsoft’s infrastructure, the data protection policies of that company persist. The Connections section in the left-hand pane displays all the active connections to external data sources within the environment. You can either configure a new connection in this window by clicking “New connection,” or you can set a new connection when you create an app.
Even though there are hundreds of available data connectors, there may be instances where users require connections to sources that do not have a pre-built connector. Power Apps empowers organizations to create their own Custom Connectors, allowing all organizations to reap the benefits of the Power Apps experience.
Click the Custom Connectors section of the left-hand pane to view and manage the custom connectors within the environment. Click “New Custom Connector” to author a new custom connection. As long as the existing REST API has an authentication method and uses JSON, you can configure a custom connection to any REST API.
Gateways are the bridge between the Power Apps environment and on-premises data. After you install the data gateway, you can manage the gateway within the environment by clicking the Gateways section in the left-hand pane. Organizations wishing to keep their databases within their own boundaries will want to leverage a gateway. However, rest assured that the gateways securely transfer data into the cloud for use in the Power Apps environment.
Tables are the basic storage unit of Dataverse. Dataverse is designed to be a quick way to create a data model to use within your app. There are three types of tables: Standard, Managed, and Custom tables.
By default, there are a set of Standard tables included with every environment, such as Account, Address, Email, Letter. If you need to achieve a common business requirement, leveraging a Standard table prevents you from reinventing the wheel. You can even customize Standard tables to add specific columns you may need. However, you cannot delete columns from Standard tables.
Custom tables are completely user created. If you have the correct privileges in an environment, you have the complete capability to build a table exactly how you need it. Custom tables are best for organizations with unique requirements that are not included in the list of Standard tables.
Managed tables are more restrictive than Standard or Custom tables. Users cannot customize any aspect of a managed table since they are imported as part of a managed solution.
Every table contains metadata like tables stored in other data solutions, such as Columns and Relationships. You can export the data from any table. To view the schema of a table, click the Table’s name.
Columns can house a wide range of data types, such as Text, Choices, Lookup Fields, or File Attachments. Each table can have an unlimited number of columns; however, there is a limited amount of 4 GB of data allowed per record. To create a new column, simply click “Add Column” from the top ribbon. Next, configure the column details. Setting a column as required forces users to enter a value before saving the record. Adding calculations and rollups enriches data analysis even further by performing complex calculations on the data in real time.
Click a Column’s Display Name to edit its properties, such as the Display Name. Beware that there are several restrictions to editing columns. For example, you cannot edit the internal Column Name field or the Data Type after a column has been created. If you need to change the data type or the internal column name, you must delete the column, create a new column with the appropriate data type, and click “Save Table” at the bottom of the screen.
Choices are a type of column that allow users to select more than one option. By contrast, the Choice data type only allows a single selection. You can view all the choices available in your environment by accessing the Choices icon on the left-hand pane. You can either create a new choice by clicking “New choice” or select from a range of pre-made Standard choices, such as a Yes/No Boolean. You can also create new choices ad hoc whenever you create a new column and configure the data type.
Relationships refer to how tables correspond to each other. Power Apps supports one-to-many (1:N) relationships where one row in Table A relates to many records in Table B, or vice versa. Power Apps also supports many-to-many (N:N) relationships where many rows in Table A could relate to many different rows in Table B.
Creating business rules allows users to enforce logic in their tables. For example, you can configure a business rule to set a field as required if another field contains a value. Defining business rules allows users to enforce consistent data entry and minimize data validation issues down the road.
You can define one or more Views for each table to display whichever fields you desire. Views make it easier to search data and navigate between related tables.
Forms are the way that users interact with the data defined in tables. Forms are the components you will use in the model-driven app to enter data and save it back to the table. Every table can have multiple forms, and you have the capability to customize the fields included on that form.
Finally, each table can have additional assets such as dashboards and charts that allow users to visualize their data. The charting capabilities in Power Apps are limited to line, bar, or pie charts, but Power Apps can also connect to Power BI for even richer visual analysis.
A solution is a way to package the apps and components of an environment so that you can transfer it to another environment. There are two types of solutions: Managed and Unmanaged. Managed solutions are like the finished product of an environment. Managed solutions can be distributed and installed in a read-only state; no further customizations or additions are allowed. The best practice is to utilize a managed solution only when you are ready to share the solution with the Production environment. Unmanaged solutions allow modifications or customizations when shared. It is a common practice to share unmanaged solutions between environments that are still actively making changes to the solution, such as the shift between Development and Test stages.
By combining the use of Power Apps and Dataverse, you can build a fully custom application with ease. Microsoft has democratized the concept of app creation – users no longer need advanced coding knowledge to develop a sophisticated, modern application. Leveraging the flexible cloud-based nature of the Dataverse allows users to promote consistency and efficiency within their organizations.
BlueGranite has strong experience building fully custom applications to create a more efficient Microsoft Azure ecosystem. If you're wondering how these tools could benefit your business outcomes, contact us today!