Dynamics 365 PowerApps
Microsoft PowerApps, formerly known as Project Siena, was originally released in 2015. PowerApps is a Software as a Service (SaaS) offering hosted by Microsoft in the cloud on the Azure platform. Most license plans for Office 365 and for Dynamics 365 include licenses for PowerApps. If you’re running Dynamics 365, in all likelihood you’re already licensed for PowerApps as well and are thereby free to use it to extend what you can do with Dynamics 365.
PowerApps is a way to create mobile apps or web-based applications that have nothing to do with Dynamics 365 per se or that extend and enhance Dynamics 365 by connecting with data and processes inside of Dynamics 365 and providing additional functionality, akin to a software add-on or bolt-on product. PowerApps isn’t the way you directly modify the screens within the Dynamics 365 core applications, such as Customer Engagement (CRM) or Finance and Operations (ERP). Each application that falls under the Dynamics 365 umbrella has its own modification features and proper way of customizing it. The focus here, however, is PowerApps.
Most folks know that you can use PowerApps to create apps that run within the context of Office 365 and Dynamics 365, but PowerApps can also be used to create apps outside of Office 365 and Dynamics 365. If you have a license plan for Dynamics 365 that includes PowerApps and you want to create apps that run outside the context of Dynamics 365, be aware that you may need to purchase additional per-user licenses (or an enterprise license that covers multiple users) in order to use PowerApps in your organization.
PowerApps was conceived as a tool to allow nonprogrammers (nontechnical end users) to be able to create their own computer programs, without having to know computer programming languages or the nuances of operating systems, database technology, or software design principles. PowerApps is a point-and-click software development tool that includes an option to use prebuilt templates to speed up the development process and simplify the creation of applications. PowerApps is touted as a way for anybody — regardless of experience or software knowledge —to create useful business applications with a few clicks of the mouse.
Okay, now let’s get more realistic: Point-and-click software development means that while you’re pointing and clicking, behind the scenes the tool is writing computer code automatically. Obviously, some of the code it is automatically generating may not do precisely what you want or need it to do. To make point-and-click app development a reality, the designers of PowerApps needed to make some assumptions and also needed to limit and constrain what you can actually do with it. Furthermore, end users who are typically clerical workers and are often bogged down with tons of data entry work — and who rarely have time to code apps — feel more at home keying in data than they do designing computer programs.
As you can see below, the Design screen in PowerApps doesn’t appear to be all that simple; it has a lot of menu items, tabs, navigation panes, and so forth. Many users may easily become overwhelmed by what is supposedly a “simple” app creation tool but is more akin to a programming development platform that requires extensive training even for an experienced IT professional.
Is PowerApps right for you?
The good news is that if you choose the right type of app to build and don’t get overly ambitious, an end user who is somewhat of a superuser in Dynamics 365 can achieve some amazing efficiency gains, all without having to be at the mercy of the IT department. This is truly awesome news, you should definitely try PowerApps if you’re the type of person who is undaunted by learning new, advanced software features.
Furthermore, PowerApps isn’t merely an end-user tool limited to prebuilt templates and simplistic scenarios. In PowerApps, you can build apps from scratch, starting with a blank template. In the hands of an IT professional, a programmer, or even a functional ERP or CRM Dynamics 365 consultant who doesn’t necessarily know how to code any computer programming languages, PowerApps can be a rapid application development environment used to create robust apps, without requiring low-level coding.
When creating PowerApps, you can start with a data connection or you can start with the user experience. Microsoft classifies these two types of PowerApps this way:
- Canvas apps: Start with the user experience
- Model-driven apps: Start with your data connections
Canvas apps are the original PowerApps: You drop controls onto a free-form canvas and create something that users can intuitively work with — with little or no training. Model-driven apps are a newer addition to PowerApps.
The big advantage of model-driven apps is that they leverage the Common Data Service (CDS) for Apps. The CDS is a collection of data entities that includes relationships between entities, business logic concerning those entities, and forms to view those entities. Examples of entities in Business Central are an account, a business unit, a contact, and an address. Screens in the app are based on entity forms so that if you add a new field to the underlying entity form, all the apps you build from it automatically get the new field; you don’t need to modify all the apps you built in the past; this kind of sophisticated code inheritance is automatic and makes maintenance of your custom apps much easier.
PowerApps is being used in the real world today by major corporations and top-tier consulting firms. For example, Avanade (a joint venture of Microsoft and Accenture), a global IT consulting firm with many thousands of employees, has created smartphone apps using PowerApps that employees (including every salesperson out on the road) use daily. These apps are used to tie together related information that is stored and managed in separate applications such as appointments in Outlook calendars and marketing literature in SharePoint.
Listed here are some examples of the kinds of capabilities that can be included in apps built by your organization or your authorized Dynamics 365 solution provider using Microsoft PowerApps:
- Search through a document knowledge base stored on SharePoint for Office 365 from your smartphone and comment on articles.
- Schedule technicians for appointments and automatically update their availability in the Dynamics 365 Resource Scheduling application.
- Onboard employees by providing information about where to go, whom to see, what their login credentials are, and so forth, by securely transmitting the information to the new hire’s smartphone.
- Provide detailed, step-by-step instructions and easy-to-understand pictures and diagrams to manufacturing workers in a factory-floor shop via Android tablets to help improve quality control and adherence to state and federal regulations.
- Capture customer sign-off when jobs are complete, and update that information back to Dynamics 365 for Finance and Operations to serve as backup for subsequent billing.
These are just a few examples. Use your imagination. There is truly no limit to the efficiency gains you can achieve by linking applications, workforces, customers and vendors, employees and administrators, email and databases, and on and on — and doing so in the cloud and using mobile applications. The advantages of creating and deploying solutions built on PowerApps include:
- Anytime/anywhere access: Everybody has a mobile device (their smartphone) with them at all times.
- Global Microsoft cloud capabilities: You can take advantage of them because everything is cloud based, so you don’t need to design, purchase, install, and maintain your own computer network infrastructure.
- Available data connectors: You can quickly integrate with disparate services from different SaaS providers.
Making external PowerApps connections
PowerApps is quite powerful, quite useful, and really cool. You can do some amazing things with it. But PowerApps isn’t the only way that significant customizations are developed in each of the major applications that make up Dynamics 365.
Dynamics 365 is an umbrella of applications that includes Customer Engagement (based on Microsoft CRM Online), Finance and Operations (based on Dynamics AX), Business Central (based on Dynamics NAV), Talent (HR), Retail, and much more. How you go about customizing each one of these applications at its core differs significantly. Each has its own customization features built into it and has techniques for controlling the versions and layers of customization.
PowerApps is more about extending processes within any of the Dynamics 365 applications and/or in Office 365 by creating apps that help to bridge the gap between different applications and organizations that coexist within a continuous business process. For example, you can create an app for use by subcontracted workers who are not logged on to your main network because they aren’t full-time employees of your company; this app allows them to have a limited amount of access and update capability that is automatically integrated to your main Dynamics 365 ERP and/or CRM.
Although PowerApps can obviously connect to data and application services by means of connections, you can use one of five other methods or sources to incorporate data into your PowerApps creations. All these methods or sources are displayed in the black navigation pane to the left of the PowerApps Design Studio main window. From the navigation pane, when you select Data, the menu expands downward to display the data methods:
- Entities: A set of records that is similar to a database table but is actually part of Microsoft’s Common Data Service (CDS) for Apps.
You can use the base set of standard entities that covers many common scenarios, but you’re not limited to only these. In addition, you can create your own custom entities to meet your unique requirements.
Business rules such as data validation can be stored at the entity level instead of at the individual app level; in this way, you can create multiple apps that use the same entity and avoid having to recode and maintain the same data validation routines repeatedly. Other code-reuse features are also included.
- Option sets (picklists): A drop-down list of fixed values that you can include in one or more apps.
Option sets are also called picklists, and in general parlance are commonly referred to as value sets or (in old-school Windows terminology) a combo-box. As with entities, they can be standard (factory-loaded) or custom lists that you create to suit your unique purposes.
- Data integration: Data feeds from external or related systems, such as Outlook.
These more complex data interfaces can be configured using either the Data Integrator feature or a newer capability called Microsoft Data Integration for Common Data Service.
Confer with your IT department and/or authorized solution provider for more details on how to design and configure complex data integrations, or, better yet, request that someone there create integrations for your use.
Integrating data from external applications into Dynamics 365, especially into the Finance and Operations (AX) application, is an important consideration because it can help you avoid time-consuming rekeying of data, increase data accuracy, and enhance automation of repetitive tasks and functions.
- Connections: PowerApps comes with dozens of factory-loaded connections, which allow you to connect to other cloud services via the Internet.
Microsoft is continually expanding this list as new services become popular and widely used across the Internet.
- Custom connectors: Work in a similar fashion to connections, as described earlier in this list.
If the connection you seek isn’t available in the list of connections provided by Microsoft in PowerApps, consider asking your IT department to create a custom connector for you.
- Gateways: Known as on-premise data gateways and run as a Windows service.
The on-premise data gateway is a method to get data from an on-premise system and integrate it into your cloud environment, where it can then be available as part of the apps you build with PowerApps.
Confer with your IT department for installation and configuration of on-premise data gateways.