Part One: Become acquainted with PowerApps and Flow

Editor's note: The following post was written by Office Servers and Services MVP Martina Grom   as part of our Technical Tuesday series. Tony Champion of the MVP Award Blog Technical Committee served as the technical editor for this piece.  

Introduction 

With Microsoft PowerApps and Flow, organizations have new tools to generate appealing online forms and workflows - and really, simplify daily tasks in modern work life. Powerapps’ tagline - Apps that mean Business - demonstrates how relevant the tool is in solving the need almost every company has: they seek to standardize individual IT solutions. Microsoft PowerApps, Flow and the big brother of Flow, Azure Logic Apps, are designed to deliver a manageable but simple solution for exactly that purpose.  

This is part 1 of a 3-article series. The series will discuss how these tools work, and inspire you to explore the scope of new technologies in your organizations. This first article is an introduction to PowerApps.

Scenarios 

We’ve often needed to find solutions for specific and small tasks related to Microsoft Office. There’s been countless scenarios, in which company data must be captured and transferred to a backend system for further processing. 

Such use cases can be solved with very individual implementations. Often departments create their own solution or hire an external partner to develop software or a workflow, and pass over their own IT. Each solution usually depends on the skills of the developer. In the past, an Excel Macro, an Access application, a web form or an individual app often did the job.  

So in many companies, a so-called “Shadow-IT” has evolved. IT does not know about individual department or personal solutions, cannot support them and cannot reach the original developer. And when rolling out new software versions, old implementations may no longer work. 

In short, this isn’t a good IT-strategy for any organization. Rather, organizations need a central, manageable solution. However we’re also seeing a demand for small solutions increasing, and many of these do not require an individual software solution. Mostly the requirements can be solved with simple workflows.

The modern approach 

With PowerApps and Flow, Microsoft offers tools to create individual but centralized solutions based on a ready-to-use app-framework in the cloud.  

The animated graphics at https://powerapps.microsoft.com/ deliver a very quick demonstration of PowerApps. A PowerApp is created with a designer, and the “PowerApps Studio” - which is similar to working with a mixture of PowerPoint and Excel - doesn’t need any code. Any user with permissions can create a PowerApp with the PowerApps Studio. powerapps-1-design

The result is a ready-to-use app that can be used by all members of your organization. The data is stored in a central cloud service - for example Excel files, OneDrive, DropBox, SharePoint Online, databases, the Common Data Services, Dynamics, Salesforce, Slack, Microsoft Azure or similar services, or in your own, individual systems.  powerapps-1b-preview

Who is PowerApps and Flow for?  

Individual implementations depend on the technical skills of the developer. The following graphics show four types of users who might develop an individual solution: Information Workers, Business Optimizers, IT Personal or App-Developers, and Professional Developers. powerapps-2-skills

The good news is that Power Apps enables every one of these user types to create apps, whether the user is good in Microsoft Office (Power Users) or even developers who use Visual Studio (Traditional App Creators). Even deep technical developers are often amazed by the idea of creating an app within minutes. 

What’s the technical concept of PowerApps?  

PowerApps represent the frontend of data sources available through the internet with a specific, standardized interface. Consider the following when using PowerApps:  

  • Any user who wants to work with a PowerApp needs to have an Office365 login. So, the identity of the user is known within an app. All user data and his connected data can be used. 
  • A user creates an App online or with the free PowerApps app. The Designer can be used online at https://web.powerapps.com or can be downloaded cost free from https://powerapps.microsoft.com.  
  • The creator uploads his app to the cloud. 
  • An app can be shared with the whole organization or specific users. Each user needs to have a PowerApps Office 365 license. 
  • End users need to install the PowerApps app once on their device. On a computer, the web version can be used as well. The PowerApps app is available for PC and in the phone stores for iOS and Android, see https://powerapps.microsoft.com. It’s also available on Windows Phone.

powerapps-3-devices

  • Once the Client app is installed, the end user just needs to login to see a list of all the PowerApps they have permissions to. The selected app can be used within the PowerApps app framework. 
  • Technically, an app consists of definitions and generated HTML, CSS and Javascript files. So the end user is basically working with web forms within the PowerApps container. 

The PowerApps framework enables one to use an enterprise platform for developing and delivering apps, fully standardized out of the Office 365 box.

What does a PowerApp look like?  

A PowerApp can be generated directly out of for example, SharePoint Online, with a ready to use template. Or you can start with a blank app and create it completely from the scratch yourself. This sample shows three screens of the “Service Desk” template in phone layout. The start screen shows service tickets in a list, while the other screens are for viewing and editing tickets within the app. powerapps-4-sample

PowerApps apps can be designed in phone or tablet modem or for individual sizes, and should be optimized for touch. This means clear layouts and large fields and buttons. 

Also, PowerApps are designed to deliver a standardized solution for simple workflows and scenarios. It’s not the intention to have very complex forms with dependencies built in such an app. There are helpful methods to workaround various requirements, but of course, there are limits to what an app creator can accomplish without coding.  

Have a look at https://powerapps.microsoft.com/en-us/partner-showcase/ to see some samples made by partners with PowerApps. 

The technology behind PowerApps 

For every PowerApp, a central data source - which can be reached from anywhere over the Internet - is required. A list of all available connectors is available at here.   

As developer, you can create your own data source. This will be explained in the following articles. 

The PowerApps Studio produces a container file with the extension . msapp, for example “Service Desk - Phone.msapp”. This is usually which only a few Kilobytes in size. An app can be stored locally on your computer anytime. That makes sense for the developing process, or to move that version to a source control or any other storage system. The saved app file can be unzipped and includes some JSON files, such as the definition of the app.  powerapps-6-json

As expected, the file contents are text entries formatted in JavaScript Object Notation and hold the data that the creator designed in the PowerApps Studio -f or example, the Properties.json file consists of data sources and the endpoints of the app. 

Even if it does not make any sense to modify the content manually, this gives an understanding about how a PowerApp app is stored and that the app is generated on the fly online to a web form with HTML and Javascript for the end user. PowerApps Studio itself is a Web App, and as is the output of any PowerApps app, it runs in a browser. 

Once an app is saved to the cloud (which is default) and the permissions are defined, the app is available for all entitled users automatically. Apps simply show up in the apps list within the PowerApps app. powerapps-8-apps

There is no need for manual deployment, scaling, versioning, backup or other tasks on the Administrator’s side. The PowerApps framework takes care of all these technical implementations. It’s easy going! 

Environments allow app management 

In the cloud, each app runs in a sandbox with specific properties and permissions - it’s the so called “environment”. The idea is to separate regions, demo and production environments easily. It makes sense that users in America work with data stored in an American datacenter, while users in Europe have their data stored within the EU. Also, environments allow for partitioning between development, demo and production sites and variable sets of permissions. Environments can be managed since the general availability of of PowerApps last October. and is essential for development, testing, production and for defining the region and assigning permissions.  

Environments of an Office 365 tenant can be managed in the PowerApps Admin Portal at https://admin.powerapps.com/ . In that management portal, Admins can configure multiple environments. powerapps-7-admin-environment

So, apps live in an environment. This allows us to configure only allowed data sources, gateways, flows, and Common Data Service databases.  

Per environment there can be one Common Data Service (CDS) created. The idea is to have one standardized, common and maintenance-free (SQL) database for use in various scenarios and products. See https://powerapps.microsoft.com/en-us/tutorials/data-platform-intro/ and https://powerapps.microsoft.com/en-us/blog/powerapps-cds-ga/ for more details. Microsoft has a large commitment for CDS in products as Dynamics, CRM, Outlook and other services. So, when creating a new environment, you can provision a CDS for use in PowerApps as well, or do it later.  powerapps-8-create-environment

It was not possible before, but thankfully, now environments can be deleted as well. Since not many admins can find the magic link, I want to point out it can be found in the “Details” section of an environment inconspicuously at the bottom.  screen-shot-2017-04-03-at-6-11-29-pm

To summarize, environments allow the individual configuration of multiple apps and their deployment. See more information about environments here: 

Integration of Flow 

Tasks can be automated by integrating apps with Microsoft Flow. This enables us to create repetitive tasks easy with workflow automation - with a web designer -  available at https://flow.microsoft.com

Data can be sent and processed in other applications or services with Microsoft Flow. In PowerApps, an action can be directly bound to a new or existing Flow. The formula to send data simply is the name of the flow, and the parameters passed are the input fields for the following workflow. powerapps-10-flow

Combined with PowerApps, Flows can be used for simple approval workflows or for processing the data in other services. This can be data transformed by sending emails or passing data to ready-to-use connectors or individual developed services. 

Microsoft Flow allows us to create, monitor, and manage automated workflows between apps, whether it’s PowerApps or any other web service. It also designs simple workflows in the cloud without the need to code. With Flow, data can be transformed with an easy to use workflow management tool.  Find out more about Flow at https://flow.microsoft.com/en-us/documentation/getting-started

Summary 

PowerApps and Flow are a new and powerful services within Office 365 to solve individual processes in an organization. The app framework allows us to create individual solutions based on standardized data sources for Power Users without needing to code. In the next articles, we’ll take a further look into PowerApps scenarios and details. I hope this introduction article inspires you to develop use cases with  PowerApps and Flow. 


Martina Gromscreen-shot-2017-04-03-at-6-21-02-pm is a Principal at atwork.at based in Vienna. She's been an Office Servers and Services MVP since the debut of Office 365, and is also a Microsoft Regional Director. Her expertise is in Azure and Office 365, and in her work she helps companies with planning, strategy, consulting and architectural planning of cloud projects. Find more about Martina on her website here.