Skip to main content

Build a Career Development Plan App in Power Apps — Part 3: Create the Solution, Environment Variables and Canvas App

· 19 min read
Jagdish Kumawat
Founder @ Dewiride

The app gets its home in this part: a Power Apps solution that holds the canvas app and three environment variables, which tell the app where its SharePoint data is. By the end, the app is created, connected to both lists and to Microsoft 365 user profiles, and ready for its first screen.

This is Part 3 of a 14-part series.

  1. Part 1: Plan the App and Set Up the Demo Organization
  2. Part 2: Create the SharePoint Site and Lists
  3. Part 3: Create the Solution, Environment Variables and Canvas App (you are here)
  4. Part 4: Build the Home Screen
  5. Part 5: Build the My Plan Screen
  6. Part 6: Build the Response Screen
  7. Part 7: Share the App and Build the My Team Screens
  8. Part 8: Build the Review Screen for Manager Approvals
  9. Part 9: Let Managers Manage Competencies
  10. Part 10: Test Every Role, Joiners and Leavers (coming soon)
  11. Part 11: Build a Setup Flow That Creates the SharePoint Lists (coming soon)
  12. Part 12: Run the Solution Checker and Export the Solutions (coming soon)
  13. Part 13: Install the App in a New Environment (coming soon)
  14. Part 14: Recap, Production Checklist and Next Steps (coming soon)

Part 2 built the SharePoint site and lists. This part adds Dataverse to your Default environment so it can hold solutions, then creates the solution, its environment variables and the canvas app. As before, each generic task has its own short guide. This part gives you the exact values for this app, and why.

What You'll Set Up​

  • Dataverse in the Default environment, so it can store solutions.
  • The System Administrator role for you in that environment.
  • A publisher and a solution: Dewiride, and Career Development Plan.
  • Three environment variables: one for the site and one for each list.
  • The canvas app, a responsive tablet app, with three data sources: the two lists, through the variables, and Office 365 Users.

Prerequisites​

Step 1: Add Dataverse to the Default Environment​

Follow How to Add a Dataverse Database to the Default Power Platform Environment:

SettingValue
EnvironmentYour Default environment
LanguageEnglish (United States)
CurrencyYour organization's. The example tenant is in India, so the panel suggested INR
Deploy sample apps and dataNo

Part 1 explains why the app lives here: it's the one environment with free included Dataverse storage. The app keeps its data in SharePoint, so Dataverse only stores the solution and its parts, and the currency is never used.

Adding Dataverse can't be undone. In the example tenant it was ready in about a minute. The Environment Maker role, which Microsoft assigns automatically in the Default environment, arrived about ten minutes later. Until it did, Power Apps showed We couldn't load your data on Solutions.

Step 2: Make Yourself System Administrator​

Follow How to Make Yourself System Administrator of a Power Platform Environment for the Default environment.

Environment Maker is enough to build the app, but in this series the same admin also exports the solution in Part 12 and installs it in Part 13. With Environment Maker alone, the solution also says one or more commands are unavailable due to your current privileges. System Administrator is full control of the environment, so it's for the admin only. Anyone else who helps build the app needs nothing more than Environment Maker.

Step 3: Create the Publisher and the Solution​

Follow How to Create a Solution and Publisher in Power Apps:

ItemFieldValue
PublisherDisplay nameDewiride
PublisherNameDewiride
PublisherDescriptionPublisher of Dewiride solutions for Microsoft Power Platform.
PublisherPrefixdewiride
PublisherChoice value prefixFilled in for you (38699 here)
SolutionDisplay nameCareer Development Plan
SolutionNameCareerDevelopmentPlan
SolutionVersion0.1.0.0
SolutionSet as your preferred solutionTicked
SolutionDescriptionCareer Development Plan canvas app and its environment variables. Employees respond to the competencies for their job title; managers approve or decline.

Use your own name for the publisher if you're building this for your organization.

Why these values:

  • An own publisher, not the default one. Its prefix goes into every internal name in the solution, such as dewiride_RoleCompetenciesList. Anyone who finds a component knows where it came from.
  • Version 0.1.0.0. Below 1 while the app is being built. Part 12 sets 1.0.0.0 for the first release, the version a buyer installs.
  • The preferred solution. If you create something outside the solution by accident, it lands in this solution instead of the environment's default one.

Step 4: Create the Environment Variables​

Follow How to Create Environment Variables for a SharePoint Site and List in Power Apps. It also creates your SharePoint connection on the way.

Display nameNameParameter typeSiteCurrent valueDescription
Career Development Plan Sitedewiride_CareerDevelopmentPlanSiteSite—https://<your-organization>.sharepoint.com/sites/CareerDevelopmentPlanThe SharePoint site that holds the Career Development Plan lists.
RoleCompetenciesdewiride_RoleCompetenciesListListCareer Development Plan SiteRoleCompetenciesThe SharePoint list of competencies and levels for each job title.
CompetencyResponsesdewiride_CompetencyResponsesListListCareer Development Plan SiteCompetencyResponsesThe SharePoint list of employees' responses and their managers' reviews.

Leave Default Value empty on all three.

Why these values:

  • The list variables are named exactly like the lists. The app's data sources take the variable's display name, so these give the app data sources called RoleCompetencies and CompetencyResponses: the same PascalCase names the lists have, and the names every formula in this series uses.
  • The Name ends in List. Inside the solution, that tells the variables apart from anything else called RoleCompetencies.
  • No default values. A buyer who installs the solution in Part 13 has no site at that address. With no value in the solution, Power Apps asks them for their own site and lists during the install.

To change a list variable later, see Fixed: "We Are Unable to Find the List".

Step 5: Create the Canvas App​

Follow How to Create a Canvas App Inside a Solution in Power Apps:

FieldValue
App nameCareer Development Plan
FormatTablet

Save it once, as the guide shows. Tablet gives the widest canvas, and Microsoft recommends it for apps that should adapt to phone, tablet and web sizes. The next step makes the layout responsive, so the screens can adapt to the window they run in.

Step 6: Change the App's Settings​

In Power Apps Studio, open Settings with the gear at the bottom left.

TabSettingValue
GeneralDescriptionManagers set the competencies and levels for each job title. Employees respond to theirs, and managers approve or decline.
GeneralData row limit500 (the default)
GeneralAutomatically create environment variables when adding data sourcesOff (the default)
DisplayApp layoutResponsive
Updates → RetiredDisable formula-level error managementOff (the default)

On General, type the description. It appears with the app for the people who use it.

The Settings dialog on General with Name Career Development Plan, the description typed in, and the default app icon

Further down the same tab, Data row limit is 500: the most rows Power Apps fetches when a query can't be handed to SharePoint. Every query in this app can be handed over, as Part 5 explains, so the limit is only a safety net. Leave Automatically create environment variables off, because you created the variables yourself, with the names you want.

The General tab scrolled down to Auto save On, Can be used offline Off, and Data row limit 500

On Display, App layout starts as Fixed, which zooms the whole app in or out to fit the screen:

The Display tab with App layout Fixed and the text Your app layout is fixed. It will zoom in and out to fit the screen, Orientation Landscape, Size 16:9 Default, and Lock aspect ratio On

Change it to Responsive. The screens now resize to the window instead, and Lock aspect ratio and Lock orientation switch off:

The Display tab with App layout Responsive outlined in red, the text Your app layout is responsive. It will resize to match the screen, and Orientation, Size, Lock aspect ratio and Lock orientation greyed out and off

Microsoft's documentation still calls this choice turning off Scale to fit; the current Studio shows it as App layout. From Part 4 on, the screens are built from containers that make use of the extra space.

On Updates → Retired, check that Disable formula-level error management is Off. It's off for new apps. Formula-level error management lets the app catch and report errors, such as a failed save, which Part 6 relies on.

The Updates tab on Retired with Disable formula-level error management Off, outlined in red, between Disable explicit column selection and Disable delayed load

Close Settings.

Step 7: Connect the Data​

Office 365 Users gives the app each person's profile, manager and direct reports. Select Add data, search for Office 365 Users, select it, and then Connect:

The Office 365 Users connection panel describing access to user profiles, managers and direct reports, with Connect outlined in red

The data source is called Office365Users.

The two lists come next, through the environment variables:

  1. Select Add data, search for SharePoint, select it, and choose your SharePoint connection:

    The Add data list for SharePoint offering Add a connection, and the existing SharePoint connection, outlined in red

  2. Connect to a SharePoint site opens on Recent sites, which lists your actual sites. Don't pick one there. Select the Advanced tab:

    The Connect to a SharePoint site pane on Recent sites, listing the Career Development Plan site, with the Advanced tab outlined in red

  3. Advanced says Connect using an existing environment variable and lists the site variable. Select Career Development Plan Site:

    The Advanced tab of Connect to a SharePoint site saying Connect using an existing environment variable, with Career Development Plan Site outlined in red

  4. Choose a list opens on Lists. Select its Advanced tab too:

    The Choose a list pane on its Lists tab, showing CompetencyResponses, Documents and RoleCompetencies, with the Advanced tab outlined in red

  5. Tick RoleCompetencies and CompetencyResponses, the two list variables, and select Connect:

    The Advanced tab of Choose a list with the RoleCompetencies and CompetencyResponses variables ticked, and Connect outlined in red

Choosing a site on Recent sites would tie the app to this one site's address. Going through Advanced ties it to the variables instead, so the installer in Part 13 can point the app at their own site without opening it.

Open the Data pane to see all three data sources:

The Data pane listing Office365Users, RoleCompetencies and CompetencyResponses, each with its connection, and a notification that the data source CompetencyResponses was added to the app

Studio also attaches a message to each data source, read out by screen readers but not shown on screen: A Power Apps per user plan, Power Apps per app plan or Power Apps pay-as-you-go plan will be required during playback for apps with this connector. There's no premium icon next to these data sources. SharePoint and Office 365 Users are standard connectors, and Step 8 shows what Power Apps itself decides about the app's license. Part 7 confirms it by running the app as a user who has only Microsoft 365 (Fixed: "A Power Apps Per User Plan … Will Be Required During Playback").

Select Save.

Step 8: Check the Solution and the App's License​

Back in the solution, All shows four objects: the canvas app and the three environment variables.

The Career Development Plan solution with All (4): the Career Development Plan canvas app and the Career Development Plan Site, CompetencyResponses and RoleCompetencies environment variables, with Apps (1) and Environment variables (3) in the Objects pane

There are no connection references, and that's expected. Microsoft documents that canvas apps use connection references only for connections that are shared implicitly, and SharePoint and Office 365 Users aren't: each person signs in with their own account. The first time someone opens the app, Power Apps asks them to allow it to use their own connections. Part 7 shows that.

To see the app's license, go to Apps in Power Apps, select the app, and open Details:

The app's Details page in Power Apps showing the owner, created and modified dates, the web link, a blurred QR code, the App ID, and License designation Standard, outlined in red

License designation is Standard: the app uses only standard connectors. Anyone with a Power Apps for Office 365 plan can run it, and that plan comes with Microsoft 365 plans such as E5.

Common Mistakes​

MistakeWhat happensDo this instead
Naming the list variables RoleCompetencies ListThe data sources become 'RoleCompetencies List'Name them exactly like the lists
Choosing the site on Recent sitesThe app ignores the environment variablesUse the Advanced tabs
Filling in Default ValueYour site travels in the solution; installers aren't askedLeave it empty
Creating the app from AppsIt isn't in the solutionCreate it from the solution
Leaving App layout on FixedThe app zooms instead of using the spaceSet it to Responsive

Troubleshooting​

SymptomLikely causeFix
Solutions says We couldn't load your dataYour Environment Maker role hasn't arrivedFixed: "We Couldn't Load Your Data"
A yellow bar says commands are unavailableYou're Environment Maker, not System AdministratorStep 2
New connection asks to discard your changesYou typed before creating the connectionFixed: "Are You Sure You Want to Discard Changes?"
The Advanced tab lists no variablesThe variables aren't in this environment, or the app isn't in the solutionCreate the variables (Step 4) and open the app from the solution
A data source has the wrong nameIt was added through a variable with a different display nameRename the variable, remove the data source, and add it again

FAQ​

Why not let Studio create the environment variables automatically?​

Studio can, with Automatically create environment variables when adding data sources. Creating them yourself gives you the names you choose, the descriptions, and no surprises in the data source names.

Why are there no connection references in the solution?​

Because SharePoint and Office 365 Users connect as the person using the app. Microsoft documents that canvas apps use connection references only for connections shared implicitly. Each user's own connection is created when they first open the app.

Why does Studio say a per user plan will be required?​

It attaches that message to these data sources, but the app's License designation is Standard, and that's what decides who can run it. Part 7 runs the app as a demo user who has only a Microsoft 365 license.

Can I change the app layout back later?​

Yes, under Settings → Display. The screens in this series are built for Responsive, so they'd need rework for Fixed.

What's in the solution so far?​

The canvas app and three environment variables. The SharePoint site and lists aren't in it: they live in SharePoint, and Part 11 builds a setup flow that creates them for buyers.

Conclusion​

The Default environment now has Dataverse, and you're its System Administrator. The Career Development Plan solution, from your own publisher, holds:

  • a site variable and two list variables, named like the lists;
  • a responsive tablet canvas app, with formula-level error management on;
  • three data sources in the app: Office365Users, RoleCompetencies and CompetencyResponses, the lists coming through the variables.

The app's license designation is Standard.

← Previous: Part 2: Create the SharePoint Site and Lists

Next → Part 4: Build the Home Screen. You'll turn on modern controls and a theme, write the app's named formulas for the signed-in person, their manager and their direct reports, and build the first screen.

Additional Resources​

Stay Updated

Subscribe to our newsletter for the latest tutorials, tech insights, and developer news.

By subscribing, you agree to our privacy policy. Unsubscribe at any time.