Exam Ref PL-900 MS Power Platform Fund
Exam Ref PL-900 MS Power Platform Fund
Exam Ref PL-900 MS Power Platform Fund
Craig Zacker
SPECIAL SALES
For information about buying this title in bulk quantities, or for special sales
opportunities (which may include electronic versions; custom cover designs;
and content particular to your business, training goals, marketing focus, or
branding interests), please contact our corporate sales department at
corpsales@pearsoned.com or (800) 382-3419.
Introduction ix
Organization of this book ix
Preparing for the exam ix
Microsoft certifications x
Quick access to online references x
Errata, updates, & book support xi
Stay in touch xi
iii
Chapter summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Thought experiment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
iv Contents
Chapter summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Thought experiment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
vi Contents
Index 253
Contents vii
viii
T he Microsoft Certified: Power Platform Fundamentals certification is the initial entry point
into a hierarchy of Microsoft Power Platform certifications. The PL-900: Microsoft Power
Platform Fundamentals exam tests the candidate’s knowledge of the components and capa-
bilities of the four Microsoft Power Platform products: Power BI, Power Apps, Power Automate,
and Power Virtual Agents, without delving deeply into specific programming and administra-
tion procedures.
With the Power Platform Fundamentals certification in place, candidates can then move
on to the Microsoft Certified: Power Platform App Maker Associate certification (Exam PL-100:
Microsoft Power Platform App Maker) and the Microsoft Certified: Data Analyst Associate
certification (Exam DA-100: Analyzing Data with Microsoft Power BI). These two are special-
ist certifications covering more advanced areas of the Power Apps and Power BI products,
respectively.
This book covers all the skills measured by the PL-900 exam, with each of the main areas
covered in a separate chapter. Each chapter is broken down into individual skill sections, which
cover all the suggested topics for each skill. It is recommended that you access trial versions
of the Power Platform tools as you work your way through this book. Nothing can replace
actual hands-on experience, and Microsoft provides fully functional evaluation platforms of
Power Platform tools, all the components of which are accessible in the cloud and require
no hardware other than a computer with internet access. Microsoft also provides a wealth of
documentation for all the Power Platform tools at docs.microsoft.com. With these tools, as well
as some time and dedication, you can prepare yourself for the PL-900 exam and the first step
toward your certification path.
Microsoft certifications
Microsoft certifications distinguish you by proving your command of a broad set of skills and
experience with current Microsoft products and technologies. The exams and corresponding
certifications are developed to validate your mastery of critical competencies as you design
and develop, or implement and support, solutions with Microsoft products and technologies
both on-premises and in the cloud. Certification brings a variety of benefits to the individual
and to employers and organizations.
For information about Microsoft certifications, including a full list of available certifications,
go to http://www.microsoft.com/learn.
x Introduction
Stay in touch
Let’s keep the conversation going! We’re on Twitter: http://twitter.com/MicrosoftPress.
Introduction xi
1
FIGURE 1-1 Microsoft Power Platform components
Skill 1.1: Describe the business value of Power Platform services CHAPTER 1 3
After a designer connects to a data source, creates Power BI content, and publishes it to the
service, the connection to the source remains in place and the published data is updated auto-
matically as the source data changes. Users can thus track information on a continual basis.
As with many of Microsoft’s cloud-based interfaces, the Power BI service displays are composed
of multiple tiles. The Power BI home page, shown in Figure 1-3, contains tiles representing the user’s
favorites and recently accessed elements by default, as well as a navigation menu on the left.
Using combinations of tiles, the Power BI service can display data in three basic formats:
dashboards, reports, and apps, as described in the following sections.
USING DASHBOARDS
The most basic type of display in the Power BI interface is the dashboard. A dashboard (some-
times called a canvas) is a one-page view, as shown in Figure 1-4, containing tiles drawn from
one or more reports that tells a single story.
After a dashboard is published in the Power BI service, consumers can interact with it in
a variety of ways. For example, clicking a tile opens the report from which the tile was taken.
Hovering the cursor over an element of a graph, as shown in Figure 1-5, displays the actual data
value represented.
FIGURE 1-5 A bar graph from a Power BI dashboard with the value of a single data point displayed
Skill 1.1: Describe the business value of Power Platform services CHAPTER 1 5
FIGURE 1-6 A Power BI report containing four pages of human resources information for a firm
Reports can contain a great deal of information, so Power BI has controls that can refine the
displays that appear. For example, using the Filters pane on the right allows users to configure
the display to contain only data conforming to specified categories, such as dates and loca-
tions. Designers can incorporate bookmarks into reports that provide alternative views of the
same data sets. Consumers can create their own bookmarks also.
USING APPS
In Power BI, an app is a collection of dashboards and/or reports that designers can package as
a single content element for distribution to consumers, as shown in Figure 1-7. The advantage
of app packaging for consumers is that by installing a single app, users can gain access to many
dashboards and reports at once, all of which are available in one place.
One of the innovative aspects of Power BI is that users can easily function as both designers
and consumers. Creating dashboards, reports, and apps does not require coding or extensive
training, so the process of creating and publishing content is not limited to specialist design-
ers or programmers.
Skill 1.1: Describe the business value of Power Platform services CHAPTER 1 7
Consumers can also create alerts, using the interface shown in Figure 1-9, which cause
Power BI to send an email when the value for a selected data point reaches a specified
threshold.
Consumers can also exchange thoughts with colleagues by leaving comments in a dash-
board or report, using the interface shown in Figure 1-10. The comments become part of the
element, and other users can read and respond to them.
Skill 1.1: Describe the business value of Power Platform services CHAPTER 1 9
■■ Transform and clean data—Power BI Desktop allows designers to model their data by
combining sources, removing unneeded columns, and changing data types, using the
Power Query Editor shown in Figure 1-13.
■■ Create a report—With Power BI Desktop, designers can create reports with multiple
pages or single-page dashboards.
■■ Add visuals—Dragging fields onto the report canvas creates visualizations using an
appropriate format for the data type. Designers can then modify the visualization by
changing the type and configuring its properties.
■■ Publish report to the Power BI service—After the report is completed, designers can
publish it to their Power BI services by selecting a specific location using the Publish to
Power BI dialog box, as shown in Figure 1-14.
Skill 1.1: Describe the business value of Power Platform services CHAPTER 1 11
Skill 1.1: Describe the business value of Power Platform services CHAPTER 1 13
An app can have multiple pages, each of which the designer can configure separately. In this
example, shown in Figure 1-17, the app is designed for display on a smartphone-sized screen,
but other form factors are available.
The Common Data Service stores data using entities, which are schemas designed to contain
specific types of data. Entities consist of attributes, which contain specific types of data values.
The Common Data Service includes a large collection of standard entities for frequently used
data types, a few of which are shown in Figure 1-19.
The entities provided in the Common Data Service are based on an open standard called
the Common Data Model that Microsoft has published as part of its Open Data Initiative,
developed in partnership with Adobe and SAP. The model consists of predefined entities, such
as application/app, business unit, environment, region, solution, tenant, and user, each of
which have attributes, relationships, and metadata. Designers can also create custom entities
that are specific to the data types required by a particular organization.
Skill 1.1: Describe the business value of Power Platform services CHAPTER 1 15
It is common for users of Power Platform tools to access data from multiple sources and
consolidate the data into a single report, app, or flow. As an alternative to maintaining mul-
tiple data source connections, it is possible to integrate the data from the sources into Com-
mon Data Service, which can then function as a single storehouse for all the necessary local,
network, or cloud data, as well as the organization’s Dynamics 365 data. Users can import data
from sources as a one-time event or configure Common Data Service to synchronize with the
outside data sources at scheduled intervals, ensuring that the information in Common Data
Service is always current.
The Common Data Service also includes a flexible, role-based security system that admin-
istrators can use to authorize users with any degree of access they require, down to specific
records and fields.
The Power Automate portal includes a large selection of flow templates, as shown in Figure 1-21,
which execute common tasks or that can serve as the starting point for customized flows.
Power Automate supports various types of flows, which you can create from the Power
Automate portal or its mobile app, as shown in Figure 1-22.
Skill 1.1: Describe the business value of Power Platform services CHAPTER 1 17
The various flow types supported by Power Automate include the following:
■■ Automated flows—Perform specific actions without prompting when they are triggered
by an event in a specific Microsoft application, such as Outlook, SharePoint, Teams,
Dynamics 365, or OneDrive; a third-party application, such as Adobe Creative Cloud; or
a social media application, such as Twitter
■■ Instant flows (also called button flows)—Perform specific actions when they are trig-
gered manually by a user clicking a button or other control in the Power Automate
portal or the Power Automate mobile app, as shown in Figure 1-23
Skill 1.1: Describe the business value of Power Platform services CHAPTER 1 19
Power BI interoperation
Power BI accesses data on outside systems in order to display it in a different form. Design-
ers of Power BI reports, dashboards, and apps must have the privileges needed to access the
required data sources. However, the consumers of Power BI content have no direct access to
those data sources. They can only view the reports, dashboards, and apps themselves, as well
A connector is a proxy wrapper that the tools use to access an API provided by an applica-
tion or service. Most applications and cloud services include such APIs, and the Power Platform
connectors function as proxies—that is, intermediaries between the outside APIs and the inter-
nal Power Platform tools. The connector, as a proxy, authenticates to the outside application
or service and then provides access to Power Apps and Power Automate (as well as to Azure
Logic Apps).
Each Power Platform connector includes a set of triggers and actions, which are specific
operations that designers can use in their apps and flows. Triggers are notifications generated
Skill 1.1: Describe the business value of Power Platform services CHAPTER 1 21
FIGURE 1-28 List of connectors used by the Request manager approval for a selected item flow
template
The trigger phrases do not have to match the user’s input exactly. Power Virtual Agents
uses a natural language understanding module to match variants of the trigger phrases with
an appropriate response. The developer can add more trigger phrases and modify the bot’s
greeting as needed.
To extend the conversation, the developer can create additional topics that ask the user
questions, obtain information from the user, and take action based on that information. For
example, Figure 1-30 shows a simple yes or no question and the branching logic that allows
the developer to continue the conversation in different ways, depending on the response
given.
Power Virtual Agents can work together with Power Automate, so developers can create
flows that perform tasks using information gathered from the user and integrate them into
conversations. For example, in the case of a user wanting to check the status of an order,
a topic in the bot’s conversation can prompt the user to specify an order number. Then,
the bot can pass the order number to a flow that performs a database lookup and supplies
information about the order back to the bot, which displays it to the user. For conversa-
tions that are unable to provide what the user needs, a topic can pass the user to a live
agent.
Skill 1.1: Describe the business value of Power Platform services CHAPTER 1 23
Skill 1.2: Describe the business value of extending business solutions by using Power Platform CHAPTER 1 25
Skill 1.2: Describe the business value of extending business solutions by using Power Platform CHAPTER 1 27
FIGURE 1-34 The App Details screen in Microsoft Teams App Studio
The developer can then complete the process of configuring the new app in Teams App
Studio and distribute it to users in the tenancy. The app then appears as a tile on the Add a
EXAM TIP
The original version of Power BI for Office 365 was an add-on product that added visual
functionality to existing Excel Power View reports. There was also a Windows 8 app that
allowed users to access those reports remotely. This version of Power BI was deprecated as
of December 31, 2015 in favor of the new service-based version of Power BI that is part of the
Power Platform today. When preparing for the PL-900 exam, be aware that some outdated
documentation still exists on the internet that refers to this original Power BI version and
not the current one.
As noted earlier, when Microsoft first began rolling out the Power Platform tools several
years ago, they designed them primarily as an extensibility platform for the Dynamics 365 ERP
and CRM applications. This was an obvious direction to take because the Power Platform and
Dynamics 365 products were all designed to use the Common Data Service. However, Micro-
soft has announced their intention to expand that extensibility platform to include Microsoft
365 applications and services as well.
Unlike Dynamics 365, the Microsoft 365 components are not built on the Common Data
Service, so they do not have the same shared data connection with the Power Platform tools.
However, the Power Platform tools include connectors that allow them to access and use the
data generated by the Microsoft 365 applications and services.
For example, citizen developers at an organization running Microsoft 365 can use Power BI
to gather data from branch sites and mobile SharePoint, Exchange, and Teams users as they
roam around the facilities or work in the field. They can then create dashboards or reports to
display a conglomerated picture of the data from those various sources. Power BI allows the
organization to monitor, analyze, and visualize trends in sales, supply, and other aspects of the
business, helping them to anticipate needs before they arise.
Using Power Apps and AI Builder, developers can create applications that use text and
image recognition to collect additional data from users as they work with Microsoft 365
applications and services, rather than requiring them to enter data manually on forms-based
Skill 1.2: Describe the business value of extending business solutions by using Power Platform CHAPTER 1 29
Power BI security
At its most basic, security in Power BI is a matter of sharing content with other users. Devel-
opers control access to their content by sharing dashboards, reports, or apps with specific
consumers using the interface shown in Figure 1-36. However, for users to access Power BI in
the first place, they must first be authenticated and authorized for specific content.
Power BI, as implemented in Microsoft Azure, is a service that consists of two clusters: the
Web Front End (WFE) cluster and the Back-End cluster, as shown in Figure 1-37.
The WFE cluster is responsible for the initial connection by users to the Power BI service and
the authentication of the user account, in a process shown in Figure 1-38.
When a user directs a browser to Power BI by typing a URL or clicking a hyperlink, the fol-
lowing procedures occur:
1. The Azure Traffic Manager (ATM) examines the user’s DNS record and directs the
browser connection to the WFE cluster in the nearest Microsoft data center.
2. The WFE cluster directs the user connection to the Microsoft Online Services login
page.
3. The user is asked to authenticate against its account in Azure Active Directory (AAD).
When the authentication is successful, the login page directs the connection back to
the WFE cluster.
4. The WFE cluster authorizes the user’s Power BI service subscription with Azure
Active Directory and, if the authorization is successful, obtains an AAD security
token.
5. The WFE cluster consults the Power BI Global Service to determine the location of the
correct Back-End cluster for the tenant to which the user belongs.
6. The WFE cluster directs the user connection to the correct Back-End cluster and
supplies the user’s browser with the AAD security token, the address of the Back-
End cluster obtained from the Global Service, and information about the current
session.
The Back-End cluster is responsible for all the Power BI operations for authenticated cli-
ents, including the establishment and maintenance of data connections, the creation of the
visualizations in dashboards and reports, and the storage of data. Users communicating with
the Back-End cluster do so through the Gateway Role.
The Gateway Role and Azure API Management are the only modules accessible to users
through the public internet. These modules accept and manage user connections, authorize
users for specific content, and then relay all incoming user requests to the other modules in
the cluster as needed. For example, a typical transaction in which a user attempts to access a
Power BI dashboard, as shown in Figure 1-40, proceeds as follows:
1. The user’s browser accesses the Power BI portal and connects to the WFE cluster.
2. The WFE cluster authenticates the user and authorizes the user’s access to Power BI.
1 WFE Cluster 2
AAD
3
Back-End Cluster
4
Browser Gateway Role
7
5 6
Presentation Role
Thus, the Presentation Role (and all of the other non-public roles in the Back-End cluster,
including the Data Role, the Background Job Processing Role, and the Data Movement Role)
are protected from direct internet access by users, both authorized and unauthorized.
Power BI Premium is a subscription level that provides a tenant with a dedicated Back-End
service cluster, as shown in Figure 1-41, created on virtual machines located in the same data
center as the tenant.
The Premium cluster contains separate instances of roles found in the Back-End cluster,
including the Gateway Role, Azure API Management, Data Role, and Job Processing Role, as
well as a separate Azure SQL Database. All communication with the dedicated Premium clus-
ter goes through the shared Back-End cluster, which relays traffic to and from the Gateway
Role in the Premium cluster.
Designers should also be conscious of the security of the data they use to create dashboards
and reports, in addition to the authentication needed to access the Power BI service. When
Power BI designers connect to a data source, they typically have to supply credentials for a
separate authentication to that source. A dashboard or report that contains the data uses the
designer’s credentials to access and update that data. However, when the designer shares the
dashboard or report with consumers, those users are not authenticated to the original data
sources. Therefore, if the data in the Power BI content is sensitive, the designer is solely respon-
sible for making it accessible to the consumers. As noted earlier in this chapter, Power BI users
cannot modify the data used to create dashboards and reports, but in situations where the
data is confidential, designers must control who has access to their Power BI content.
The Back-End cluster contains two forms of data storage: Azure Blob and an Azure SQL
Database instance. Azure Blob is a storage solution that Azure uses for large amounts of
unstructured data. Power BI uses Azure Blob storage for data that designers import from a
source, such as an Excel worksheet. Power BI uses the Azure SQL Database for all other data,
including tenant information, workspaces, dashboards and reports, and metadata.
When designers access data sources, they do so in two possible ways:
■■ Import—Data accessed from a file, such as an Excel worksheet
■■ DirectQuery—Data accessed using a reference to an outside source, such as a Share-
Point site or a database
The Data Role in Power BI reads imported data into an Analysis Services in-memory
database, in which it is retained for up to one hour, and also stored in Azure Blob storage in
encrypted form. Data accessed by DirectQuery is also stored in the Analysis Services data-
base, but only while it is in process—that is, when a procedure occurs that requires access to
the data, such as when a user accesses a data set or modifies a report or dashboard, or when a
data refresh occurs. The Analysis Services database is unencrypted to allow Power BI to access
■■ App sharing—Developers can choose to share apps with other Azure AD users through
the interface shown in Figure 1-43. By default, the selected sharers are standard users of
the app, but the developer can also designate them as co-owners. A co-owner of an app
can edit it and share it with others but cannot delete the app or change its owner.
■■ Environment boundaries—An environment is a container for apps, flows, and data that
is separate from any other environments in the same tenant. A tenancy has a single
environment by default, which is named for the tenant. Administrators can create all
their apps and flows in that default environment, or they can choose to create addi-
tional environments in that tenant to make separate development spaces. For example,
administrators can create separate environments for the various teams or departments
in the organization, use them to separate testing and production versions of apps, or
use them to create spaces with different security requirements. Each environment is cre-
ated in a selected geographic region, and all of the environment’s resources are bound
to that region. If an administrator chooses to create a Common Data Service database
in an environment, that database and the data it contains are only available to apps and
flows created in that same environment.
■■ Connector credentials—The Share dialog box also lists the data connections used by the
app. The administrator must see to it that the selected users also have credentials with
the permissions required to access the data sources the app needs to function. Power
Apps does not provide users with access to data for which they do not already have
permissions.
Managing apps
In the Power Apps portal, the Apps page, shown in Figure 1-46, allows you to select an app
and edit it, run it, configure its settings, share it with other users, export it, add it to Microsoft
Teams, or display its run history.
Managing users
Because the Power Platform tools are all based on Microsoft Azure, they do not need their own
identity subsystems; they use Azure Active Directory user accounts to control access to the tool
portals and to the resources in each tool.
To create users and manage user account properties, administrators typically use the Micro-
soft 365 admin center, as shown in Figure 1-47.
After creating users, the administrator’s next step in providing them with access to the
Power Platform tools is to assign them the appropriate licenses, using the interface generated
by the Manage product licenses button, as shown in Figure 1-48.
FIGURE 1-48 The Licenses and Apps tab for a selected user
EXAM TIP
As noted in the Power Apps admin center, the management of security roles has been
moved to the Dynamics 365 user management center. As of this writing, Microsoft is in the
process of moving various administrative functions between the Power Platform admin cen-
ter and the Power Apps admin center. When a function is moved, it is typically replaced by a
notice specifying the new location. When studying for the PL-900 exam, be conscious of the
possible relocation of admin center functions.
Because environments are associated with an Azure AD tenant, only the users in that ten-
ancy can access the environment’s resources. The environment is also bound to the tenant’s
geographical location.
Administrators can create only one Common Data Services database in a given environ-
ment. The data stored within that database is accessible only to apps and flows created in the
same environment.
However, it is also possible for administrators to create additional environments. The Envi-
ronments page in the Power Platform admin center, shown in Figure 1-51, lists all of the current
tenant’s environments.
FIGURE 1-51 The Environments page in the Power Platform admin center
Clicking the +New button opens the New environment dialog, as shown in Figure 1-52, in
which the administrator specifies a name, type, and region for the environment. A second page
contains options to specify the default language and currency values for the environment. In
addition, there is a Create a database for this environment control that causes the tool to create
a Common Data Services database along with the environment.
There are several reasons why administrators might want to create multiple environments
in a particular tenancy. They can create separate environments for the teams, departments, or
locations in an organization, or they might use them to separate app and flow development or
testing projects from those released to production.
When creating an environment, an administrator must choose one of the following types:
■■ Production—Intended for permanent use and deployment; requires a Power Apps
license and one gigabyte of storage space. The default environment created for each
Azure AD tenant is a production environment.
FIGURE 1-55 Environment Settings page in the Power Platform admin center
The Analytics menu provides real-time statistics for the Power Platform tools, and the
Admin centers menu provides links to the Power Automate, Power Apps, and Power BI admin
centers, plus the Dynamics 365 admin center, if the organization subscribes to it. Microsoft is
gradually migrating other functions from the Power Apps, Power Automate, and Dynamics 365
admin centers to the Power Platform admin center.
Because Power Apps and Power Automate are often used together, with apps triggering
flows as necessary, their admin centers are identical in functionality (as shown in Figure 1-56),
and that functionality is limited by the movement of some controls to other admin centers,
such as those for Power Platform and Dynamics 365. The primary tasks possible in these admin
centers is the management of app and flow sharing.
The Power BI Admin portal, shown in Figure 1-57, has a menu bar with 12 items, several of
which display links to other admin centers. For example, the Users and Audit logs menus both
link to the Microsoft 365 admin center, which is where you manage these elements. Other
menus provide controls for features only available in the Power BI Premium product or that
require the activation of other Microsoft Azure applications.
FIGURE 1-57 The Usage metrics page in the Power BI Admin portal
FIGURE 1-58 The Assign connectors page in the New Policy wizard
Then, using scope options, administrators can apply the new DLP policy to an entire tenancy
or to specific environments within the tenancy.
Compliance Manager
Compliance Manager is a risk assessment tool that allows an organization to track and record
the activities they undertake to achieve compliance with specific certification standards. An
assessment of an organization’s compliance posture is based on the capabilities of the Micro-
soft cloud services and the ways that the organization makes use of them, as compared to an
existing standard, regulation, or law.
The home page for the Compliance Manager tool contains a dashboard that displays tiles
representing the assessments of the selected components against different standards, as
shown in Figure 1-59. Each tile specifies a cloud service and the specific standard to which it is
being compared. The results of the comparison are stated as a numerical score.
Auditing
Power Platform also supports auditing, which is another way of monitoring compliance with
data access regulations. Auditing captures instances of specific activities and saves them to a
log file, which administrators can review to monitor data access by specific users, modifications
of security roles, changes made to entities and fields, changes made to sharing privileges, and
the time and place of updates.
To allow auditing and access auditing logs, an administrator expands the Audit and logs
heading on an environment’s Settings page in the Power Platform admin center. Selecting
Audit settings opens the Auditing tab on the System Settings page of the Dynamics 365 admin
center, as shown in Figure 1-61.
FIGURE 1-61 The Auditing tab of the System Settings page in the Dynamic 365 admin center
Chapter summary
■■ The Power Platform tools provide users with the ability to perform three key actions on
their data: analyze, act, and automate.
■■ Power BI is a data analytics service that allows users to discover and gather data from
local and cloud sources and then visualize and share that data.
■■ Power Apps is a development platform that allows users to act on their data by creating
web and mobile applications without writing code.
■■ Power Automate is an automation service that allows users to trigger complex processes
and workflows.
■■ Power Virtual Agents is a service that allows users to create chatbots using a graphical
interface with no coding.
■■ Power Platform provides connectivity both within and among the various applications
and services in Dynamics 365, Microsoft 365, Microsoft Azure, and other third-party
products.
■■ The Power Platform tools—Power BI, Power Apps, Power Automate, and Power Virtual
Agents, along with their underlying components (Common Data Service, Data Con-
nectors, and AI Builder)—run as individual services, meaning that they are cloud-based
software products that are hosted by Microsoft Azure on a software as a service (SaaS)
basis.
■■ All of the Power Platform tools rely on Azure Active Directory for user accounts and
licensing.
■■ The Power Platform admin center provides administrative access to the tenant’s existing
environments, as well as the ability to create new ones.
Thought experiment
In this thought experiment, demonstrate your skills and knowledge of the topics covered in this
chapter. You can find the answer to this thought experiment in the next section.
Ralph is the sole IT administrator for Wingtip Toys, which has six offices in different cities.
The offices have always operated independently, with each one maintaining its own financial
information using Excel workbooks. The company executives are concerned about the security
of their financial data. This is one of the reasons each of the six offices maintains its own Excel
workbooks. Because of this arrangement, creating a picture of the company’s overall finan-
cial health has always been a problem. Each year, an outside accounting firm compiles the
data from the six offices into a comprehensive report, a process that is expensive and time-
consuming and that generates a financial picture that is largely out of date.
Ralph has been asked to devise a solution that will provide the company executives with
an overall financial picture of the entire company that is updated on a continual basis. Having
seen materials on the Power BI service, Ralph thinks that it might help him to accomplish his
task.
Based on Ralph’s requirements and your knowledge of the Power BI service, which of the
following are true statements?
1. Power BI is capable of accessing data from six different Excel workbooks at different
locations and combining the data into a single financial report display that is accessible
from any Internet device.
2. Power BI can access the Excel data from the six sites without any possible danger of the
original files being modified or damaged.
3. Ralph can use Power BI Desktop to create new reports on his Android smartphone and
publish them to the Power BI service.
4. Ralph must manually update the Power BI reports he creates to make sure that the data
displayed is current.
57
Using entities
When a developer creates a database instance in Common Data Service, it consists of a stan-
dard set of entities, with each entity having a standard set of fields. An entity is the Common
Data Service equivalent of a table in other database management systems. A default Common
Data Service instance has a base set of standard entities, as shown in Figure 2-2, any of which
the developer can select and populate with data from an outside source.
In addition to the standard entities created with every Common Data Service instance,
developers can create custom entities to suit the requirements of specific business applications,
assuming that none of the standard entities are suitable. It is possible to rename a standard
entity if that makes it more suitable to the application that will use it.
Creating a custom entity is simply a matter of clicking the +New entity button on the Enti-
ties screen in the Power Apps portal to open the dialog box shown in Figure 2-3, and supplying
a name for the entity. After expanding the More settings header, the developer can specify the
entity type and the ownership option. After the developer has created the new entity in the
Power Apps portal, they can create custom fields within it.
Aside from the Standard entity type, the developer can also choose the Activity entity type,
which is an entity that can manage tasks for which it is possible to create a calendar entry, such
as appointments, phone calls, faxes, and emails.
The other option for the Standard entity type is its ownership, which has the following
options:
■■ User or team—Actions that developers can perform on this entity’s records are con-
trolled at the user level. User or team ownership is the only possible option for Activity
entities.
■■ Organization—Access to the data stored in the entity is controlled at the organization
level.
Apart from standard and custom entities, Common Data Service also supports two other
types of entities: complex entities and restricted entities. Complex entities include real-time
workflows, plug-ins, or other types of server-side business logic. Restricted entities typically
contain configuration data for specific products. Both of these entity types are typically not
used by Power Apps citizen developers and have licensing requirements that go beyond the
Power Apps/Power Automate Plan 1 license needed for standard and custom entities. For
complex entities, users must have a Power Apps/Power Automate Plan 2 license. For restricted
entities, users must have a license for the specific Dynamics 365 product that uses the entity,
such as Dynamics 365 Sales or Customer Service.
Using fields
Fields are the attributes within an entity that contain specific types of data. If an entity is the
equivalent of a table, then a field is the equivalent of a column in the table, which contains a
particular data point for each record, represented by a row in the table. For example, every
entity has an Address field by default, which is configured with a data type called Multiline
Text, indicating that every value for that field can consist of one or more lines of plain text.
Other fields might have data types such as Whole Number, Date and Time, or Phone.
Just as a standard set of entities exists in every database instance, a standard set of fields
exists in every entity, as shown in Figure 2-4. Depending on the entity, there can be just a few
standard fields or over a hundred.
Understanding relationships
Depending on the nature of the app a developer is creating and the data that it will use, it
might be a good idea to create multiple entities to hold different types of data, rather than
store many different data types in a single entity.
For example, in the case of an order entry app, the developer might need to maintain a list
of incoming invoices and a list of the products ordered on each invoice. The database for this
app would therefore need—at minimum—records for the invoices and records for the prod-
ucts ordered. There would presumably also need to be records for customer information and
records for an inventory of products. Storing all of this information in a single entity (or table)
would be complicated at best.
To better organize the data for the app, it would therefore be preferable to create multiple
entities and establish relationships between them. If the developer creates separate entities for
the invoices and the products ordered, there could be said to be a one-to-many (also called a
parent/child or 1:N) relationship between the two entities. The invoice entity would be the one
(or the parent), and the products entity could contain as many product records (or children) as
are needed for each invoice.
In the same way, the invoice entity can have a many-to-one (N:1) relationship to an entity
containing customer information. Each customer can have many invoices, but each invoice
is associated with only one customer. This type of entity relationship appears as a field type
called a lookup field.
Common Data Service also supports many-to-many (or N:N) relationships between entities,
in which many records in one entity are associated with many records in another entity, in what
are known as peer relationships.
As mentioned earlier, the standard entities provided by Common Data Service are sufficient
for the needs of most developers and their apps, and the relationships between the entities are
already in place. Selecting any entity in the Power Apps portal and selecting the Relationships
tab displays the existing relationships and their types, as shown in Figure 2-6.
From this screen, it is also possible for developers to create new relationships by clicking
the +Add relationship button and choosing Many-to-one, One-to-many, or Many-to-many, to
open a dialog box like the one shown in Figure 2-7.
FIGURE 2-7 The One-to-many dialog box in the Power Apps portal
FIGURE 2-9 The New solution dialog box in the Power Apps portal
When users run a business process flow, they see an interface like that shown in Figure 2-12,
in which the flow leads them through its stages, providing text boxes and drop-down lists in
which they can supply the necessary data. The developer can configure the flow to not permit
users to proceed to the next stage until they have completed the present one. This ensures that
all the required elements of the business process are completed.
FIGURE 2-13 A New business rule canvas in the Power Apps portal
The most common functions of business rules are to simplify the process of supplying
data for users and verify the accuracy of the data that users supply. To that end, developers
can create rules that set values for fields, clear the values from fields, and validate the data
entered into fields. In model-driven apps (only), business rules can also show, hide, enable,
and disable fields. For example, when users are required to supply their annual income in
a field, a rule can enable additional fields for verification if the income exceeds a specified
amount.
Microsoft maintains and continually updates documents defining the Common Data Model
on their GitHub repository at https://github.com/Microsoft/CDM.
Many of Microsoft’s applications and services store their information in databases that
conform to the CDM standard, including the Common Data Service, as used in Dynam-
ics 365 and Power Platform; dataflows in Power BI and Power Apps; Graph data connect in
Office 365; and Azure Synapse. All these applications and services use CDM as their native
metadata structure and can freely share the data they store in CDM-based storage tech-
nologies. Many other software developers and vendors use the CDM format as the basis for
their products as well.
For more information on standard entities, see “Describe entities, fields, and relationships,”
earlier in this chapter.
FIGURE 2-16 The Build an automated flow dialog box from the Power Automate portal
FIGURE 2-17 The Build a scheduled flow dialog box from the Power Automate portal
Describe actions
Actions are specific modifications made to the data provided by an outside application or
service. In Power Automate, actions are usually the result of a trigger, but developers can
use them in Power Apps as well. For example, when a developer creates a manual trigger in a
Power Automate flow, the next step is to select an action that will be the result of the trigger, as
shown in Figure 2-18. Apps and flows can include multiple actions using different connectors to
perform a sequence of tasks.
Actions can cause an application or service to perform a task, such as send an email, or
modify the source data in some way. For example, Figure 2-19 contains the interface for an
action that deletes a row from a specific Excel spreadsheet.
FIGURE 2-19 The Delete a row action for Excel in the Power Automate portal
The connectors designated as premium are available to licensed users of the standalone
versions of Power Apps (both the per user and the per user, per app plans) and Power Auto-
mate (both the per user and per flow plans), as well as Dynamics 365 users. The premium con-
nectors feature those for many commercial Microsoft and third-party services, including SQL
Server and Dynamics 365. A sampling of the premium connectors is shown in Figure 2-21.
Power Apps standalone licenses include Power Automate capabilities, as long as the Power
Automate flows exist in the context of a Power Apps application. These contextual flows are
permitted to use whatever standard and premium connectors are provided with the Power
Apps license. Standalone flows that are not part of a Power Apps application are not supported
by the Power Apps license; a standalone Power Automate license is required.
Licensed Microsoft 365 and Office 365 users have access to the standard connectors in
Power Apps and Power Automate, but they do not have access to premium connectors. To gain
access to the premium connectors, they need a standalone Power Apps and/or Power Auto-
mate license as well.
EXAM TIP
Candidates for the PL-900 exam should be aware of the fact that, despite their being
referred to by the single name Power Platform, the Power BI, Power Apps, Power Automate,
and Power Virtual Agents tools are separate products, each requiring its own license and
with its own licensing terms. For a full description of the licensing terms for Power Apps,
Power Automate, and Power Virtual Agents, see the licensing guide available at
https://go.microsoft.com/fwlink/?linkid=2085130.
3. Definition—Provides the interface for creating the connector’s actions, triggers, and
policies, as shown in Figure 2-24
After developers have created custom connectors, they can share them with users inside
their organization. Sharing an app or flow that uses a custom connector makes it accessible to
the recipients of the share. Developers can also share their custom connectors with other users
by selecting Invite other user from the Custom connectors page to display the interface shown
in Figure 2-26.
To share custom connectors with users outside of the organization, developers must submit
it for certification by Microsoft, which validates the connector’s functionality and content. The
FIGURE 2-27 The AI Builder Build screen in the Power Automate portal
Prebuilt models
The prebuilt models included in AI Builder are designed to perform specific tasks common to
many businesses and do not require developers to build and train the model before they can
use it. They appear as tiles in the Build screen in AI Builder in a section called Get straight to
productivity. The prebuilt models currently supplied with AI Builder are as follows:
■■ Business Card Reader—Extracts detailed name, address, and contact information from a
JPEG, BMP, or PNG image of a business card (up to 6 MB in size), regardless of the card’s
print layout. In a flow, the model creates a manual or automatic trigger and two actions,
as shown in Figure 2-28: Predict, in which AI identifies the data appropriate to each of
the 20 fields supported by the model, and Create a new record, which creates a record
in the Contacts entity of the Common Data Service and inserts each identified datum
from the card image into the correct field.
■■ Category Classification—Accepts textual input from email messages and evaluates the
language to determine the category in which the text should be placed. In the sample
automated flow, as shown in Figure 2-29, incoming emails trigger the flow, convert the
HTML in the email message to plain text, and feed the text to the model. The model
uses AI to select an appropriate category for the text and sends it to a separate case for
that category, which generates an email routed to appropriate recipients. In this prebuilt
model, the two categories supplied are Documentation and Price & Billing, but the
developer can create as many additional categories as needed.
■■ Entity Extraction—Accepts textual input from email messages and evaluates the lan-
guage to identify the entities to which the message refers. In the sample automated
flow, as shown in Figure 2-30, incoming emails trigger the flow, convert the HTML in
the email message to plain text, and feed the text to the model. The model uses AI to
■■ Language Detection—Accepts textual input from email messages, identifies its pre-
dominant language, and routes the email to an appropriate recipient. In the sample
automated flow, as shown in Figure 2-32, incoming email messages trigger the flow and
convert the HTML to plain text. The model then uses AI to identify the language of the
text. Then, the flow’s actions determine the correct recipient for the language, assign
the message the correct two-letter language code, and route the email to the recipient.
■■ Sentiment Analysis—Analyzes text to make a determination of whether its sentiment is
positive, negative, or neutral and generates an email or notification informing a recipi-
ent of the result. In one of the three sample automated flows, as shown in Figure 2-33,
new tweets trigger the flow, which uses AI to determine the sentiment of the tweet and,
if the sentiment is negative, generates an email to a specified user.
■■ Text Recognition—Scans image files for printed or handwritten text. In the sample
instant flow shown in Figure 2-34, the selection of an image file causes the AI to scan the
image for text and assign the resulting text to a variable.
Although most of these prebuilt models are designed to be usable as is in a flow or an app,
developers can also modify them as needed to create additional actions that utilize the infor-
mation produced by the AI functions. For example, the Language Detection model contains
modules for English and French only; developers can add more languages as needed.
Custom models
The Refine a model for your business needs section of the AI Builder’s Build screen contains
tiles that provide access to models that developers can customize for use with their own data
and business needs. Unlike the prebuilt models, which use AI to make determinations based
on standard business practices, developers must build and train the custom models with their
own data and practices. For example, anyone can use the prebuilt Business Card Reader model
without modification of the AI, because the information found on business cards is predictable.
Chapter summary
■■ Common Data Service is a cloud-based data storage solution that the Power Platform
applications can use to maintain their data in a secure, manageable environment.
■■ The Power Platform tools are able to connect directly to many different data sources,
including local files, network resources, and cloud-based services.
■■ An entity is the Common Data Service equivalent of a table in other database manage-
ment systems. A default Common Data Service instance has a base set of standard enti-
ties, which the developer can populate with data from outside sources.
■■ Fields are the attributes within an entity that contain specific types of data. If an entity is
the equivalent of a table, then a field is the equivalent of a column in the table.
■■ An environment is a container for the apps and flows created in Power Apps and Power
Automate, as well as the data they use.
■■ Business process flows are tools that allow administrators to ensure that users follow
specific procedures when performing certain tasks.
■■ Business rules enable developers to implement logic on data stored in Common Data
Service.
■■ Common Data Model (CDM) is a Microsoft initiative that defines a shared data lan-
guage, consisting of a unified system of schemas and metadata. The objective behind
CDM is to create a standardized format for data sharing and storage that allows applica-
tions and services to share data without the need for custom implementations.
■■ Connectors are Power Platform components that allow Power Apps and Power Auto-
mate to interact with outside applications, services, and data files and utilize their data.
■■ Triggers are components in Power Automate that cause a flow to begin running. Actions
are specific modifications made to the data provided by an outside application or
service.
■■ AI Builder adds intelligence to the apps and flows created in Power Apps and Power
Automate.
■■ To use AI Builder, developers choose from a collection of prebuilt and custom models
that define scenarios in which an app can apply artificial intelligence to a business task.
93
Power BI provides visualizations supporting several different types of bar and column
charts, including the following:
■■ Stacked—Charts that combine two or more values in each bar or column, as shown in
Figure 3-4
■■ 100% stacked—Charts that combine two or more percentages to display their values out
of 100 percent, as shown in Figure 3-5
■■ Funnel—Bar charts that display values in descending numerical order, creating a display
that resembles a funnel, as shown in Figure 3-7
■■ Waterfall—Column charts that split a single statistic into sequential increments, typi-
cally representing intervals of time or category, as shown in Figure 3-8
Line charts
Line charts display one or more value sequences represented by horizontal lines running from
each value to the next one, as shown in Figure 3-9. Commonly used for the presentation of
values over time, as in financial profit and loss charts, the horizontal (or x) axis traditionally
represents the time interval, such as days, months, or years.
Area charts
An area chart is essentially a line chart with the space between each line and the x-axis shaded,
as shown in Figure 3-11. By using translucent shading, the chart can display the overlap
between the two sets of values.
Donut charts, a variation of the pie chart, consist of a ring (or annulus) divided into seg-
ments in the same way, as shown in Figure 3-13.
A variation on the scatter chart is the bubble chart, which adds a third data value by modify-
ing the size of the data points to represent a third dimension, as shown in Figure 3-15.
The area chart in the background displays the current trend values, and in the foreground is
the current numerical value and the goal value, plus a percentage that specifies how far off the
current trend value is from the goal.
Cards
In a Power BI dashboard or report, a card is a tile that contains a single number in large, easily
readable type, as shown in Figure 3-17. Designers use a card when there is a single numerical
value important enough to be displayed by itself.
Key influencers
A key influencers tile allows consumers to explore the factors that affect a specific metric.
When you create the visualization and select fields from the data source, Power BI performs an
analysis and creates a chart like the one shown in Figure 3-19. Selecting one of the factors on
the left modifies the column chart on the right.
The Filters pane, on the right side of the figure, contains the filters created by the report
designer and the default filter values the designer specified. For example, there is a Year filter
for which the designer selected the value 2014 as the default. However, the data set contains
data for other years, which the consumer can display by expanding the Year filter, as shown in
Figure 3-22, and then selecting any or all of the other Year check boxes.
Power BI filters use basic filtering by default, but consumers can switch to an Advanced fil-
tering option, shown in Figure 3-23, which allows the use of Boolean operators to create more
complex filter behaviors.
When a consumer modifies the filters to display different information in a report, Power BI
saves the changes made in that consumer’s account only. When the consumer opens the same
report again, even on another device, the changes appear as they were saved. The consumer
can then use the Reset button at the upper right of the workspace to return all the filters to
their default settings.
In the Editing view used by report designers, the Filters pane contains three sections, as
shown in Figure 3-24, which are labeled as follows:
■ Filters on this visual
■ Filters on this page
■ Filters on all pages
The designer can drag data fields from the Fields pane to each section and then configure
the filter for each field with the default settings that will appear to consumers.
EXAM TIP
Power BI has introduced a new design for the Filters pane as of April 2020. Newly created
dashboards and reports use the new design automatically. Existing dashboards and reports
appear with the old design, in which the Filters controls appear in the Visualizations pane
and provide the designer with the opportunity to upgrade to the new design. In the new
design, a separate Filters pane adds new functionality, including the ability to format the
Filters pane to match the report, hide all or part of the Filters pane from consumers, and
lock specific filters so that consumers cannot modify them.
■■ Apps—Displays tiles providing access to the apps the user has added to the interface
■■ Shared with me—Displays a list of reports and dashboards shared with the current user,
divided into categories by the sharing user
■■ Workspaces—Displays a list of the workspaces created by the user
FIGURE 3-30 The Add Visual dialog box in the Power BI admin portal
FIGURE 3-32 The Workspace settings controls in the Power BI admin portal
EXAM TIP
As of mid-2020, the new workspace is the default type created in the Power BI service,
although it is still possible to create classic workspaces. Candidates preparing for the PL-900
exam should be aware that many Power BI resources might not be updated to reflect the
new workspace type and its default status.
FIGURE 3-33 The new Create a workspace dialog box in the Power BI service
FIGURE 3-34 The workspace Access dialog box in the Power BI service
Because it is cloud based, the Power BI service is accessible to all users, on almost any
device. Whatever tool developers use to create reports or dashboards, they publish them
to the Power BI service so that consumers can access them freely. The Power BI service
also allows developers to collaborate by providing them with access to documents stored
in the cloud.
The Power BI service has a Reading view for consumers and an Edit view for develop-
ers. The Reading view displays the Pages and Filters pane, whereas switching to the Edit
view moves the pages tabs to the bottom of the screen and adds the Visualizations and
Fields panes on the right side, as shown in Figure 3-36.
Power BI Desktop is intended as a development and editing environment; consumers can-
not use it to access shared content. It also does not support collaboration in the way that the
service does. There are no workspaces in Power BI Desktop; instead, users open individual
content files that use a format with a .pbix extension.
The Power BI service and Desktop tools have some basic functions in common, but each
has some capabilities that the other lacks, as shown in the Venn diagram in Figure 3-37. The
FIGURE 3-39 The Access Web content screen from Power BI Desktop
After the developer has authenticated to the data source (if necessary), Power BI Desktop
evaluates the data found at the source and displays the Navigator screen, as shown in Figure 3-40,
containing all the tables it has found. Selecting a table and clicking Load adds the data to the
Fields pane in the Report view.
FIGURE 3-41 The Fields pane in Power BI Desktop with two data sources
By right-clicking the Overall rank column and selecting Change Type from the context
menu, or by selecting the Data type drop-down list in the ribbon’s Transform group, the
developer can choose Whole Number to convert the column to numerical values that the
After the developer changes the data type, that modification appears in the Query Settings
pane in the Applied Steps box as Changed Type. To undo the change, the developer can simply
delete the Changed Type transformation. Each transformation a developer applies to the data
is added to the Applied Steps list for later manipulation, if necessary.
Renaming elements
Depending on the configuration of the data as it appeared in the source, it might be necessary
for a developer to click the Use first row as headers command in the ribbon’s Transform group
to create column headers. It is also possible for the developer to right-click a column and
rename the header to accommodate the needs of the other source to which the developer will
merge or append the data.
Combining queries
Modeling data is essentially a matter of applying one or more queries to it. Power BI
Desktop therefore refers to the modeled data from a source as a query. After the devel-
oper has modeled the data from multiple sources, it is possible to combine the queries
in two ways:
■■ Merge—Adds columns from one data source to the existing columns from another
source
■■ Append—Adds new rows from one data source to the existing rows in another source
Clicking OK in the Merge dialog box causes the merged data to appear in the original
source, as shown in Figure 3-46. The entire merged query appears as a single column with the
word “table” in each cell, indicating that column contains all the merged columns in contracted
form.
Clicking the Expand button at the right side of the column header displays the dialog box
shown in Figure 3-47. By selecting or clearing check boxes, the developer can specify which
expanded columns should appear in the merged query.
For this example, the developer should clear all but the Abbreviation check box and then
click OK. The Abbreviation column is now merged into the Ranking of best and worst states for
retirement query, as shown in Figure 3-48.
When the data modeling process is complete, clicking Close & Apply in the ribbon’s Close
group adds the table from the Power Query Editor to the report in Power BI Desktop.
If for any reason a developer does not want to use sums of the units sold to create the
visualization, it is possible to change the aggregate by right-clicking the field in the Value well
to display the list of functions shown in Figure 3-50. For example, selecting Average instead of
Sum causes Power BI to recalculate the values and redraw the chart with the averages instead
of the sums. Other aggregates that Power BI supports include minimum, maximum, count
(distinct), count, standard deviation, variance, and median.
FIGURE 3-52 The Create new content screen in the Power BI service
FIGURE 3-54 The Database tab in Power BI Desktop’s Get Data dialog box
FIGURE 3-55 The Azure tab in Power BI Desktop’s Get Data dialog box
FIGURE 3-57 The Other tab in Power BI Desktop’s Get Data dialog box
FIGURE 3-58 The Datasets + dataflows tab of a new workspace in the Power BI service
This figure also includes data sets that have been endorsed to indicate that they are of
particularly high quality and suitable for use by other developers. Data sets with the blue
Promoted tag are endorsed by their creators. The green Certified tag appears on data sets
that their creators have submitted for certification by a group of expert users selected by the
organization’s Power BI administrators.
It is also possible for developers to apply permissions to data sets to regulate what other
users can do with them. When you select Manage permissions from the context menu of a data
set, its Manage access page appears, as shown in Figure 3-59.
From this page, the owner of a data set can add users and assign them the following
permissions:
■■ Read—Allows recipients of the permission to reshare the element
■■ Build—Allows recipients of the permission to build new content from the element
FIGURE 3-60 The Get started with your new app screen in the Power BI service
2. Click the Push pin icon in the toolbar to open the Pin to dashboard dialog box, as shown
in Figure 3-63.
3. Select the New dashboard radio button, specify a name in the Dashboard name field,
and click Pin. The new dashboard is created in the default workspace, and a Pinned to
dashboard message appears.
4. Click Go to dashboard. The newly created dashboard appears with the selected visual-
ization on it, as shown in Figure 3-64.
Skill 3.3: Build a basic dashboard using Power BI CHAPTER 3 137
It is also possible to add tiles containing media content and other material directly to a
dashboard by selecting Add tile from the More Options menu to display the Add tile dialog
box shown in Figure 3-65.
FIGURE 3-65 The dashboard Add tile dialog box in the Power BI service
Emphasizing importance
The other design consideration that developers should observe is the relative importance
of the visualizations being displayed. For example, in the detail from the sample dashboard
shown in Figure 3-67, the table lists the available beds and the occupancy rate for each of
seven facilities, with totals at the bottom. However, to provide the consumer with an immediate
overview of the data, the totals for all the facilities combined are also displayed above the table
in card tiles, using much larger type.
The decision as to what data is most important is, of course, particular to the subject and to
the audience for the dashboard. New developers might find that the dashboard design process
requires some trial and error, both to accommodate the screen size and to select the tiles from
the report that are most important to the consumers. The process might even involve modi-
fications to the report from which the tiles are taken. For example, an elaborate chart visual-
ization might be appropriate for the report, but a developer might find it necessary to create
some smaller card tiles isolating the most significant statistics from the chart and pin those to
the dashboard to save space, rather than including the entire chart.
Skill 3.3: Build a basic dashboard using Power BI CHAPTER 3 139
FIGURE 3-67 Dashboard table tile with significant statistics displayed as card tiles
EXAM TIP
To share content, both the developer and the consumer must have Power BI Pro licenses or
be working in a Power BI Premium workspace. Candidates for the PL-900 exam can access
the free version of Power BI, but to work with the sharing features, they can obtain a trial
version of Power BI Pro from Microsoft.
When you select a dashboard or report in a service workspace and click the Share icon, the
Share dashboard or the Share report dialog box appears, like the one shown in Figure 3-68.
FIGURE 3-68 The Share dashboard dialog box in the Power BI service
3. Select one of the available workspaces listed in the dialog box and click Select.
4. When the publication process is completed, a Success message box appears, containing
a link to the published file in the Power BI service, as shown in Figure 3-70.
Chapter summary
■■ Visualizations are the formats designers can use to display data in a Power BI dashboard
or report. Power BI provides a large selection of visualizations to choose from, including
various types of charts, tables, maps, gauges, apps, and cards.
■■ Filters are a means by which Power BI designers and consumers can specify what data is
displayed in reports.
■■ The Power BI service interface has a menu on the left side of the workspace that pro-
vides the primary means for users to navigate around the site.
■■ With Power BI, it is possible for organizations and users to create their own custom
visualizations and share them within the organization or with the outside Power BI
community.
■■ When a user registers a Power BI account, the service creates a workspace for that user.
A workspace is a private area of the service in which users can work on their content
prior to sharing it.
■■ The Power BI service is the cloud-based environment that both developers and consum-
ers use to create and access dashboards, reports, and other content. Power BI Desktop
is a Windows application that provides more advanced data modeling and report
development capabilities.
■■ The Power BI service allows developers to connect to any one of hundreds of data
sources. However, in Power BI Desktop, it is possible to connect to multiple data sources
at once and combine the information from them into a single data model.
■■ Data modeling is a term that can refer to a variety of tasks, including modifying data
types; removing rows or columns; and renaming tables, rows, or columns.
Thought experiment
In this thought experiment, demonstrate your skills and knowledge of the topics covered in this
chapter. You can find answers to this thought experiment in the next section.
Ralph is new to Power BI, and he wants to create a dashboard that compares the number of
COVID-19 cases in each of a selected group of East Coast U.S. states on a particular day. He has
found a website with a table containing the necessary data for all 50 states, which is updated
daily. After studying Power BI for a while and planning the process of creating a dashboard,
Ralph expects to perform the following tasks:
1. Create a data set from the COVID-19 data on the website.
2. Create a report with table and column chart visualizations of the data for the 50 states.
3. Create a dashboard and pin the table and column chart visualizations from the
report to it.
4. Use filters to restrict the data in the two visualizations to the desired East Coast states.
5. Share the dashboard with selected users on the network.
However, Ralph is somewhat confused about whether to use the Power BI service or Power
BI Desktop to perform these tasks. For each of these tasks, specify whether Ralph can use the
Power BI service only, Power BI Desktop only, or either the Power BI service or Power BI Desk-
top. Explain your answers by specifying any additional tasks that Ralph might have to perform.
147
Canvas apps
Canvas apps are the original application type supported by the Power Apps tool when it was
released in 2016. Rather than write code, developers can create canvas apps by dragging
and dropping elements onto a blank canvas in Power Apps Studio, in much the same way as
PowerPoint users design slides. The developers then link the app to one or more data sources
using the many connectors supplied with Power Platform and expressions that are similar to
those used in Excel.
There are three ways to create a canvas app, as shown in Figure 4-1: by starting from a blank
canvas, by starting with data from the Common Data Service or through one of the other
Power Platform connectors, or by starting with one of the many templates included in the
Power Apps portal.
In the sample help desk canvas app shown in Figure 4-2, the center pane displays the Login
screen, the first one that users and admins will see when they open the app. The right pane
contains controls for manipulating the appearance of the Login screen, and the left pane con-
tains an expandable list of the various screens in the app and the components the developer
has placed on them.
FIGURE 4-3 Three additional screens from the Power Apps sample help desk app
Canvas apps (unlike model-driven apps) provide the developer with complete freedom over
the creation of the application interface. In addition to cosmetic properties, developers can
configure canvas apps to display data in different ways, or even create controls that allow users
to sort and limit the data.
After the app is completed, the developer can share it in the cloud with users running desk-
top browsers or iOS and Android mobile devices. One of the other strengths of canvas apps is
their ability to be embedded in other services, including Power BI reports, SharePoint sites, and
Microsoft Teams.
The help desk app shown in the earlier example uses a portrait orientation, which makes
it suitable for display on mobile devices, such as smartphones and tablets. When developers
build apps intended for use on browsers, landscape orientation is also available.
Model-driven apps
Compared with canvas apps, model-driven apps do not provide the same interface configu-
ration capability. Instead, the developer begins by using business functions and business
processes to create a data model in the Common Data Service and then selects and configures
FIGURE 4-4 The App Designer interface in the Power Apps portal
Using the source data and the components selected by the developer, the app then uses
the Unified Client Interface (UCI) to design and create a tile-based display like the one shown
in Figure 4-5. By rearranging the tiles, developers make it possible for the app to automatically
adapt itself to the screen configurations of different device types. Canvas apps therefore have
more design flexibility, but model-driven apps support more complex business logic. In some
cases, a model-driven app can function as the back end for a canvas app.
EXAM TIP
Candidates for the PL-900 exam should be aware that Microsoft provides time-limited trial
versions of Microsoft 365 and Dynamics 365, which include the full Power Apps and Power
Automate capabilities described here. A trial version of Power BI Pro is also available as a sepa-
rate product.
EXAM TIP
Candidates for the PL-900 exam should be aware that Microsoft and other sources use the
word portal frequently and with many different definitions. In computing, the term portal
is usually defined as a webpage that provides access to other services, applications, or
websites. In the context of the Power Platform tools and other Microsoft cloud services, it
is common to refer to their management and administration websites as portals. Be sure
to avoid confusing these applications for the term with the portal app in Power Apps.
After the portal app has been created, the developer can then edit the website as needed by creat-
ing new pages, adding components, and applying templates, using the interface shown in Figure 4-7.
FIGURE 4-9 The Component libraries tab on the Apps page in the Power Apps portal
To access a component library when creating an app, a developer opens the Insert page and
clicks the Get more components button at the bottom of the screen. This generates a list of the
available component libraries, as shown in Figure 4-10, from which the developer can import
individual components or the entire library.
FIGURE 4-10 The Import components pop-up on the Insert page of a canvas app
FIGURE 4-11 The Library components header on the Insert page of a canvas app
As with component libraries, PCF provides resources for developers that can create a uni-
fied appearance and experience across all of an organization’s apps. There is also a growing
community of component developers that make their work available online on an open source
basis.
To deploy PCF code components, developers package them into a solution file and import
the file into the Common Data Service. From there, individual app developers can add them to
canvas or model-driven apps.
PCF code components must include the following three elements:
■ Manifest—A metadata file in XML format that specifies the name of the component,
how it can be used, what properties can be configured, and what resource files it needs
■ Component implementation—TypeScript or JavaScript code that defines the functional-
ity of the component and its user interface
■ Resources—A file containing the code needed to implement the component’s visualiza-
tion, which can include JavaScript libraries, Cascading Style Sheets (CSS) code, images,
and HTML
FIGURE 4-14 The Environments page in the Power Platform admin center
In this formula, the Value function converts the text in each of the first three controls into
a value that can be manipulated. The Sum function then adds the three values together into
a total that appears in the Label1 control. The developer can also elaborate on the formula by
adding other functions, such as the If function in the following example:
If(Sum(Value(TextInput1.Text),Value(TextInput2.Text),Value(TextInput3.Text)) >=65,
"Pass","Fail")
This formula uses the If function to evaluate the sum, as in the case of a teacher calculating
a quiz grade. If the value arrived at by the Sum function is greater than or equal to 65, then the
Label1 control displays Pass, as shown in Figure 4-16; if the sum is less than 65, Fail appears.
FIGURE 4-16 The Power Apps workspace containing a sample canvas app with a formula using the If
function to evaluate a sum
Selecting the Format property in the drop-down list displays a default formula value of
DateTimeFormat.ShortDate, which causes the date to appear in the control using the format
mm/dd/yyyy. As shown in Figure 4-18, developers can select that formula to display alternative
values, such as ShortDateTime, which adds the time to the date, and ShortDateTime24, which
adds the time using the 24-hour clock.
Scrolling through the list of other possible formula values, developers can also select Long-
Date, which displays the date in the control as Friday, July 3, 2020.
Organizations that subscribe to Microsoft 365 have access to cloud-based storage services
that they can use as data sources, including OneDrive for Business and SharePoint. Both of
these services can store files that contain the data on which an app is based. Dynamics 365 and
Power Apps Pro subscribers have access to Common Data Services, which is a database that
apps can use to store the data they gather from users.
The many other connectors supplied with the Power Platform tools provide access to
applications and services running on local servers and in the cloud. Power Platform has two
classes of connectors, standard and premium, which are dependent on the Power Apps/Power
Automate license used by the developers. The standard connectors provide access to most of
the Microsoft cloud services, as well as to basic internet services and social media. The pre-
mium connectors allow apps to connect to higher-end commercial applications and services,
including SQL Server, Dynamics 365, and various Azure services.
In some cases, a data source might just be a place to store data generated by the app, such
as SharePoint or the Common Data Service. In other cases, the connection might be the source
for the data that is presented in the app, as in the Flooring Estimates sample app shown in
Figure 4-20, which was generated from an Excel spreadsheet accessed from a OneDrive for
Business connection.
A spreadsheet is a type of table; this is the most common form of data used by apps in
Power Apps. An app can read data from a table, modify the existing table data, and add new
entries to a table. Other types of connections also can provide access to tabular data, such as
SharePoint lists and SQL tables. Connectors can also provide access to other types of data that
are not tabular, such as calendars and email messages.
Depending on the nature of the connector, the developer selecting it will be presented with an
interface providing access to the application or service. For example, if the developer selects the
Import from Excel connector, a standard combo box appears, enabling the selection of an Excel
file from a local or network drive. If the developer selects the connector for a subscription-based
online service, a window appears, prompting for user account credentials, as shown in Figure 4-22.
FIGURE 4-23 The Create an app page in the Power Apps portal
Selecting one of the tiles in the Start with your data section, such as the OneDrive for Busi-
ness tile, opens a Connections page, as shown in Figure 4-24. In this example, the Connec-
tions page indicates that there is already an open connection to the developer’s OneDrive for
Business account. If there was no existing connection, the developer would have to click the
+New connection button, select the OneDrive for Business connector, and type the necessary
credentials to gain access to the data source.
FIGURE 4-24 The Connections page for a new app in the Power Apps portal
After the developer selects a data file, Power Apps analyzes its contents and creates a work-
ing app that utilizes the data in an appropriate manner. In this example, Power Apps uses the
spreadsheet information about types of flooring to create a catalog app that consists of the
following three screens, as shown in Figure 4-26:
■■ A Browse screen listing all the flooring products
■■ A Detail screen for each product
■■ An Edit screen in which users can modify the information for a particular product
The design of this working app is based on the data supplied in the file and is basically
Power Apps’ guess of the developer’s intentions. The developer can still modify the app in
any way. In fact, if the supplied design is completely inadequate for the developer’s needs,
it might be easier to start over from scratch with a blank app and then connect to the data
source.
FIGURE 4-27 App created from a template prompting for a data storage connection
■■ Detail—The detail screen, shown in Figure 4-29 and called DetailScreen1 in the sample
app, displays all the information for one product selected from the gallery. Apart from
the label and icon controls in the title bar, the screen consists mostly of card controls,
which contain the individual data elements corresponding to the cells in the source
spreadsheet.
When working in the Power Apps Studio portal, clicking any element in a screen highlights
the corresponding control in the Tree View pane and displays the properties of the control in
the right pane. All controls have properties that specify how they look and what they do. The
right pane in the Studio interface contains some of the properties for the selected control,
using text boxes, buttons, and drop-down lists to allow the developer to modify the property
values.
An equation bar near the top of the interface contains a drop-down list for selecting a prop-
erty and an interactive function box, as shown in Figure 4-31, in which the developer can work
with the individual property values. In the sample, the Data Source property of the EditForm1
control on the edit screen indicates that the data comes from the spreadsheet, identified as
@FlooringEstimates.
FIGURE 4-31 The equation bar from the Power Apps Studio interface
After the app is successfully saved, the success screen includes a Share button. Clicking
this opens the Share page, on which the developer can specify a user or group with which the
app will be shared, as shown in Figure 4-33. By default, the accounts added on the Share page
become users, who are permitted to run the app. Selecting the Co-owner check box grants the
user the permissions needed to edit the app and share it with others.
The starter portal includes three sample webpages that developers can use as the basis for
their own page designs, as follows:
■■ Default Studio template
■■ Page with title
■■ Page with child links
When a developer who is a Dynamics 365 subscriber has model-driven Dynamics 365 apps
installed in the currently selected environment, then the Create page includes portal templates
associated with the Dynamics 365 apps, as shown in Figure 4-36.
Installing a portal app from a template first calls for the developer to supply a name for the
app and the address with which users will access it in the powerappsportals.com domain, as
shown in Figure 4-37. The form checks the address supplied by the developer to ensure that it
is not already in use. After the developer clicks Create, the window closes and the portal provi-
sioning process proceeds in the background, often for several minutes.
FIGURE 4-37 The Customer self-service pop-up generated by a portal app template
While the provisioning occurs, the new portal app is listed on the Apps page, as shown in
Figure 4-38, but it is grayed out and the icon has a progress symbol, indicating that it is not yet
accessible.
■■ Themes—Provides access to prebuilt CSS themes that modify the color and other cos-
metic attributes of the portal website, as shown in Figure 4-42
EXAM TIP
Candidates for the PL-900 exam should be careful not to confuse the page templates that
define the layout of portal webpages with the app templates on the Create page that are
used to create sample apps.
A developer might choose to customize the existing website generated by the app tem-
plate by completely redesigning the website, by creating new pages, by applying themes
and/or templates, and by adding components to them. In other cases, developers might
prefer to use the site produced by the template, changing only what is necessary to accom-
modate the organization’s name and content.
FIGURE 4-44 The Register for a new local account page from a portal app
CSS code contains attributes and values that web browsers use to configure text, colors, and
other elements of webpages as they render them. For example, the text-align attribute in CSS
code specifies whether a given block of text should be left-justified, right-justified, or cen-
tered. The font-size attribute specifies the text size. Therefore, the following syntax causes the
selected text to be 36 pixels and centered, typical for a section heading on a webpage:
{
font-size: 36px;
text-align: center;
}
When a developer modifies the CSS code for a particular theme, selecting Upload custom
CSS from the Themes menu makes it possible to add the revised code as a new theme that will
be accessible on other webpages.
EXAM TIP
Candidates for the PL-900 exam can install a trial version of Power Apps, as well as a trial
version of Dynamics 365, to sample the full Power Apps experience. The trial versions are
time-limited, and there is also a limit of one trial environment.
The real difference between building model-driven apps and canvas apps comes after the
app is installed. Instead of the canvas app workspace showing a facsimile of the app screens
that the developer can populate by dragging and dropping WYSIWYG components, model-
driven apps have an App Designer workspace, like the one shown in Figure 4-47.
As with canvas apps, model-driven app designs are based on components, but in the App
Designer interface, the components do not resemble the elements as they will appear on the
final app screens. Model-driven app screens are based on tiles, and developers use the App
Designer to specify what tiles should appear, what data they contain, and how that data should
be presented.
Model-driven apps also differ from canvas apps in that they are always based on data
accessed from the Common Data Services database. Developers design the app by adding
entities from the database.
For example, in the Innovation Challenge app shown in the previous figure, the App
Designer has nine rows in the Entity View section, the first four of which are visible in the figure:
Challenge, Document Location, Feedback, and Idea. The entities appear as buttons on the left
side of the screen, and each entity has a row of four icon boxes representing the entity assets:
Forms, Views, Charts, and Dashboards. These are the elements that determine what data will
appear in the final app and how it will be presented.
Developers can add entities to the app by clicking the Entities artifact on the Components
tab and selecting from the list shown in Figure 4-48. Selecting a check box adds the entity to
the Entity View area, creating a new row of assets for the developer to use.
The entities available to the app are those found in the Common Data Services database
for the selected environment. Developers can add to the capabilities of model-driven apps
by adding entities to the database and populating them with attributes and records. Model-
driven apps can also run users through business processes that create new records in specific
entities and add data to them.
When a user runs the Innovation Challenge sample app, it appears as the dashboard shown
in Figure 4-49. The entity assets appear as tiles, which the app can shift around depending on
the size of the screen displaying it. Developers do not choose a tablet or phone format in a
model-driven app, as they do in a canvas app; the app itself controls the display.
FIGURE 4-50 The Select Charts interface in the Components pane of a model-driven app
Clicking the down arrow in the Charts asset box opens a drop-down list with the names
of the two charts, each with an edit icon that opens the Chart Designer window, as shown in
Figure 4-51. In this window, the developer can change the appearance of the chart by selecting
a chart type and configuring its properties.
Forms appear in model-driven apps when users view entity data in a table format and click
the New button to create a new record in the entity. For example, selecting the Challenges
screen in the Innovation Challenge app and creating a new record displays the form shown in
Figure 4-52, which is similar in appearance to a business process flow in Power Automate, tak-
ing the user through multiple stages, beginning with Setup, with several steps to complete in
each stage.
A view in a model-driven app is a display of information from the Common Data Services
database in tabular form, as shown in Figure 4-54. Views can also appear on dashboards as
scrollable lists, as shown earlier.
EXAM TIP
Candidates for the PL-900 exam should be aware that all the designer interfaces for
the entity assets have been updated recently, and the new versions—called the new
experience—are now the defaults. However, many of the documents and resources online
are still based on the previous interfaces. All of the designers also have a Switch to classic
button that allows developers to use the previous interface.
FIGURE 4-56 Error and warning messages detected by the app validation process
FIGURE 4-57 The Share pop-up interface for a specific model-driven app
Chapter summary
■■ Power Apps is designed for citizen developers with little or no coding experience.
■■ Developers create canvas apps by dragging and dropping elements onto screens in
Power Apps Studio; model-driven apps do not provide the same interface configuration
capability.
Thought experiment
In this thought experiment, demonstrate your skills and knowledge of the topics covered in this
chapter. You can find answers to this thought experiment in the next section.
Ralph is experimenting with Power Apps, the license for which he obtained with his Dynam-
ics 365 subscription. He is trying to develop a canvas app that will allow his company’s sales-
people to enter order information on their smartphones. The orders are to be saved to an
order entry database on the company’s SQL Server. Ralph has created a suitable interface for
the app, with fields in which the salespeople can specify the customers and the products they
want to order. The app seems to be working properly during Ralph’s in-house testing, but
when he attempts a trial deployment to a small group of salespeople in the field, the order
191
However, it is also possible to create a flow from scratch. When you click the +New button
on the My flows screen, a drop-down list appears, as shown at the top left of the figure, and
you can opt to create a flow from a template or choose one of the following flow types:
■■ Automated (see Figure 5-2)—A flow that is triggered automatically when a specific
event occurs, such as the arrival of an email or the posting of a file
FIGURE 5-2 The Build an automated flow page in the Power Automate portal
FIGURE 5-3 The Build an instant flow page in the Power Automate portal
■■ Scheduled (see Figure 5-4)—A flow that is configured to launch at a specific date and
time or by a recurring schedule
FIGURE 5-4 The Build a scheduled flow page in the Power Automate portal
FIGURE 5-5 The Create a UI flow page in the Power Automate portal
■■ Business process (see Figure 5-6)—A flow that leads users through the individual stages
and steps of a process needed to complete a task
FIGURE 5-6 The Build a business process flow page in the Power Automate portal
Templates are examples of flows using various combinations of connectors that are
designed to perform common business tasks involving multiple applications and services. Each
template appears as a tile, as shown in Figure 5-8, which contains a summary of the tasks the
flow accomplishes, the template’s author, how the flow is triggered, and icons indicating the
connectors the flow will use.
FIGURE 5-8 The Notify me in Outlook when a student completes a quiz template tile in the Power
Automate portal
FIGURE 5-9 Detail screen for the Notify me in Outlook when a student completes a quiz flow template in
the Power Automate portal
FIGURE 5-10 The workspace canvas for the Notify me in Outlook when a student completes a quiz
template
FIGURE 5-11 Detail screen for the Notify me and store the response when a student completes a quiz
template in the Power Automate portal
The workspace canvas for this template, as shown in Figure 5-12, approaches the tasks
somewhat differently than the previous one. This template uses the Notifications connector to
send the email and adds a SharePoint action that saves the form response to a list selected by
the developer.
All the templates provided in the Power Automate portal can be used as is or modified to
suit the needs of the developer. The bottom of the canvas always includes an Add an action
button that opens the Choose an action dialog box, as shown in Figure 5-13, which the devel-
oper can use to add another task to the flow.
The Templates screen in the Power Automate portal allows users to search for specific tem-
plates or browse through the tiles representing the hundreds of flow templates included with
the tool. A series of tabs break the collection of templates down into categories, including the
following:
■■ All flows—Displays all the available flow templates
■■ Featured—Displays a selection of the most popular flow templates
■■ Shared with me—Displays flow templates that other users in the organization have
shared with you
■■ Remote work—Displays a selection of flow templates appropriate for users working
from remote locations
■■ Approval—Displays flow templates requesting or granting manager approval for speci-
fied tasks
■■ Button—Displays templates for instant flows that are triggered by a manual button click
or tap
Connector types
Power Automate uses connectors to establish two basic types of data source connections:
■ Function-based—Refers to connections that use functions to perform tasks on the
source application or service. Triggers often use functions to monitor activity at the
source, allowing them to launch a flow when a specific event occurs, such as the arrival
of a file or email. Flows also use functions for actions, allowing them to send an email,
create a calendar event, modify permissions, or generate a notification.
■ Tabular—Refers to connections that allow a flow to retrieve data from the source appli-
cation or service in a table format. Flows can use tabular data as triggers, to provoke an
action when the data is changed, for example. However, flows more often use tabular
data as part of an action, to copy it to another location, for example. When Power Apps
uses a Power Automate flow as part of its functionality, it can conceivably use a connec-
tor to create, modify, or remove data on the source.
FIGURE 5-15 The Sign in to your account screen from the Power Automate portal
FIGURE 5-16 Two steps in a flow on the Power Automate workspace canvas
EXAM TIP
Candidates for the PL-900 exam should be conscious of credential security issues when
designing and building flows. There can be situations when a developer’s use of administra-
tive credentials while creating a flow can allow the flow’s consumers to access sensitive data.
Conditional flows
A flow can contain a condition, which is an if/then statement that defines two possible actions.
For example, an automated flow can contain a trigger that causes it to run whenever a new
email arrives in a specific mailbox. A Condition action can then check whether the email mes-
sage was sent with high importance, as shown in Figure 5-17. The Condition step then branches
into two possible actions: the If yes action if the message was sent with high importance and
the If no action if it was not. The If yes action can cause a notification to be sent to the user’s
smartphone, and the If no action does nothing.
To create a conditional branch, the developer creates a new step and, in the Choose
an action dialog box, clicks the Built-in tab and selects the Condition action, as shown in
Figure 5-18.
The Condition action is one way to create branching actions in the Power Automate flow;
another is the Switch action, which is a conditional action that determines which of multiple
cases to execute based on the input fed to the switch. The advantage of the Switch action over
the Condition action is that though Condition is limited to two branches (Yes and No), the
Switch action can have as many cases as are needed.
For example, the flow in Figure 5-19 contains an action that determines the day of the week,
which is then followed by a Switch action that contains cases named for days of the week. Each
case can then contain actions specific to that day.
FIGURE 5-20 The Apply to each action with a Condition action inside the loop
Do until is a loop action that repeatedly performs a subsequent action (or series of
actions) until a specified condition is met. For example, the flow in Figure 5-21 sets a
variable to an integer value of 1. Then, the Do until action sets the loop to repeat until
the variable reaches a value of 10. The Increment variable action within the Do until loop
increases the variable by 1 each time it executes. The loop repeats until the value of the
variable reaches 10.
Describe expressions
Power Automate provides a large collection of connectors with a wide selection of triggers
and actions. Most of the triggers and actions have settings that the developer must configure
before the flow will operate. Placing the mouse cursor in a text box causes a Dynamic content
pop-up to appear.
This dialog box contains fields from the data source accessible by the connector. Selecting a
field inserts a variable into the text box that is replaced by actual data when the flow executes.
For example, selecting the Timestamp field inserts the Timestamp variable into the text box,
as shown in Figure 5-22. When the flow runs, the variable will be replaced by the time stamp
reflecting the date and time that the flow executed.
However, there are instances when developers might want to add operations that are not
provided by an action’s native settings. For these cases, Power Automate supports the use of
expressions, which can perform operations on existing values.
The previous example used the Get calendar view of events (V3) action and inserted the
Timestamp variable into the Start Time text box. The action will therefore get the calendar
events starting on the date and time the flow is executed. For the End Time value, the devel-
oper might want to get seven days’ worth of calendar information. The field could accept an
exact date and time, in the correct time stamp format, but this does not provide a permanent
solution for the flow.
Instead, the developer can insert the addDays() expression, which can calculate an end time
seven days from the date and time that the flow is executed. Selecting the Expression tab on
the pop-up menu displays a list of expressions that can perform a variety of operations. The
addDays() expression, as shown in Figure 5-23, takes as its parameters the time stamp from
which the days will be added and the number of days to add (or subtract, using a negative
value).
For the purpose of this example, the value for the End Time field will be as follows:
addDays (utcNow(),7)
The utcNow() expression returns the time stamp for the current date and time, so the add-
Days() expression will take the date and time when the flow executes and add seven days to it.
Other date and time expressions allow developers to add hours, minutes, or seconds to a given
time.
Expressions can perform many other functions apart from working with time stamps. The
expressions that Power Automate uses are taken from the Workflow Definition Language in
Azure Logic Apps and are organized into the following categories:
■■ String functions—Manipulate data strings by concatenating, replacing, splitting, trim-
ming, formatting, and converting data
■■ Collection functions—Work with data arrays by specifying their length, locating empty
strings, joining elements, and locating their first or last elements
■■ Logical functions—Perform calculations using if/then statements, arithmetical functions,
and Boolean operators
■■ Conversion functions—Convert input to different data types, such as integers, strings,
Booleans, and XML or JSON values
■■ Math functions—Perform standard arithmetical functions, generate random values, and
identify minimum and maximum values
■■ Date and time—Generate strings containing time stamps based on calendar functions,
such as adding and subtracting time intervals and identifying the start of a time interval
■■ Referencing functions—Provide the ability to work with the inputs and outputs of other
triggers and actions
■■ Workflow functions—Provide the ability to retrieve details about a flow and the URL of a
trigger or action
Describe approvals
One of the common uses of Power Automate flows is to process approvals of documents in
which users must seek the approval of a superior before the task they are working on is com-
pleted. For example, a file might require approval before it can be posted to a SharePoint site,
or an email might require approval before a user can send it out to customers.
In many cases, an approval works by having users post documents to a temporary place,
such as a SharePoint list. The temporary post triggers a flow, which contains an Approvals
action. This action generates an approval request email and sends it to a designated user, as
shown in Figure 5-24. An approval tile also appears on the user’s Home page of the Power
Automate portal. The user responds by approving or rejecting the document, and a Condition
action takes appropriate action depending on the response.
In the example flow shown in Figure 5-25, users wanting to send an email to the organiza-
tion’s customers post the desired text in a SharePoint list called CustomerMail. This triggers the
When the approver’s response is returned to the flow, the Start an approval action passes
it down to a Condition action, which tests for a value of Yes in the Response field. In the If yes
branch of the condition are actions that update the SharePoint item to register its approval and
generate the email message for the customers. In the If no branch, there is just an Update item
action that registers the No response in the SharePoint item.
The search box at the top of the screen allows users to locate templates and other elements
related to their needs. Then, there are several collections of templates directed toward specific
business needs, such as those aimed at sales, information, and productivity tasks. The next
element is a list of icons for popular services, such as SharePoint and Office 365 Outlook, which
provide developers with triggers, templates, and actions for those services. All of these are
entries to the same process of creating and modifying flows.
Selecting one of these three tiles opens a screen containing configuration settings for the trig-
ger, as shown in “Identify flow types,” earlier in this chapter. These screens function as follows:
■ Automated flow—To create an automated flow, the developer must select a trigger that
monitors some element of a connector for activity that launches the flow. For example,
the trigger can launch the flow in response to the arrival of a message or the creation of
a document in an application or service.
■ Instant (also called button) flow—To create an instant (or button) flow, the developer
must select a trigger that responds to an action by the flow user. The trigger can be
linked to a button pressed in the Power Automate mobile app or an activity in another
application or service, such as selecting a file or other object.
■ Scheduled flow—To create a scheduled flow, the developer must specify a date and time
for the flow to launch and, if necessary, a repeat interval.
■ UI flow—To create a UI flow, the developer only has to specify a name for the flow.
■ Business process flow—To create a business process flow, the developer must select the
entity in which the information gathered from the user by the flow will be stored.
EXAM TIP
Candidates for the PL-900 exam should be conscious of the fact that the button flow type
referenced in the exam objective is now referred to as the instant flow type in the Power
Automate portal.
In the case of the automated, instant, and scheduled flows, the opening screen specifies
how and when the flow will launch. The UI and business process flows have specialized func-
tions that will be deliberately launched by the users.
With the trigger in place, the developer can then click the New step button to open the Choose
an action dialog box, as shown in Figure 5-29. Power Automate provides hundreds of actions that
developers can use to manage the incoming email messages. For example, Control actions can
evaluate the email messages and take action on what they find. Notification actions can inform
the user when certain types of emails arrive. This example will use both of these action types.
FIGURE 5-29 The Choose an action dialog box in a Power Automate flow
In the Condition box, the developer creates an if/then statement that can examine some
part of the incoming email. Clicking in the Choose a value text box opens the Dynamic content
pop-up, as shown in Figure 5-31, which lists the various fields in an email.
The Condition box can test the value of any field in the email and return a Yes or No
response. For example, after selecting the Importance field, the developer can type one of the
acceptable values for that field in the Choose a value box. In this example, the condition being
tested is whether Importance is equal to high, as shown in Figure 5-32. In the same way, the
The If yes and If no boxes take action based on the results of the equation in the Condi-
tion box. If an email is set to have high importance, the Condition result is yes, and the flow
executes any actions in the If yes box.
Clicking Add an action in the If yes box opens the same Choose an action dialog box shown
earlier. In this example, high importance emails cause the flow to execute the Send me a
mobile notification action, as shown in Figure 5-33. The developer can type any message in the
Text box and include values from fields selected in the Dynamic content pop-up. In this case,
the notification will specify the sender of the email.
FIGURE 5-33 A Send me a mobile notification action in the If yes box in a Power Automate flow
The developer can create additional actions in the If yes box, if desired, such as an action
that stores the email in a SharePoint site or copies any attachments to the user’s OneDrive. The
If no box can contain actions also, or be left blank, as needed.
Once the flow is complete, the developer should click Save to make sure that the flow is
added to the user’s My flows list, as shown in Figure 5-34.
Modify a flow
For many new developers, the easiest way to learn how to build a flow is to begin with one of
the flow templates included with Power Automate. A template includes the trigger and all of
the actions needed to complete the flow’s designated tasks, although some configuration of
the elements might be needed to render the flow fully operational.
Many of the Power Automate flow templates are designed to transfer data from one appli-
cation or service to another. For example, the Copy files between OneDrive for Business and
SharePoint template, shown in Figure 5-35, creates an automated flow that monitors a speci-
fied OneDrive folder and copies all the files saved there to a specific SharePoint folder. The flow
also checks for the success of the copy operation and generates an email if it fails.
FIGURE 5-35 The Copy files between OneDrive for Business and SharePoint flow template tile
A template such as this one needs some modification before it can run. The developer
must specify which OneDrive folder the trigger should monitor and choose the SharePoint
site and the folder on it where the incoming files will be stored. The template detail screen,
FIGURE 5-36 The Copy files between OneDrive for Business and SharePoint flow template detail screen
The template also provides a list of the connectors the flow will use, which the developer
can modify to use different credentials as needed. The flow then appears in the Power Auto-
mate workspace canvas, as shown in Figure 5-37.
In this template, the flow’s trigger monitors the specified OneDrive folder and, when files
appear in it, the SharePoint Create file action uses the OneDrive File name and File content
values to copy the files to the specified SharePoint folder. Then, a Condition action checks the
status code of the SharePoint file creation and, if the value is 403 (Forbidden), the If yes branch
generates an email to the user indicating that the task has failed.
Once the workspace canvas appears with the specified OneDrive and SharePoint folders,
the work of the template is complete. The trigger and actions shown on the canvas are no
FIGURE 5-37 The workspace canvas for the Copy files between OneDrive for Business and SharePoint flow
template
Modifying actions
Whether created by a template or added manually, developers can always modify the con-
figuration of a trigger or action. By default, triggers and actions use the currently logged-
on user’s account to establish a connection to an application or service. Clicking the menu
button in the trigger or action displays a context menu with a My connections section, as
shown in Figure 5-38, in which the developer can select a different user account or add a new
connection.
When the developer changes the connection to use a different account, the drop-down
lists and the Dynamic content fields for the action change as well. In this example, the Site
address and Folder path fields have drop-down lists that provide access to the current
user’s SharePoint environment. Changing the user address for the connection changes the
contents of the drop-down lists. The File name and File content values are dynamic con-
tent fields that reference the OneDrive connection established in the trigger, so changing
the connection in the trigger above changes the fields available in the Dynamic content
pop-up.
Inserting actions
Developers can add actions to a flow in multiple ways. The Power Automate workspace
canvas always includes a +New step button at the bottom, which opens the Choose an
action dialog box. Selecting an action from the dialog box adds it to the bottom of the
flow. The arrows pointing down from the trigger to the first action and from one action
to another display a plus sign when the cursor hovers over them, allowing a developer to
insert an action between two existing steps. Clicking the plus sign displays a menu with two
options:
■■ Add an action—Opens the Choose an action dialog box, in which the developer can
select an action to be inserted between the existing steps
■■ Add a parallel branch—Opens the Choose an action dialog box in a separate branch off
of the step above, as shown in Figure 5-39. This allows the flow to perform two separate
actions at the same time, both using the results of the same previous step.
FIGURE 5-40 The Compose action in the Power Automate workspace canvas
■ Create CSV table—Allows the developer to convert a data array into a table in CSV
(comma-separated values) format, as shown in Figure 5-41. In this example, the array
of usernames taken from the body of the previous action will be reformatted into the
following table:
FirstName,LastName
Sanjay,Patel
Joanna,Yuan
■■ Create HTML table—Allows the developer to convert a data array into an HTML
(Hypertext Markup Language) table.
■■ Filter array—Allows the developer to apply a filter to a data array using an equa-
tion to select specific entries, as shown in Figure 5-42. In this example, an array
consisting of usernames will be filtered to include only those users with a last name
of Patel.
FIGURE 5-42 The Filter array action in the Power Automate workspace canvas
■■ Join—Allows the developer to modify a data array to use a different delimiter, as shown
in Figure 5-43. In this example, the array of addresses in the From field is delimited by
commas. Specifying a semicolon in the Join with field ensures that the resulting output
will be the same array but delimited with semicolons.
FIGURE 5-43 The Join action in the Power Automate workspace canvas
■■ Parse JSON—Allows the developer to interpret the JSON output from a previous action
by specifying a sample schema, as shown in Figure 5-44. The developer can then use
FIGURE 5-44 The Parse JSON action in the Power Automate workspace canvas
FIGURE 5-45 The Select action in the Power Automate workspace canvas
Run a flow
After the developer has finished building a flow and has saved it so that it appears in the My
flows list, it is ready to run, based on the type of trigger it uses. An automated flow will run
when the event specified in the trigger occurs. An instant flow will run when a user deliberately
FIGURE 5-46 The Test Flow dialog box in the Power Automate portal
After the test run begins, the developer can monitor the performance of each step on
the screen. Successfully executed steps have a circled check mark and failed steps have an X.
Expanding each completed step in the flow displays detailed input and output information for
that step, as shown in Figure 5-47.
For a step that has failed, an error message appears describing the reason for the failure, as
shown in Figure 5-48. In this example, the Condition action exists only to send an email to the
user in the event that the SharePoint Create file action fails. The Create file action was success-
ful in this case, so despite the Condition action having failed, the overall execution of the flow is
shown as having succeeded.
Thought experiment
In this thought experiment, demonstrate your skills and knowledge of the topics covered in this
chapter. You can find answer to this thought experiment in the next section.
Ralph is working with a British application that stores customer names using the labels
Christian Name and Surname. He wants to use a Power Automate flow to transfer data from
the British application’s database to an American customer service application each time a new
customer record is created. However, the American application refers to the same customer
name data fields as First Name and Last Name. There are connectors available for both applica-
tions. Based on this information, respond to the following questions and describe the structure
of the required flow.
1. How can Ralph reconcile the differently named data fields for the two applications?
2. How can Ralph transfer the customer names obtained from one application to the
other?
229
Citizen developers
As time has passed and the value of chatbots has been recognized by more organizations, the
bots have been enhanced to take on more complex tasks themselves, even using artificial intel-
ligence (AI) to perform actions instead of just supplying information. One of the main prob-
lems with these increasingly complex chatbots is that they require an extensive development
effort.
In a chatbot development project, a gap has always existed between the people who know
what tasks the bot has to perform and those who know how to make the bot do them. This gap
is particularly problematic for organizations in which the customer service and technical sup-
port requirements change frequently. One of the primary design objectives for Power Virtual
Agents, as with the other Power Platform tools, is to reduce that gap by making it possible for
the customer service and technical support people to function as citizen developers by creating
and updating the chatbots themselves.
Power Virtual Agents provides a guided graphical development environment that allows
these citizen developers to create chatbots by specifying the questions most commonly asked
by customers and then supplying possible answers to the questions. This strategy allows the
bot to lead the customers through a branching dialog, such as that shown in Figure 6-1, which
leads them to a satisfactory answer to their question.
The Power Virtual Agents development interface allows the personnel familiar with custom-
ers’ questions to program the bot with appropriate responses that they themselves would
otherwise supply. More important, when the questions change or new questions arise, these
same people can modify the bot to accommodate the organization’s changing needs. In other
environments, updating a bot can require a lengthy period of latency as the software goes
back to a developer for changes to the code, retesting, and redeployment.
Artificial intelligence
The ultimate goal of any chatbot is to make the customers believe that they are conversing
with a real person. That might or might not be possible, depending on the effort put into
the bot’s development and on the sophistication of the customer, but Power Virtual Agents
includes AI capabilities that allow it to engage the customer in realistic exchanges.
For example, the phrases that the developer supplies—the phrases that the customer can
use in the conversation with the bot—might include “help me,” “I need help,” and many others.
However, there are any number of other variations that a customer might also use, which the
developer could not possibly anticipate. By supplying Power Virtual Agents with a selection of
common phrases, it uses AI to extrapolate others and accommodate many of the alternatives
that customers might supply.
EXAM TIP
Candidates for the PL-900 exam should be conscious of the warnings that Microsoft
includes with the Power Virtual Agents documentation, specifying that the product is not
intended for use in emergency situations or for diagnosing or treating medical conditions,
and that Microsoft abjures all responsibility for situations arising from the use of chatbots
created by Power Virtual Agents subscribers.
Arguably, the place where consumers are most likely to encounter chatbots is on websites,
but developers can publish their chatbots to many types of platforms other than websites,
including internal messaging platforms, such as Microsoft Teams; mobile apps; and social
FIGURE 6-3 The Channels page in the Power Virtual Agents portal
Developers can publish a single chatbot to more than one channel. When a developer
publishes a chatbot to multiple channels, modifying the bot and republishing it causes it to be
refreshed on all the channels in which it appears.
Topics
Power Virtual Agents simplifies the process of creating and configuring a chatbot by break-
ing the conversation between the bot and the user down into discrete elements called topics.
For example, the first topic for a chatbot might be a greeting that welcomes the user and
introduces the bot’s purpose. The Topics page in the Power Virtual Agents portal, shown in
Figure 6-4, contains a selection of basic system topics and also allows the developer to create
new ones from scratch.
As noted earlier, a topic begins with a trigger phrase, which is a list of possible phrases that the user
might supply, which the bot understands and uses to initiate a particular conversation topic. The greet-
ing topic, for example, might include “Hi,” “Hello,” and “Good morning” in its list of trigger phrases.
A conversation will typically span multiple topics, with the bot configured to launch a specific
new topic based on the user’s responses to the bot’s questions. For example, at the end of the
greeting topic, the developer might have the bot ask the user to specify the product with which
they are experiencing a problem. When the user responds with a product name, as shown in
Figure 6-5, the developer can select Go to another topic and link to a topic specific to that product.
The Entities page in the Power Virtual Agents portal, shown in Figure 6-6, contains a list of
prebuilt entities that help bots to understand many common conversational concepts. These
entities provide examples of syntax for these concepts that help the bot to understand what
the user is saying.
FIGURE 6-6 The Entities page in the Power Virtual Agents portal
For example, there are many ways that users can reference specific dates or times in con-
versation. The user might refer to “last Thursday,” or “December 25,” or “3pm,” all of which are
easily comprehensible to another person but are not understandable to a bot unless it has
some frame of reference for those expressions. The Date and time entity, shown in Figure 6-7,
contains examples of these expressions and provides translations into saved values, which are
time stamps that the bot can understand.
The prebuilt entities included with Power Virtual Agents provide bots with standard busi-
ness terminology, but some organizations require bots to handle conversations involving
specialized vocabulary. To accommodate these needs, developers can create custom entities
using the interface shown in Figure 6-8, in which they can specify terms and synonyms by
which users might refer to them.
Actions
An action, as the word implies, is an element that allows a Power Virtual Agents bot to actually
do something beyond conversing with the user. When a developer creates a new node in the
Power Virtual Agents workspace, as shown in Figure 6-10, selecting Call an action provides the
option to authenticate the user with an identity provider, such as Azure Active Directory, or
create a flow using Power Automate.
Create a chatbot
After starting Power Virtual Agents, a developer must begin by creating a bot, using the dialog
box shown in Figure 6-11. This step involves selecting a name, a language, and the environ-
ment in which the bot will be created. The process by which Power Virtual Agents creates the
account’s first bot occurs in the background and can take as long as 15 minutes.
To create additional bots, developers must click the Bots panel icon at the top-right corner
of the Power Virtual Agents portal to open the Bots panel shown in Figure 6-12 and then click
the + New bot button.
FIGURE 6-12 The Bots panel in the Power Virtual Agents portal
To create a new, blank topic, the developer clicks the +New topic button on the Topics
page to open the panel shown in Figure 6-14. After supplying a name for the topic, and
optionally a description, the developer can proceed to create a list of trigger phrases.
These phrases should be the most likely responses to the question the bot asks at the end
of the Greeting topic.
For this example, Request might be an appropriate title, and some possible trigger phrases
would be as follows:
■ I want to check the status of an order
■ I want to return a product
■ I want to place an order
After saving the topic, clicking the Go to authoring canvas button adds the phrases to the
Trigger Phrases node, along with an empty Message node. The developer can add a message
and then click the plus sign under the Message node to add another node. For example, the
developer could select the Ask a question option and use it to provide the customer with three
choices, as shown in Figure 6-15.
Call an action
In the example presented here, the three options presented to the customer might require the
bot to do more than just provide prerecorded information. As mentioned earlier in this chap-
ter, Power Virtual Agents can also perform actions by working together with Power Automate.
It is actually Power Automate flows that perform actions, but a Power Virtual Agents bot can
pass information to a flow and receive information back using variables.
So, for example, if a customer requests the status of an order, the bot can request an order
number from the customer and save it to a variable, as shown in Figure 6-16.
When the developer clicks the plus sign to add a node and selects Call an action, the option
Create a flow appears. This option opens the Power Automate portal in a separate window and
loads the Power Virtual Agents Flow Template, as shown in Figure 6-17.
The developer can then build a flow in Power Automate, using the variable created by the
bot, which appears in the Dynamic content window, as shown in Figure 6-18, to query a data-
base and retrieve the order status. The flow can then pass the order status it has discovered
back to the bot using a variable in the same way, and the bot can furnish it to the customer.
FIGURE 6-18 Adding a Power Virtual Agents variable to a Power Automate flow
Test a chatbot
In the lower-left corner of the Power Virtual Agents portal is a Test your bot button, which opens
a test pane, as shown in Figure 6-19. This pane allows the developer to interact with the bot as a
customer while tracking the progress of the conversation through the nodes in the workspace.
Acting as a customer, the developer initiates the conversation with one of the topic’s trigger
phrases. As the test conversation proceeds, each node that is processed appears with a green
title bar and a circled check mark in the top-right corner. If problems occur, the developer can
make changes in the workspace and click the Reset button at the top of the pane to begin the
conversation again.
Publish a chatbot
Developers can test their bots as they create them using the testing pane, but to run the bot on
an actual website and make it available to customers, the developer must publish it. The Pub-
lish page, shown in Figure 6-20, contains a single Publish button that makes the current version
of the bot available for distribution to users.
NOTE REPUBLISHING
In Power Virtual Agents, publishing a bot is not usually a one-time task. Developers must
republish their bots each time they make changes to them so that the latest version is pro-
vided to users. The channel on which a bot appears will continue to use its existing content
until the bot is republished, even when the original conversation has been modified in the
Power Virtual Agents portal.
Publishing a bot makes it available on a demo website that is fully operational, as shown in
Figure 6-21. The demo website is accessible to the internet, but it is not intended to be used as
a production platform for the bot.
Publishing a chatbot to the demo website is a simple process that occurs wholly within
Power Virtual Agents. To publish a bot to another site on the web, the Custom website chan-
nel provides the HTML code needed to embed the bot on a page, as shown in Figure 6-23.
Because the embed code calls the bot from the Power Virtual Agents service in the cloud, its
content is updated whenever the developer republishes it.
Publishing a bot to other channels can require different procedures, based on the platform
with which the developer is working. It might be necessary for the bot developer to work with
other administrators within the company to obtain the necessary permissions to add a bot
to a platform such as Teams or the credentials necessary to manage a company social media
account. The tiles for the various channels provide links to instructions for embedding bots in
various services, as well as a Bot ID and Tenant ID that uniquely identify the developer’s ten-
ancy and the specific bot within that tenancy.
FIGURE 6-24 The Analytics page in the Power Virtual Agents portal
FIGURE 6-25 The End of Conversation prebuilt topic in Power Virtual Agents
Chapter summary
■ Power Virtual Agents is a no-code or low-code tool that allows customer service and
technical support personnel themselves to create chatbots and update them as needed.
■ Developers can publish chatbots to websites and many other types of platforms, includ-
ing internal messaging platforms, such as Microsoft Teams, mobile apps, and social
media. Power Virtual Agents refers to these places of publication as channels.
■ Power Virtual Agents breaks down the conversation between a bot and a user into
discrete elements called topics. An entity is a dictionary of terms and phrases that a
bot’s artificial intelligence uses to identify a concept in a conversation. An action is an
element that allows a bot to actually do something beyond conversing with the user.
■ After starting Power Virtual Agents, a developer must start by creating a bot, which
involves selecting a name, a language, and the environment in which the bot will be cre-
ated. The process occurs in the background and can take as long as 15 minutes.
Thought experiment
In this thought experiment, demonstrate your skills and knowledge of the topics covered in this
chapter. You can find answer to this thought experiment in the next section.
Ralph is experimenting with the Power Platform tools, and he has just created a Power
Automate flow for his company’s technical support department that allows a user to create a
new trouble ticket and submit it for attention by the help desk. However, the manager of the
tech support department is wary of the help desk being inundated with trouble tickets for
trivial issues that the users could conceivably resolve themselves.
Ralph is now looking at the capabilities of Power Virtual Agents, and he wonders if he could
use a chatbot to provide users with basic technical support in the form of questions to which
they must respond before they are able to fill out a trouble ticket. With the help of the techni-
cal support manager, Ralph compiles a list of questions that a help desk representative would
ask users when they report some common problems. The questions are phrased so that “No”
answers indicate a failure to solve the problem.
Based on this information, answer the following questions:
1. How might Ralph design the chatbot’s conversation with the user?
2. How might Ralph incorporate the Power Automate flow he created into the bot’s
conversation?
Numerics
100% stacked charts, 96 Text Recognition, 88–89
alerts, Power BI, 8–9
ALM (application lifecycle management), 68
253
B combo, 99
funnel, 97
Back-End cluster, 35–36, 37 gauge, 103
bar and column charts, 95–98 KPI, 102
bots. See also chatbots line, 98
actions, 237–238 pie, 100
entities, 235–237 scatter, 101
flow interaction, 238 stacked, 95–96
topics, 233–234 waterfall, 97–98
building chatbots, 229, 230
canvas apps, 161 calling an action, 242–243
connecting to data using connectors, 163–167 creating, 22–23, 238–239
data sources, 161–163 creating a topic, 240–242
starting with a blank app, 163–165 monitoring
starting with a data source, 165–166 performance, 248–249
starting with a template, 167 usage, 247–248
dashboards, 135 publishing, 232–233, 244–246
flows, 212–224 testing, 243–244
model-driven apps, 180–181 topics, 233–234
Business Card Reader model, 84–85 citizen developers, 1, 23, 29, 147
business process flows, 19, 68–70, 194 creating chatbots, 22–23
business rules, 70–71 Power Virtual Agents, 230
conditions, 70 classic workspaces, creating, 115–116
business value, of AI Builder, 83–84 cloud computing
Common Data Service, 57–58
Power BI service, 3
combining, data sources, 168
C Power BI Desktop, 118–120
combo charts, 99H
calling an action, 242–243
Common Data Service, 2, 15–16, 30, 57–58, 152, 182
canvas apps, 13, 148, 150, 154
business rules, 70–71
building, 161
conditions, 70
connecting to data using connectors, 163–167
entities, 15, 59–60
data sources, 161–163
Activity, 60
starting with a blank app, 163–165
complex, 62
starting with a data source, 165–166
custom, 60–61
starting with a template, 167
fields, 62–64
creating, 148–149
ownership, 60
screens, 148–150
relationships, 64–65
sharing, 150
254
255
F I-J
fields, 62–64 inserting, actions, 221–222
Filter array action, 223 instant flows, 18, 193, 204
filters, 104, 105–106 Join action, 223
Filters pane, Power BI, 106–107
flow templates, 192, 195–200
flows, 16, 17. See also connectors
actions, 198 K
dragging and dropping, 222 key influencers, 103
inserting, 221–222 Key Phrase Extraction model, 87–87
approvals, 211–212 KPIs (key performance indicators), 102
automated, 18, 192
and bots, 238
building, 212–224
256
L P
Language Detection model, 87–88 Parse JSON action, 223–224
licenses, 44 PCF (Power Apps Component Framework), 156–158
connector, 78–79 people, representing with entities, 73–74
Power BI, 7 permissions, connector, 202–204
line charts, 98 pie charts, 100
live pages, creating, 138 places, representing with entities, 73–74
looping flows, 207–208 polling triggers, 22, 76
portal apps, 13, 152–153, 173
customizations, 176–178
M templates, 173–176
themes, 179–180
managed solutions, 66 user authentication, 179
managing portals, 153
apps, 42 Power Apps, 13–15, 147. See also canvas apps;
users, 42–44 model-driven apps
many-to-many relationships, 64 actions, 76–78
many-to-one relationships, 64 App Designer interface, 151
Microsoft 365, and Power Platform canvas apps, 148–150, 154
business solutions, 29–30 component libraries, 155–156
Microsoft Azure, and Power Platform consumption of AI Builder data, 90–91
business solutions, 30 controls, 168
Microsoft Teams, Power Platform business data sources, combining, 168
solutions, 27–29 formulas, 158–159
model-driven apps, 13, 150–152 configuring controls with, 160
adding entities to app navigation, 181–183 licenses, 78
building, 180–181 managing apps, 42
components, 182 model-driven apps, 150–152
forms, 185–186 PCF (Power Apps Component Framework), 156–158
publishing and sharing, 187–188 portal apps, 152–153, 173
using with Common Data Service, 59 Power Automate interoperation, 21–22
views, 186–187 reusable components, 154
modifying security, 38–40
actions, 220–221 Power Apps Studio, equation bar, 170–171
flows, 218–219 Power Automate, 16, 30. See also connectors; flows
triggers, 220–221 actions, 76–78
monitoring chatbots approvals, 211–212
performance, 248–249 connectors, 21, 201
usage, 247–248 function-based, 201
permissions, 202–204
tabular, 201
consumption of AI Builder data, 90–91
N-O data operation actions
Compose, 222
navigation pane, Power BI, 109
Create CSV table, 222–223
one-to-many relationships, 64
Create HTML table, 223
Filter array, 223
Join, 223
257
258
259
U
UI flows, 19, 194
unmanaged solutions, 66
use cases
for custom connectors, 79–83
260