Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierOffice365

Restore deleted Flows as an Admin

As an admin, you will only know too well, that if a user deletes a flow, you will need to raise a call with Microsoft to restore that flow to Power Automate. Until May 2022 that is, when the Restore-AdminFlow cmdlet was released.

There are native actions in Power Automate for adminstering flows but there is no current timescales for releasing an action to restore flows directly. If you were wondering if it was possible to restore flows from Power Automate or Power Apps using the Platform, then I have a solution for you – Azure Runbooks. I have a blog post showing you how I built a Runbook to change the sharing options of SharePoint using Power Automate.

It’s worth noting at this point, that the Restore-AdminFlow cmdlet can only restore non solution aware flows!

Deleting your flows

Accidentally or intentionally, if you delete flows from Power Automate, you will not be able to restore them. You now have up to 28 days to action a restore using PowerShell.

Deleting a flow

In order to restore a flow you must either know the FlowName, i.e. the GUID or the DisplayName, i.e. the friendly name you have given your flow. My demonstration below will return both by determining the flows that have been deleted on a specific enviroment and will use the GUID to restore them.

Using PowerShell to restore a flow

You will first need to install the PowerShell support for PowerApps, available in the guide here. You will also need to be an environment admin for the environment that you wish to restore flows. This is not for end users to restore their own flows but for your IT department, who could adopt this solution to allow self service as I will demonstrate.

I have created two basic PowerShell scripts. The first of which will determine an array of flows that have been deleted in the past 28 days. This is achieved by comparing two tables of data from the Get-AdminFlow CmdLet and outputting either a JSON array for an automated RunBook and Power Automate integration or as a comma seperated string of FlowNames (the flow GUID). The second script will accept a comma seperated list of FlowNames (i.e. GUIDs) and restore each of those flows using Restore-AdminFlow CmdLet. Restored flows will be disabled by default.

#DamoBird365
#PowerShell script to demo how to retrieve an array of deleted flows from a default environment
#Official Docs https://docs.microsoft.com/en-us/powershell/module/microsoft.powerapps.administration.powershell
#www.DamoBird365.com 
#www.youtube.com/c/DamoBird365

param (
    [string]$EnvironmentName = "Default-rg70379a-th7f-45c9-b7d4-hn207c7ca554"
)

#Credentials if using RunBook
#$myCredential = Get-AutomationPSCredential -Name 'PPEnvironmentAdmin' 
#$userName = $myCredential.UserName
#$securePassword = $myCredential.Password
#$password = $myCredential.GetNetworkCredential().Password

#Sign In To PowerApps PowerShell
Add-PowerAppsAccount # -Username $userName -Password $securePassword #If using RunBook

#Get ALL Flows (excluding deleted)
$NonDeletedFlows = Get-AdminFlow -EnvironmentName $EnvironmentName

#Get ALL Flows (including deleted)
$AllFlowsIncDeleted = Get-AdminFlow -EnvironmentName $EnvironmentName -IncludeDeleted $true

#Compare non with all to get deleted
$DeletedFlows = Compare-Object -ReferenceObject $NonDeletedFlows -DifferenceObject $AllFlowsIncDeleted -Property FlowName -PassThru

#Format Result as JSON
$DeletedFlowsJSON = $DeletedFlows | Select-Object -Property FlowName, DisplayName | ConvertTo-Json

Write-Output ($DeletedFlowsJSON)

#If you want a comma seperated string of FlowNames for Testing in PowerShell
$combined = $DeletedFlows | ForEach-Object { $_.FlowName }
$result = $combined -join ','
Write-Output ("")
Write-Output ($result)
#DamoBird365
#PowerShell script to demo how to restore deleted flows from a default environment
#Official Docs https://docs.microsoft.com/en-us/powershell/module/microsoft.powerapps.administration.powershell
#www.DamoBird365.com 
#www.youtube.com/c/DamoBird365

param (
    [string]$FlowsToRestoreString = "59d1cdd1-542e-4c13-8a59-b729221ebef5,7cf92a9d-c345-456b-9123-ce83291ab4b0",
	[string]$EnvironmentName = "Default-rg70379a-th7f-45c9-b7d4-hn207c7ca554"
	
)

#Credentials if using RunBook
#$myCredential = Get-AutomationPSCredential -Name 'PPEnvironmentAdmin' 
#$userName = $myCredential.UserName
#$securePassword = $myCredential.Password
#$password = $myCredential.GetNetworkCredential().Password

#Sign In To PowerApps PowerShell
Add-PowerAppsAccount # -Username $userName -Password $securePassword #If using RunBook

#Split string into an array
$FlowsToRestore = $FlowsToRestoreString.split(",");

#For each FlowName in the array, restore the flow 
$FlowsRestored = foreach ($Flow in $FlowsToRestore)  { Restore-AdminFlow -EnvironmentName $EnvironmentName -FlowName $Flow; Start-Sleep -Seconds 1 }

Write-Output ($FlowsRestored)

I demo how to use these scripts in my video. Note that I have commented out the credentials as used by the RunBook which is perfectly fine if all you want to do is run the PowerShell locally to restore flows ad-hoc.

RunBook Automation

For my Power Automate and subsequent Power App solution, I built two Azure RunBooks using the above scripts. One is appropriately called GetDeletedFlows and will return a JSON Array of deleted flows, the second RestoreFlows, will restore those deleted flows as determined by an input of FlowName GUIDs.

Azure RunBook to restore deleted flows

I have configured Credentials within my Automation Account so that I can call these from the RunBook. I have also installed the PowerApps admin module which is a requirement of running these PowerShell scripts online.

PowerApps Admin module

Restore Flows via Power Automate

To restore flows via Power Automate, you need to use the Premium action Create Job and Get Job for Azure Automation. The RunBook accepts a default environment which you can retrieve from the URL of your Maker Portal and you need to make sure you select “Wait for Job” under advanced. Get Job will then retrieve the JSON Array of deleted flows and it’s with this data that I have simply converted the FlowName GUID’s into an array. You could of course filter this array by Display Name at this point if required and only restore select flows.

With the FlowName (GUIDs) as an Array, we can simply join() them to form a comma seperated list of GUIDs and this can be passed back to the second RunBook to restore those flows. The second RunBook will accept both the default environment and of course the comma seperated list of flows to restore.

View Deleted Flows and Restore via Power Apps

Using the same actions above we can simply take the JSON array output from an equivalent flow called directly from PowerApps and convert to a collection. This can then be displayed within a PowerApp as a Gallery. From the Gallery we could in theory allow multiple selections and restore multiple flows, but for the purpose of my demo I have a flow that will restore a single flow based on the current item being selected. To restore multiple flows, all we need to do is pass a comma seperated list of FlowName GUIDs.

The first Flow triggered from the app will return the JSON array as an output back to the app. As there is no native way to convert a JSON array to a collection, I have used the technique as described in the following post on the Microsoft Forum.

Flow Triggered from PowerApps to get an array of deleted flows

The second flow is triggered by selecting an item on the gallery and the FlowName GUID of the current item is sent to the flow as input in order to pass this to the RunBook.

Flow accepts a GUID in order to restore a deleted flow

The app in terms of appearance is rather basic and includes a Gallery where the items are based on the collection retrieved from the first Power Automate Flow. I trigger this on a manual button press but it could be onvisible of the current screen. The restoration of flows is triggered by selecting a current item and upon completion, I remove the current item from the collection and then refresh the data source. The restored flow should no longer be in the returned data source as the flow has now been restored. Note that it can take up to 30 seconds for the whole process to complete.

Power App interface to restore deleted flows

The post Restore deleted Flows as an Admin first appeared on DamoBird365.

How to remove all items from a collection in PowerApps

This Power Apps tutorial will walk you through, how to remove all items from a collection in PowerApps. We will also see several examples of how to remove one or more columns or items from the Power Apps collection within apps.

I recently received a request while working in a canvas app to remove an item(s) from the Power Apps collection and display the remaining items. As a result, I conducted extensive research and created this tutorial on how to remove column(s) from the Power Apps collection.

It will also be discussed how to remove items from the Power Apps collection, which includes the following items:

  • Remove all items from a Power Apps collection
  • How to remove all except one column from a collection in Power Apps
  • Remove a column from a collection in Power Apps
  • How to remove multiple columns from a Power Apps collection
  • Power Apps remove a row from a collection
  • How to remove duplicates from a Power Apps collection

Power Apps collection Remove() function

First, we will discuss what a Remove function is and how to use this function to remove items, rows, and columns from the collection as well.

In Power Apps, there is an inbuilt function named Remove() that removes a specific record or multiple record(s) from the data source.

The syntax for the Power Apps remove function is:

Remove(Collection, items,...)

Remove all items from a collection Powerapps

Similarly, in this section, we will see how to remove all items from the Power Apps collection. That means we can remove all the collection items via a button click.

To implement this need, we will create a collection on the button’s OnSelect property by using the below expression. So that, when the button is clicked a collection will create.

OnSelect = Collect(ColCapital,{Country: "USA", Captial: "WASHINGTON"}, {Country: "UNITED KINGDOM", Captial: "LONDON"}, {Country: "VIETNAM", Captial: "HANOI"}, {Country: "THAILAND", Captial: "BANGKOK"}, {Country: "SPAIN", Captial: "MADRID"}, {Country: "RUSSIA", Captial: "MOSCOW"}, {Country: "UKRAINE", Captial: "KIEV"} )

Where,

  1. ColCapital is the name of the new collection.
  2. Country and Captial are the names of the collection’s columns.

Next, add a vertical gallery to display the collected data and connect that vertical gallery to the collection i.e., ColCapial. Once the button is clicked the items will be visible in the vertical gallery.

Power Apps removes all from collection
Power Apps removes all from collection
  • Next, to remove all items from the collection, add another button control to the screen and make sure to place the button outside of the gallery.
  • Set the text property as Clear All.
  • Insert the below expression on the button’s OnSelect property.
OnSelect = Clear(ColCapital)

Where ColCapital is the name of an existing collection that we previously created.

Power Apps collection remove all
Power Apps collection remove all

Now preview the app and we can see all the items will be removed from the collection once the button is clicked.

PowerApps collection remove all
PowerApps collection remove all

This is how to remove all items from a Power Apps collection.

Read Power Apps collection filter

How to remove all except one column from a Power Apps collection

In this section, we’ll look at how to remove all columns from the Power Apps collection except one. That means there is a collection with multiple columns, and we will remove all but one of them.

To meet this requirement, the following steps are:

  • On the Power Apps screen, add a button control and set the Text as
  • Insert the below expression on the button’s OnSelect property to create the collection when the button will click.
OnSelect = Collect(CollProduct, {Product: "Laptop", Manufacture: "Apple", Quantity: 252}, {Product: "Mouse", Manufacture: "Dell", Quantity: 115}, {Product: "Tablet", Manufacture: "Samsung", Quantity: 78}, {Product: "Desktop", Manufacture: "Lenovo", Quantity: 110}, {Product: "Mobile", Manufacture: "Apple", Quantity: 35});

Where,

  1. CollProduct is the name of the new collection name.
  2. Product, Manufacture, and Quantity are the name of the collection’s columns
Power Apps collection remove all except one column
Power Apps collection remove all except one column
  • Initially, it will not display the collected data. For this, click on the ‘Create Collection’ button while clicking on the Alt key. Now, it will display the collected data within the Power Apps data table control.
PowerApps collection remove all except one column
PowerApps collection remove all except one column
  • Similarly, add another button control to the screen.
  • Set the text as “Show one Column“.
  • Insert the below expression on the OnSelect property.
OnSelect = ClearCollect(CollProductOne, ShowColumns(CollProduct, "Manufacture"))

Where CollProductOne is the name of a new collection, CollProduct is the name of the existing collection, and “Manufacture” is the name of the existing collection’s column to keep in the new collection.

How to remove all except one column in PowerApps collection
How to remove all except one column in PowerApps collection
  • Similarly, add another data table control to display the collected data.
  • Set the Items’ property as CollProductOne.
  • Click on the button control while clicking on the Alt key. We can see the collected data will come with a single column.
PowerApps collection remove all column except one
PowerApps collection remove all column except one

This is how to remove all columns except one within the Power Apps collection.

Read Power Apps Create Collection Using Excel

How to remove one column from a collection in Power Apps

In this section, we will see how to remove one specific column from the Power Apps collection and display the rest columns.

Let’s take the above example of the Power Apps collection i.e., CollProduct and the required steps are:

  • On that Power Apps screen, add a button control.
  • Set the text as “Remove one Column“.
  • Insert the following expression on the button’s OnSelect property.
OnSelect = ClearCollect(CollProductRemove, DropColumns(CollProduct, "Quantity"))

As per the above expression, the new collection i.e., CollProductRemove will remove the Quantity column and will display the rest two columns.

How to remove one column from Power Apps collection
How to remove one column from Power Apps collection
  • Next, add a Power Apps data table to the screen and set the Items as CollProductRemove. Then click on the button and it will display the collected data within the data table shown below:
Power Apps collection remove one column
Power Apps collection remove one column

This is how to remove one specific column from the Power Apps collection.

Remove more columns from a Power Apps collection

Similarly, here we will see how to remove more columns from a Power Apps collection. let’s take the above example to implement this requirement. The required steps are:

  • Insert the below expression on the button’s OnSelect property.
OnSelect = ClearCollect(CollRemove, DropColumns(CollProduct, "Quantity", "Product"))

Where,

  1. CollRemove is the name of the collection.
  2. CollProduct is the name of the existing collection.
  3. “Quantity” and “Product” is the name of the columns that will remove from the collection.
How to remove more columns from PowerApps collection
How to remove more columns from PowerApps collection
  • Add a data table control and set the Items as CollRemove to display the collected data. Once the button is clicked the collected data will display on the data table shown below:
Power Apps collection remove more columns
Power Apps collection remove more columns

This is how to remove more columns from a Power Apps collection.

Read Power Apps Create Collection Using SharePoint List

How to remove row from a collection in Power Apps

We’ll see how to remove a specific row from the Power Apps collection in this section. That means we have a collection of Power Apps with some columns. Now, we’ll use the existing collection to create another collection that will remove the specified row and display the remaining rows.

For this, the required steps are:

  • On the Power Apps screen, we have built a collection on the button’s OnSelect property. Also, display the collected data within a Power Apps Data table shown below:
OnSelect = Collect(CollProduct, {ProductNo: 1012, Product: "Laptop", Manufacture: "Apple", Quantity: 252}, {ProductNo: 1022,Product: "Mouse", Manufacture: "Dell", Quantity: 115}, {ProductNo: 1032, Product: "Tablet", Manufacture: "Samsung", Quantity: 78}, {ProductNo: 1042, Product: "Desktop", Manufacture: "Lenovo", Quantity: 110}, {ProductNo: 1052, Product: "Mobile", Manufacture: "Apple", Quantity: 35});
Power Apps removes row from collection
Power Apps removes row from collection
  • Suppose, we want to remove the column whose ProductNo is 1032 from the collection. For this, insert another button control to the screen.
  • Insert the below expression on the button’s OnSelect property to remove the specific row.
OnSelect = ClearCollect(CollRemove, CollProduct); Remove(CollRemove, LookUp(CollRemove, ProductNo = 1032 ));

Where,

  1. CollRemove is the name of the new collection.
  2. CollProduct is the name of the existing collection.
  3. ProductNo is the name of the collection’s column.
  • Similarly, add another data table to display the newly collected data and set the Items as CollRemove.
    Once we click on the button, we can see the collected data within the Power Apps data table.
Power Apps collection remove specific row
Power Apps collection remove specific row

This is how to remove a specific row from the Power Apps collection.

Read Power Apps Timer Control Examples

Remove duplicates in collection in power apps

In this section, we’ll look at how to remove duplicate values from the Power Apps collection. Assume we have a collection called “BookCollection” with columns like “Name” and “Author,” as well as the following repeated items:

Power Apps collection remove duplicates
Power Apps collection remove duplicates

But, as per the requirement, we want to remove the duplicate items from the above collection and only display the unique values.

To meet the requirement, add a button control to the screen. Insert the below expression on the button’s OnSelect property.

OnSelect = ClearCollect(CollUnique, Distinct(BookCollection, Name))

Where CollUnique is the name of the new collection, BookCollection is the name of the existing collection, and Name is the column that provides the distinct operation. That means we will remove the duplicates from the Name column.

PowerApps collection remove duplicates
PowerApps collection remove duplicates

Next, add a data table to display the distinct values. Set the Items as CollUnique. We can see the data table will display only unique values.

PowerApps collection show unique
PowerApps collection shows unique

This is how to display the unique values within the Power Apps collection.

Conclusion

From this Power Apps tutorial, we learned all about how to remove column(s), and specific items from the Power Apps Collection. Also, we covered the following things based on different situations.

  • Power Apps collection remove item
  • Power Apps collection remove all
  • Power Apps collection remove all except one column
  • Power Apps collection remove one column
  • Power Apps collection remove more columns
  • Power Apps collection remove a row
  • PowerApps collection removes duplicates

You may also like the following Power Apps tutorials:

Dataverse Pie Charts in Canvas app

So today I got a question on the PowerApps community on how to display a Pie chart based on DataVerse tables.

So the Scenario is as below, Locations Table and Visits where location is a lookup and on the pie chart we need to display the number of Visits per Location, I thought initially this should be easy the same as it should be on model driven app, so added the pie chart on on the Items I thought it would be as easy as linking it to visits and use the location column in the series but this did not work as expected as the Lookup (Location) was not showing up so I ended up by doing the solution described below, so this is the steps to create the data and do the pie chart!

Let’s Go!

1. I have created a Table called Location Primary column Name is Location Name

2. Visits Table where location is a lookup

 To be able to get the pie chart working I had to do a Join using Add Columns , then Group BY , Then Add Columns again to get the row counts, this is the final expression:

AddColumns(GroupBy(ShowColumns(AddColumns(Visits,"LocationName",LookUp(Locations,'Location Name'=Visits[@Location].'Location Name').'Location Name'),"LocationName"),"LocationName","myGroup"),"count",CountRows(myGroup))

Let me explain part by part the above Expression:

No. 1 the Join: So We join the table visits with the table Locations and show the new Column in the Location Name

ShowColumns(AddColumns(Visits,"LocationName",LookUp(Locations,'Location Name'=Visits[@Location].'Location Name').'Location Name'),"LocationName")

 No. 2 Add Grouping by Location and the location group name is myGrouping

GroupBy(ShowColumns(AddColumns(Visits,"LocationName",LookUp(Locations,'Location Name'=Visits[@Location].'Location Name').'Location Name'),"LocationName"),"LocationName","myGroup")

No. 3 Then add another column to count the grouping

AddColumns(GroupBy(ShowColumns(AddColumns(Visits,"LocationName",LookUp(Locations,'Location Name'=Visits[@Location].'Location Name').'Location Name'),"LocationName"),"LocationName","myGroup"),"count",CountRows(myGroup))

This yield the below collection as below:

Mira_Ghaly_0-1660722857672.png

The Pie Chart looks like below:

Mira_Ghaly_1-1660722973312.png

Hope this is useful!

Reference to Expressions Used to learn more about them:

https://docs.microsoft.com/en-us/power-platform/power-fx/reference/function-table-shaping?WT.mc_id=DX-MVP-5004221

https://docs.microsoft.com/en-us/power-platform/power-fx/reference/function-table-counts?WT.mc_id=DX-MVP-5004221

https://docs.microsoft.com/en-us/power-platform/power-fx/reference/function-groupby?WT.mc_id=DX-MVP-5004221

miraghaly

Mira_Ghaly_0-1660722857672.png

Mira_Ghaly_1-1660722973312.png

Power Apps – 2022 Release Wave 2 Plan

In this blog article I will be pointing out the most important features from my point of view for Power Apps that will be released from October 2022 through March 2023 .

#1 Grid Control – Further Enhancements

Public Preview: October 2022 General Availability: Not Defined

Nested Grids:  Expand a row to see a grid of related records. Multiple rows in the grid can be expanded simultaneously, which is a very nice features and give the drill through capabilities.

Grouping: Organizing data by a specific column for example Category or Date columns.

Aggregation: Select one or more columns and define an aggregation function like Sum, Min or Max

#2 Power BI quick reports in Power Apps

Early Access: August 2022 General Availability: October 2022

Using this feature is actually very handy as you can start a power BI Report from a View in a Model Driven app with just one click and you can start exploring your data

With Visualize this view option on all grid pages, you can:

  • Create a Power BI quick report, starting from a view with just one button-click. The Power BI service generates visuals and a layout intelligently based on the underlying data.
  • Make any necessary modifications to visuals or the filters or the columns (or any combination of all three) using the display name of the columns on the quick report.
  • Save the Power BI report to a workspace of your choice, so you can access it anytime and customize it for your needs

You can start exploring some of these features in Preview by enabling through the settings on your model driven app.

#3 Form Component Control Enhancements

Early Access: August 2022 General Availability: October 2022

This features allows makers to build complex multi form entities in model driven apps without having to navigate away from the main form through the form component control which is now extending the ability to customize the command bar, Business Process flow, header and Tabs, So you have more control on the embedded form like saving it separately outside the context of the main form. An Example if you have an Account and Primary Contact so from within the account form you can control the primary contact form and move the business process, show/hide tabs ,etc.

#4 DataVerse tables integrated inside Power Apps Studio

General Availability: October 2022

This feature will allow you to create, interact with new /existing DataVerse tables directly from withing PowerApps studio and with the introduction of Power FX formulas , it can be easier for non citizen developers to easily create their columns using the Excel Style formulas they kind of used to.

It is very similar to the ability to create new tables directly through power pages

# 5 Connect to external data from Dataverse

Public Preview: October 2022 General Availability: January 2022

This feature allows you to connect to external data sources from and interact with it within DataVerse , these external data sources can be Excel , SQL, One Drive , etc this is what was called Virtual Tables but with these release the setup will be more easier to use by leveraging simple connections to these external data sources.

# 6 Appointment Description Supports Rich Edit

Early Access: August 2022 General Availability: October 2022

Add links, lists, and other rich text in your appointment description with the new rich text editor control. This feature is now automatically enabled for all apps and can be disabled in Power Platform admin console under the environment settings. Previously, the feature was an opt-in setting in the environment.

# 7 View only relevant activities in dropdown

Early Access: August 2022 General Availability: October 2022

In the activities drop down you can now see only the activities defined within the Model Driven App Metadata.

Full Reference:

https://docs.microsoft.com/en-us/power-platform-release-plan/2022wave2/power-apps/?WT.mc_id=DX-MVP-5004221

Release Wave 2 PowerAPPS

miraghaly

Get started with Dataverse Forms

One of the great values of using Dataverse Model-driven apps is the ability to use the out-of-the-box forms. These forms supply the user interface to the tables and data within our app and can be customized to meet requirements without having to learn code or incur technical debt. The out-of-the-box forms can be added and customized as part of a solution and if called for new ones created. In this post, we will walk through adding an existing form to a solution; customizing the form and creating a new form.

There are four types of forms in Dataverse:

  • Main is the default Model-driven app user experience when viewing and editing data. In the sample image below, we see the Main form for the Account table.
Main form
  • Quick Create is a simplified version of the Main form and is used for in-context record creation without having to switch between table forms. In the sample image below, we see the Quick Create form for the Account table supplied in-context while in the Contact table.
Quick Create form
  • Quick View forms are embedded into a Main form and show related read-only information on the record being viewed. In the sample image below, we see the Quick View Account form while in the main Sales table form.
Quick View form
  • Card forms are light-weight forms that are used in views for mobile experiences. In the sample image below, we see the Account Card in a mobile device experience.
Card form

Adding an existing form 

Adding an existing form to an existing table is relatively simple. From your Power Apps solution, expand Tables, select your target table and then click Add existing

Add existing form

Select Forms, select your target form and then click Add

Select existing form

Our existing form is now added to the table forms within our solution. 

Selected form

Update an existing form 

After adding an existing form, you can customize it through the Edit option in the Commands menu. 

Edit existing form

The form opens and you can add Components (UI elements), Table columns (fields), Form libraries (code components) and Business rules (data driven actions). 

Form customizations

Add a column is a simple as clicking the target field and then rearranging it on the form. In the example images below, I am adding the “Account Health” column to the form and then position it as I see fit. 

Add column to form
Updated form

There are quite a few Components worth exploring and adding as needed to your forms. The image below shows the out-of-the-box components. I like to use the 1-column section and 3-column tab to group like content and to split out subject matter on larger forms. For related tables I like to use the Quick view control to display relevant information from the “parent” to the “child” record. 

Components that can be added

Form libraries and Business rules are too complex of a subject to explore in this blog post but are worth learning more about if you have the need. 

Create a new form 

Add a new form is a simple as clicking New form, select your form type and then design as desired. 

New form

When you create a new Main form, it will use the existing Main form for a starting point. In the sample image below, I have created a new Main form, customized to it only show address information. 

Custom form

You can switch between forms by clicking the drop down menu next to the table name. 

Form switcher

As a non-developer I can’t say enough good things about Dataverse Model-driven apps. The platform allows me to focus on understanding business problems and solve for them without having to put the tool in front of the problem. Knowing how to add, customize and create new forms is part of the Model-driven app experience that adds tremendous value with low investment of time and no technical debit. 

Thanks for reading! 

NY 

Dataverse-Forms

nyoung30

Main form

Quick Create form

Quick View form

Card form

Add existing form

Select existing form

Selected form

Edit existing form

Form customizations

Add column to form

Updated form

Components that can be added

New form

Custom form

Form switcher

How to get a Power Apps Developer Plan

If you want to get started with Dataverse but do not have a license available get a Power Apps Developer Plan. The Developer Plan gives you Power Apps, Power Automate and Dataverse for non-production use. Learn more at: https://powerapps.microsoft.com/en-us/developerplan/ 

You have two options for signing up: 

  1. Get started free, use this choice if are you not using Power Apps, Power Automate or Dataverse. 
  1. Existing user? Add a dev environment, use this choice if you are already using Power Apps, Power Automate or Dataverse.  

The setup experience in both cases looks like the images below. Important: a work or school account is needed. 

Click Get started free or Existing user? Add a dev environment

Power Apps Developer Plan signup options

Enter your work or school email address and click Next

Enter your work or school email address and click Next. 

Select your country or region, enter your phone number and click Get started

Select your country or region, enter your phone number and click Get started. 

Click Get Started to confirm the confirmation details. 

Click Get Started to confirm the confirmation details.

You will be prompted to select you country again and then click Accept

You will be prompted to select you country again and then click Accept.

Your new development environment will open in the Power Apps maker experience. The environment will be your full name in plural “Environment”. For example, “Norm Young’s Environment”. You cannot change this name. Outside of dataflows you get all of the standard and premium features

Power Apps maker experience

Not every organization will have access to Dataverse. Using the Power Apps Developer Plan will give you opportunities to discover the feature set and prove the value to your organization prior to buying more licenses. Sign-up today and get developing!

Thanks for reading.

NY 

image-38

nyoung30

Power Apps Developer Plan signup options

Enter your work or school email address and click Next. 

Select your country or region, enter your phone number and click Get started. 

Click Get Started to confirm the confirmation details.

You will be prompted to select you country again and then click Accept.

Power Apps maker experience

Migrate Microsoft Lists to Dataverse for Teams

Despite this blog post’s catchy title there is no magic upgrade button to move Microsoft Lists to Dataverse for Teams. There may be in the future but until then migration translates to rebuild. A list rebuild to Dataverse will most likely be caused by a design requirement that Lists is not suited to, like setting up complex table relationships or custom security configurations in the data. In this post I am redesigning my list to have a more normalized structure. I am using a customized version of the Microsoft Lists Issue Tracker template in this demo and will split the list into multiple tables. The Issue Tacker list structure lends itself to capturing process transactions. The Issue Source column stores the related apps and services that might have issues that need tracking. Moving Issue Source to a related table allows us to add more metadata about the source like person responsible, standardizes data entry and makes for a better user experience by moving away from manual data entry to a lookup experience. In a relational design view Issue Source will have a 1-to-many relationship to the Issue Tracker table. 

To get started with our list migration connect to Microsoft Teams, click More added apps and then select Power Apps

Add Power Apps to Microsoft Teams

Click Start now on the How to create an app for your team screen.

 How to create an app for your team screen

Select your target team and then click Create

Select your target team and then click Create. 

Power Apps will create the Dataverse for Teams database and send you an email when complete. After the provisioning is complete you are prompted to supply an app name in the Power Apps Teams maker experience. Enter an app name and click Save

Enter an app name and Save.

We will create our new tables, Source and Issue Tracker , by clicking on With data on the Start this screen form.

Start this screen With Data

Our Source table has a 1-to-many relationship with the Issue Tracker table, this means we should build Source first. Enter a table name and click Create. Notice that Dataverse tables names are usually named in singular form and then given a plural name within the create table experience.

Create a table experience

We can add columns to our table by clicking the Add column button. I like to add an “ID” column to all of my tables using the Auto number column type with a string prefix. If the Name value changes in the table, I can supply data continuity through the ID column. To create the column, click Add column and set: 

  • Name to “Source ID” 
  • Type to “Auto number” 
  • Autonumber type to “String prefixed number” 
  • Prefix to “SRC”, this can be any value but should reflect the table name in some form 
  • Minimum number of digits to “4”, this value should reflect the max number of entries you expect in this table 
  • Seed value to “1000”, this can be any value and in is usually influenced by a business requirement 
  • Max length to “100”, this value should reflect the max number of entries you expect in this table 
  • Click Create 
  • Source ID column definition
  • Populated Source ID column.

The Source table will include a service owner column. Unlike Microsoft Lists there is no Person column, and we will use the Email column instead. Click Close when complete to save the table changes and return back to Power Apps.  

Owner column using the email column type.

Our next step is to create the Issue Tracker table. 

 Add the following columns shown below: 

Column nameColumn type
Issue IDAuto number with: 
– Autonumber type set to “String prefixed number” 
Prefix set to “ISS” 
Minimum number of digits to “4” 
Seed vale set to 1,000 
Max length to 100 
Folder LocationURL with max length 255 
Issue DescriptionText with max length 1,000 
PriorityChoice with the following choices: Critical, High, Normal, Low 
StatusChoice with the following choices: Blocked, In progress, Completed, Duplicate, By design, Won’t fix, New 
Assigned ToEmail with max length 100 
Date ReportedDate with default options 
Due DateDate with default options 
Days OldNumber with default options 
Issue SourceLookup with related table set to Source 

Column creation images are shown below. 

  • Issue ID column using Autonumber`
  • Folder Location column using URL column type
  • Issue Description column using the Text column type
  • Priority column using the Choice column type
  • Date Reported column using the date column type
  • Issue Source column using the Lookup related table column type

Click Close when complete to save the table changes and return back to Power Apps. 

Back in Power Apps, click With data in the Start this screen and select “Issues” to build our starter app. 

Start this screen with data

Our starter app looks good but requires a few modifications to make it work for our design. 

Power Apps starter app

Click EditForm1 and then click Fields. 

Editing the form in our starter app

We will add the Issue Source column to our form by clicking Issue Source and then click Add. Use the Columns and Layout controls to layout the form in your preferred way. 

Add Issue Source column

With very little modification our starter app is simple, clean and looking good. 

Updated starter app

We need to publish the app to Teams for general use. Click Publish to Teams and update the Name, Icon and fill colors as desired. 

App publishing experience in Teams

Our finished app looks like the image below. 

Our final app rendered in Team and looking good!

Microsoft Lists are great, and I use them every day in my professional life. When requirements exceed what Lists are capable of then migrating to Dataverse for Teams is a smart choice. You don’t have to be a developer to take advantage of what is possible with the out-of-the-box Dataverse for Teams functionality. In future posts we will extend the functionality of our app with Power Automate and Power Apps. 

Thanks for reading! 

NY 

Update: Soon after posting this article, Scott McKenzie let me know that: “Dataflows for Dataverse Teams is now available in preview. If you create a new Dataflow utilizing your existing SharePoint List, you have the ability to create the Entity with matching Fields and transfer the data rather than having to build the Entity and Fields from scratch.” If I were doing straightforward List to Dataverse for Teams migrations I would definitely look into Dataflows.

image-33

nyoung30

Add Power Apps to Microsoft Teams

How to create an app for your team screen

Select your target team and then click Create. 

Enter an app name and Save.

Start this screen With Data

Create a table experience

Source ID column definition

Populated Source ID column.

Owner column using the email column type.

Issue ID column using Autonumber`

Folder Location column using URL column type

Issue Description column using the Text column type

Priority column using the Choice column type

Date Reported column using the date column type

Issue Source column using the Lookup related table column type

Start this screen with data

Power Apps starter app

Editing the form in our starter app

Add Issue Source column

Updated starter app

App publishing experience in Teams

Our final app rendered in Team and looking good!

❌
❌