Set up Power Platform Tools in Visual Studio Code | Power Platform CLI

In your Visual Studio Code, you can now set up Power Platform Tools / Power Platform CLI Extension for Visual Studio Code (VS Code).

Here’s VS Marketplace Link for Power Platform Tools – https://marketplace.visualstudio.com/items?itemName=microsoft-IsvExpTools.powerplatform-vscode

Let’s review in this post!

Extensions in Visual Studio Code

Here’s how you can install Power Platform Build Tools in Visual Studio Code

  1. Navigate to Extensions section in Visual Studio Code.

  2. Search for Power Platform Tools

  3. It’ll then start installing –

  4. When you open the installed extension, you’ll be asked to Add Auth Profile.

  5. Clicking on Add Auth Profile will open up the Login dialog.

  6. Once you enter Username and Password and authenticate yourself into the environment, after a few moments, you’ll see the environments show up in Visual Studio Code.

  7. And if you expand on the environments, you’ll see the Solutions in the environment and each of them will let you get some information right away –



Testing Power Platform Tools Extension

Let’s make sure the Power Platform Tools were successfully installed –

  1. Once installed, you can open a new Terminal and type ‘pac


  2. It should show you all the Commands available since you are logged in.

  3. And as you start to use the Commands, they have other options inside the Menus themselves.


  4. Here’s a sample Command I used to see all the Environments

  5. Had Power Platform Tools not been installed or Disabled, you’d see the below error –

Here’s the reference Blog which talks about Power Platform Extension for VS Code – https://powerapps.microsoft.com/en-us/blog/power-platform-extension-for-vs-code/

Here are some Power Automate posts you want to check out –

  1. Select the item based on a key value using Filter Array in Power Automate
  2. Select values from an array using Select action in a Power Automate Flow
  3. Blocking Attachment Extensions in Dynamics 365 CRM
  4. Upgrade Dataverse for Teams Environment to Dataverse Environment
  5. Showing Sandbox or Non Production Apps in Power App mobile app
  6. Create a Power Apps Per User Plan Trial | Dataverse environment
  7. Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
  8. Co-presence in Power Automate | Multiple users working on a Flow
  9. Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
  10. Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
  11. Call a Flow from Canvas Power App and get back response | Power Platform\
  12. FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
  13. Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
  14. Asynchronous HTTP Response from a Flow | Power Automate
  15. Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
  16. Converting JSON to XML and XML to JSON in a Flow | Power Automate

Thank you!

Using Environment Variables in Power Automate and Canvas Apps

Here’s how you can use Environment Variables in your environment in Power Automate and Canvas Apps!

In case you are looking to create Environment Variables, here’s the post: Environment Variables in Power Apps and Power Automate

Power Automate

Here’s how you can use Environment Variables in a Flow –

  1. You can’t use/access Environment Variables in a Flow which is not in a solution –
    Environment Variables are accessible in the Dynamic Content section on the very top of the list. [Since the below Flow is outside a Solution, you can’t see the Environment Variables]

  2. Now, this Flow is within a Solution –

  3. And then you access the Dynamic Content, you can see the Environment Variables.

  4. And when you Run the Flow, the Environment Variable will show the value based on the Data Type set for the variable at appropriate places –

Canvas Apps

Unlike Power Automate Flow, Environment Variables in Canvas Apps can be utilized even if the Canvas App was created outside a solution –

  1. In a Canvas App, click to Add Data Source.

  2. On the Environment Variable Definitions/Values is added to the Canvas App as Data Sources, let’s take a simple Text control to read the Value from the Environment Variable used in the above Flow example –
    I’ll use Lookup() function in Power Automate to fetch the value of the Environment Variable by it’s Schema Name
    Even if you only added Environment Variable Values table as Data Source, the Environment Variable Definition too will be added once you use the Lookup() function to fetch the value.

Hope this was useful!

Here are some Power Automate posts you want to check out –

  1. Environment Variables in Power Apps and Power Automate
  2. Select the item based on a key value using Filter Array in Power Automate
  3. Select values from an array using Select action in a Power Automate Flow
  4. Blocking Attachment Extensions in Dynamics 365 CRM
  5. Upgrade Dataverse for Teams Environment to Dataverse Environment
  6. Showing Sandbox or Non Production Apps in Power App mobile app
  7. Create a Power Apps Per User Plan Trial | Dataverse environment
  8. Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
  9. Co-presence in Power Automate | Multiple users working on a Flow
  10. Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
  11. Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
  12. Call a Flow from Canvas Power App and get back response | Power Platform\
  13. FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
  14. Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
  15. Asynchronous HTTP Response from a Flow | Power Automate
  16. Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
  17. Converting JSON to XML and XML to JSON in a Flow | Power Automate

Thank you!

Environment Variables in Power Apps and Power Automate

Here’s how you can create Environment Variables in Power Apps or Power Automate portal.

Creating Environment Variable in a Solution

First, create Solution to store your environment variable.

  1. In this example, I’m using Power Apps (https://make.powerapps.com/) to create a n Environment Variable.
    In the Solution, I can click on New and then look for an Environment variable.

  2. Below are the types of Environment variables which you can create –


  3. For example, I’m storing the current Org’s ID in an Environment Variable which I want to re-use in my Flow for whatever purpose (Just an example 🙂).
    I’ve given it a suitable name and stored the current value as well.

  4. And my Environment Variable will be created in a Solution in either Power Apps or Power Automate.

  5. Now that your Environment variable is ready, you can feel free to use it in Power Automate and Power Apps. Environment variables can be used in Flows and Canvas Apps which are in a solution.
    Here’s how you can use Environment Variables in Canvas Apps and Flow – Using Environment Variables in Power Automate and Canvas Apps

You can look at Microsoft’s Documentation on Environment Variables for more info – https://learn.microsoft.com/en-us/power-apps/maker/data-platform/environmentvariables?WT.mc_id=DX-MVP-5003911

Hope this was useful!

Here are some Power Automate posts you want to check out –

  1. Select the item based on a key value using Filter Array in Power Automate
  2. Select values from an array using Select action in a Power Automate Flow
  3. Blocking Attachment Extensions in Dynamics 365 CRM
  4. Upgrade Dataverse for Teams Environment to Dataverse Environment
  5. Showing Sandbox or Non Production Apps in Power App mobile app
  6. Create a Power Apps Per User Plan Trial | Dataverse environment
  7. Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
  8. Co-presence in Power Automate | Multiple users working on a Flow
  9. Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
  10. Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
  11. Call a Flow from Canvas Power App and get back response | Power Platform\
  12. FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
  13. Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
  14. Asynchronous HTTP Response from a Flow | Power Automate
  15. Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
  16. Converting JSON to XML and XML to JSON in a Flow | Power Automate

Thank you!

Power Platform URLs

If you are having a hard-time keeping track of what URLs to enter / bookmark for everything that you do in Power Platform / Dynamics 365, here’s a post to help you pick and store URLs from the get go

I already have a post where you can find all the Admin Center URLs- Admin Center URLs under M365 – Power Platform, Teams, SharePoint, Power BI

Power Automate

Power Automate URL is being changed from https://flow.microsoft.com/ to https://make.powerautomate.com/ to line up consistently with Power Apps maker environment –
Here’s what you’ll see when you are in Power Automate (you can also see the notification on the top in the screenshot below regarding this change) –

Power Apps

In order to see all the Canvas / Model-Driven Apps, you can navigate to this URL: https://make.powerapps.com/
You’ll be landed here –

Power BI

Once you have the appropriate Power BI license assigned to your user, you can visit Power BI Home using this URL: https://app.powerbi.com/home

Hope this was useful!

Here are some Power Automate posts you want to check out –

  1. Blocking Attachment Extensions in Dynamics 365 CRM
  2. Upgrade Dataverse for Teams Environment to Dataverse Environment
  3. Showing Sandbox or Non Production Apps in Power App mobile app
  4. Create a Power Apps Per User Plan Trial | Dataverse environment
  5. Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
  6. Co-presence in Power Automate | Multiple users working on a Flow
  7. Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
  8. Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
  9. Call a Flow from Canvas Power App and get back response | Power Platform\
  10. FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
  11. Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
  12. Asynchronous HTTP Response from a Flow | Power Automate
  13. Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
  14. Converting JSON to XML and XML to JSON in a Flow | Power Automate

Thank you!

Show only configured Activities Related records section | Power Platform Admin Center

Here’s a setting which I personally don’t think would matter much and I’ll get to why I think like that.

Show Activities only configured in the App

Let’s navigate to the Settings for the organization in the Power Platform Admin Center (https://admin.powerplatform.microsoft.com) –

  1. Click on Settings once you are in the environment which you want to configure this feature.

  2. In Settings, go to Features.

  3. In Features, you can scroll to the bottom and see this option.

  4. What this Turned Off feature does is show all the Activities in the (example: Sales Hub) App -> Related section of the records’ + New Activity button


    And the + New Activity button in the Activities Associated View will show all the Activities by default regardless if they are configured in the App or not.

  5. However, the gripe is that this doesn’t reflect in the Timeline control by default. You have to change the options in the Timeline control separately. (And the Timeline is the most common way you would create an Activity, right?)

  6. Now, let’s turn this setting On and see the effect.

Turned On

Now, when this is turned on, the Activities’ Associated View’s + New Activity button will only show the Activities which are included in the App itself and not all.

I wished this was also reflected easily on the Timeline control and in the Main Activity View as well from it’s own entity in the SiteMap. Perhaps it could be work in progress. I’ll clarify once I know more! 😊

Hope this helps!

Here are some Power Automate posts you want to check out –

  1. Showing Sandbox or Non Production Apps in Power App mobile app
  2. Create a Power Apps Per User Plan Trial | Dataverse environment
  3. Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
  4. Co-presence in Power Automate | Multiple users working on a Flow
  5. Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
  6. Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
  7. Call a Flow from Canvas Power App and get back response | Power Platform\
  8. FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
  9. Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
  10. Asynchronous HTTP Response from a Flow | Power Automate
  11. Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
  12. Converting JSON to XML and XML to JSON in a Flow | Power Automate

Thank you!

Comments in Power Platform [Preview] | Power Automate example

Here’s a new feature across Power Platform stack i.e. Power Apps / Power Virtual Agents and Power Automate

Comments

Let’s consider an example of a Flow / Power Automate for the Comments

  1. In a Cloud Flow, now you’ll see a Comments (preview) show up.

  2. When you click on it, Comments pane will open up letting you add Comments to the Flow.

  3. And just like in Word, you’ll be able to enter comments for the Flow. These comments are added pertaining to the selected Flow Step or the first Flow Step by default.
    Click on the send button to add the comment.

  4. Now, once a comment is added, a counter/badge of count of comments will appear on the Step the comment is tied to.

  5. As you proceed, multiple users can add their comments to different steps. (Ideally, since I added 2 comments to the second step, both should be highlighted. This could be in preview and in the works). I’ll update this space again as I have more info

  6. Similarly, a thread looks like the one highlighted on the right and if you notice, the Flow Step too will lit up a little to denote which step the comment thread belongs to.
    Also, a comment thread is treated as count of 1.

  7. For each thread, you have the below options per thread/comment.

  8. And if you Resolve a comment/thread, notice that the counter from the Flow Step is discounted/removed and the comment thread is marked with Resolved tag on the top.

    Also, the step it belongs to is highlighted a little and is slightly difficult to identify right away
    Perhaps this behavior could be changed in the future once in GA.


  9. Once a thread is Resolved, it could be Reopened or Deleted as the icons suggest.

Hope this helps!

Here are some Power Automate posts you want to check out –

  1. Showing Sandbox or Non Production Apps in Power App mobile app
  2. Create a Power Apps Per User Plan Trial | Dataverse environment
  3. Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
  4. Co-presence in Power Automate | Multiple users working on a Flow
  5. Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
  6. Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
  7. Call a Flow from Canvas Power App and get back response | Power Platform\
  8. FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
  9. Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
  10. Asynchronous HTTP Response from a Flow | Power Automate
  11. Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
  12. Converting JSON to XML and XML to JSON in a Flow | Power Automate

Thank you!

Performance Insights for Model-Driven Apps | [Preview]

One of the important aspects of ‘User Adoption’ is also ensure that the Model-Driven App you’ve designed for your Org’s Users stays optimized and ensures the users get the best of it.

Let’s see how we can utilize Performance Insights to help us optimize our Model-Driven App!

Performance (Preview)

Performance Insights is in Preview and here’s how you can access the same.

  1. Go to https://make.powerapps.com/

  2. Now, in your Apps below, select the Model-Driven App you want to view Performance metrics of.


  3. Now, once you open, you’ll see the metrics as below


    Let’s understand how you can read these metrics and take actionable actions on the same.


Understanding the Insights

These insights are categorized based on severity. Let’s see which needs your attention the most –

  1. The Insights can be narrowed based on the timeframe of 24 hours, Unfortunately, I have only 1 Date to show in my case.


  2. I recommend paying special attention to the ones with Warning on them


  3. Now, looking at the first one for example is PluginTraceLog which I left ON while I was working on Plugins on this environment in the App.
    So, if I select the first one


    The right hand pane will detail out what the issue is and what Area to focus on.



  4. Also, if you look at the How to improve part, it’ll point you to the Microsoft Docs for the suggested workaround/action.


    It’ll take you to the Microsoft Docs section of the particular issue in question –


  5. In case you have a new environment and didn’t work inside the App significantly for a particular time frame, you’ll see this message.



    Here’s the complete Microsoft Docs article on the detailed Performance Insights for Model-Driven Apps –
    https://docs.microsoft.com/en-us/powerapps/maker/common/performance-insights-overview?WT.mc_id=DX-MVP-5003911

Here are some more Model-Driven and Canvas Power Apps posts you might want to check out –

  1. HTML Text control in Canvas Power Apps | Power Platform
  2. Disable Recent Records from Dynamics 365 Lookup Control | Model-Driven Apps [Quick Tip]
  3. Advanced Lookup in Model-Driven Apps | Power Platform
  4. New App Designer for Model-Driven Apps | Power Platform
  5. Rich Text Control for Canvas and Model-Driven App | Quick Tip
  6. Form Access Checker in new Power Apps Form Designer | Model-Driven Apps in Dynamics 365
  7. How to add Rating Values to Rating Models in D365 Field Service and PSA
  8. Log Canvas Power App telemetry data in Azure Application Insights | Power Apps
  9. Transition effect on Gallery Items when hovered over in a Canvas Power App | [Quick Tip]
  10. Retrieve Hashtags from Text in a Canvas Power App | Power Platform

Thank you!

There are missing dependencies. Install the following solutions before installing this one: “Active” | Connection References missing in Power Platform Solution

While importing and Unmanaged Solution into another environment, you must’ve come across these error messages like “There are missing dependencies. Install the following solutions before installing this one: “Active”

Now, there are various factors as to why this error is seen. I’ll try to cover one of them. Missing Connection References! Let’s take a look.

So, out of other reasons, one could by that there are some Flow’s Connection References that are not yet added to the Solution when it was exported out.

Error on Import

Let’s say you trying to import this Unmanaged Solution in an environment.

  1. This is your Source Solution which you want to Export and Unmanaged and Import into other environment.

  2. You see the following error on Import.

  3. Now, there are many other reasons why you are getting this error. But, in this case, it’s about missing Connection References from the Source Solution

Adding Connection Reference

In my case, it was missing adding the Connection References in the Source Solution, so here’s what I did –

  1. Go to the Add existing in your source Solution

  2. Look for Connection Reference (preview)

  3. When I add that, I can select what all Connection References are available to add.
    Here, you’ll have to select all those Connection References which you have utilized in your Solution Components.
    To understand more on Connection References, here’s a post by Alex Shlega’s posts on Connection Reference – https://www.itaintboring.com/powerapps/connection-references/

  4. When you click that, it’s added behind the scenes. Now, export the Unmanaged Solution again.



Re-Importing into Source Instance

Now, In your Source Instance, re-import this newest Unmanaged Solution.

  1. Now, importing the 1.0.0.2 version, you’ll see no issues.

  2. And when you click next, you’ll be asked to Create a Connection right away

  3. In this example, I’m supposed to create a CDS (Current Environment) connection. Because that’s what I had selected as a Connection Reference while exporting from the Source Instance.

    Skipping a few intermediate steps. My connection is created as below.

  4. Going back to the Import tab where I was importing the Solution, I’ll just refresh as directed.

  5. Any my Connection is available.

  6. I can just continue to Import as usual and it’ll be imported.

Hope this helps!

Here are some more Power Platform related posts you might want to check out –

  1. Using triggerBody() / triggerOutput() to read CDS trigger metadata attributes in a Flow | Power Automate
  2. Send a Power App Push Notification using Flow to open a record in Canvas App | Power Automate
  3. Count of total CDS records returned in a Canvas Power App connection [Quick Tip]
  4. Call HTTP Request from a Canvas Power App using Flow and get back Response | Power Automate
  5. Implement character length validation in a Canvas Power App | Power Platform
  6. Accept HTTP Requests in a Flow and send Response back | Power Automate
  7. Terminate a Flow with Failed/Cancelled status | Power Automate
  8. Generate Dynamics 365 record link in a Flow using CDS connector | Power Automate
  9. Launch URL on a Data Table Text column selection in a Canvas PowerApp | SharePoint Lists
  10. Get Dynamics 365 field metadata in a Canvas App using DataSourceInfo function | Common Data Service
  11. Call a Dynamics 365 Action from Flow [Bound and Unbound Actions] | Power Automate
  12. Setting Retry Policy for an HTTP request in a Flow | Power Automate

Thank you!!

Variables in Canvas Power Apps | Global and Context

For all newbies, being able to use Variables is one the most curious questions put out immediately. Here’s a simplistic example of using Variables, both Global and Contextual in this post.

headerImg

Global Variable

Global Variables as the name suggest, run through the entire App itself and can be changed and altered when needed.
Global variables can hold boolean, string, number etc.

  1. Let’s say, I have a Text field called GuestNameField
    guestFieldAdded
    guestNameFieldView
  2. Global Variables are created and set by using Set(variable, value) function.Now, on the OnChange event of the GuestNameField above, I’m setting the variable by the formula Set(guestName, GuestNameField.Text). Where, guestName is the field I created on the fly and I’m setting the text from the GuestNameField textbox whenever the Textbox will trigger OnChange Event.
    formulaWritten
  3. And I have a Label called as DisplayValue which will read from the variable and set it’s text.
    readFromVar
  4. Now, when I run the app and type the name, and when I release the focus on the text box, the
    typeName
    And when the focus from the TextBox is released, OnChange of the TextBox will trigger and the Label will display the text written since it’s reading the value from the variable
    appear

Context Variable

Now, a variation to the Context Variable from the Global Variable is that the Context variable have the scope of the only the current screen they are declared in. Navigate function is also a form of Context variable in which case, you can pass values to other screens.

Context variables can hold strings, numbers, records and tables.

  1. Now, in case of Context Variables, you use UpdateContext({variable: value}) in the formula.
    contextVar
  2. And is accessed/read by simply writing the name of the variable directly
    directContextVarName
  3. And it behaves in the same way, you write something and it can be read
    typeName
    And displayed below as seen in the above Global Variable example
    appear

Checking your Variables

In case you’re wondering you’ll lose track of your variables, you can check the File menu and access the Variables section as shown below
menuItem

Global Variables as marked above can be accessed in their own section
globalStored
And if you open any of those, you can see and even navigate to where they are used.
globalUsage

Similarly, for Context Variables are denoted by the Screen names they are in.
contextStored

I tried to summarize this on a high level. You can refer this Microsoft Documentation for details Understand canvas-app variables in Power Apps.

Hope this was easy!

In case you are looking for more post related to Canvas PowerApps, here you go –

  1. Get N:N records in a Canvas Power App using Common Data Service connector | Power Platform
  2. Adding a Canvas PowerApp to Teams
  3. Correctly connect to an Excel file in a Canvas PowerApp
  4. Sending Image from Canvas PowerApps to SharePoint Document Library using Flows

Thank you!

Get N:N records in a Canvas Power App using Common Data Service connector | Power Platform

One of the most common asks when using CDS as Data Source in a Canvas Power Apps is – How do I get the data from N:N entities?

Well, I’m attempting to explain this in the easiest way possible.

Scenario

Let’s assume Account entity has an N:N relationship with Account Plans entity

Account <–N:N–> Account Plans.

And in Dynamics 365, you simply add these records by going into related records and adding them using Add Existing button
addExistingInD365

And now, you want to access this data for a record in a Canvas Power App? Correct? Let’s get going with it.

Enable the Entities involved

In this example, the entities involved are Account and Account Plans

  1. Accessing data for N:N entities require the entities to be enabled for Change Tracking. Let’s check that in CDS
    settingsOfAccount
    changeTrackingEnabled
  2. And also the same thing for Account Plan entity as well
    settingsOfPlans
    changeTrackingEnabled

Reading Data in a Canvas Power App

I’ve kept the presentation of my Canvas Power App very crude, please excuse me for that.

Scenario: Now, let’s say you want to see the N:N data on selection of a record i.e. on selection of Account, you want to see what all Account Plans are added to that Account.

  1. Now, to demonstrate this, I’ve taken 2 galleries i.e. AccountGallery to show list of Accounts
    accountGallery
  2. And probably a list to just display what Account Plans are added (You can have any other control depending on what you want to do with these records). I’ll call the table AccountPlansTable
    accountPlansTable
  3. And my formula to display the N:N records will be –
    AccountGallery.Selected.’Account Plans’
    aboutToSelect
    finalFormula
  4. Now, you’ll need to add what fields should be shown from Account Plans entity to identify the records. Well, obviously, Name field is the most relevant here.
    I’ll click on Edit Fields for the AccountPlansTable
    editFields
  5. And add the name field from that entity
    nameAndAdd
  6. Once this is set, my App is ready to run
    preparedApp

Accessing the N:N records

Let’s run the app and see how we can read these N:N records
Once I click on ABC/1/2&3, I can see the related N:N records in the DataTable below
working
Simple enough!

Here are some more posts you might like –

  1. Create your first PowerApp! Connect to SharePoint Online List
  2. Dynamics 365 Solutions’ New Experience in Power Apps, Solution Checker and more
  3. AutoNumber field in CDS | PowerApps
  4. Sending Image from Canvas PowerApps to SharePoint Document Library using Flows

Hope this helps!!