Environment Assignment settings in Power Platform Admin Center

Environment Assignments and who should be able to create what types of Dynamics 365 CRM / CE / Dataverse environments can now be easily controlled.

You can either let everyone create a certain Type of environment or only enable Admin groups to create environments in Power Platform Admin Center! Let’s see how.

Restricting Users from Creating Environments

You can now restrict which types of Environments are allowed to be created for the type of audience in your tenant –

  1. If you are one of the Global Admins, Power Platform Admins, you have access to the Power Platform Admin Center settings (https://admin.powerplatform.microsoft.com/tenantsettings)
    And you’ll see the below types of Environment Assignments available for you to tweak
    Developer environment
    Production environment
    Trial environment
    Add-on capacity


  2. And in this example, let review and modify the settings for Production types of instances and who should be able to create this environments.
    Every type of assignment will have the below 2 options –
    Everyone
    Only specific admins (Global Admins, Power Platform Service Admins & Delegated Admins)
    Reference Link: https://learn.microsoft.com/en-gb/power-platform/admin/control-environment-creation?WT.mc_id=ppac_inproduct_settings?WT.mc_id=DX-MVP-5003911


  3. Once your preferences are set, just click on Save and the settings will be applied. Let’s see in the next section how this works.

Restriction Imposed

Here’s how a User will be restricted when they try to create the Types of environments when they are not part of the Admin Groups –

  1. Although, every user will get an option to Create using the Create button and select a Type of environment. When a User selects a Type, in this case Production

  2. And when they click Next, and enter further details in order to create the environment, they’ll see this error message.

  3. And to validate, you can look at the Roles in Microsoft 365 Admin Center under Users as to what Roles they have been assigned with.

Hope this helps!

Advertisement

Exchange Online Mailbox License Error | Exception Missing Exchange License

In case you are setting up your M365 and setting up Exchange Online in the process, your Email URL is: https://outlook.office365.com/mail/

But, you see the below error which reads as

err: Microsoft.Exchange.Clients.Owa2.Server.Core.OwaUserHasNoMailboxAndNoLicenseAssignedException


No License Exception

Here’s why you see the Exception.

  1. If you open the User record in the Microsoft 365 Admin Portal, you’ll see that Microsoft Exchange Service is not seen in the list of Services.

  2. Now, let’s procure a trial for Exchange Online or any of the E3 / E5 plans which you plan to purchase based on your requirements. They have Exchange Online services available which will enable your Exchange Online mailbox.
    In this example, I’ll start a trial because I don’t want to buy for Enterprise purposes for the sake of this example.


  3. Now, once I started this trail. And if you see the comparison chart above, you could even opt for other licenses that offer Exchange Online – say, Office 365 E3
    Now, I can see that this license is available for me to assign to the user.


  4. And when I select the above license, I will see the Service available in the list as well.

  5. Save your licensing changes / preferences and let 5-10 mins pass for the services to be applied to the User.
    And once you reload/refresh the Outlook web app, your mailbox will be available or retained (if it was expired on an existing license.)

Hope this helps!

See which form is displayed in Dynamics 365 CRM | [Quick Tip]

At times, it is not clear which form is displayed when looking at a record.

It may seem like Account form is displayed based on what the label says but things could be different.

And you assume it is this form that is being displayed.

But, this is now always the case. So, let me explain!

See Form Name

Here’s how you can see the true form name –

  1. Hover on the tab where Dynamics 365 CRM is opened.
    You’ll see the actual form that is being displayed even if the name under the record Name is shown as “Account”. In this case, it’s the entity name.

  2. Here, the form name displayed is “Account for Interactive Experience”

When does this happen?

  1. This happens if there are no other forms in the App you are using which have been enabled for your Security Role.
    And then there’s no other form left for you to see.

Fallback Form?

  1. The fallback form will take into effect if no other form is enabled for your security role. In my example, the form “Account for Interactive Experience” was in fact enabled for my Security Role and hence, I didn’t see the default “Account” form even though it was ranked higher in the Form Sequence.

Hope this helps!

PSA to PO Upgrade Errors | Resolve by reviewing Upgrade Logs

Since you and your Org are preparing to upgrade from PSA v3 to Project Operations given that you are covered in terms of what licensing you need, the first step is to try upgrading your environments to PO.

This upgrade operations needs to ensure you have clean data in your environment before you could upgrade. Hence, these validations will cause failure in upgrading the PSA on the selected environment.

Let’s see what needs to be done to identify and rectify the failures.

Upgrade Failure

Typically, you’ll see below failure if you are trying to upgrade from PSA to PO in the Power Platform Admin Center –

  1. You’ll see that the installation has failed.

  2. Now you can directly go in Project Service.

Error Logs in Project Service

Now, in Project Service, you can do the below –

  1. You can see the Upgrade Logs and sort the Started field by Descending to make the latest one appear on top.
    You’ll notice a Failure status entry.


  2. When you open it up, it’ll have the details. You’ll see the upgrade entry as shown below. You need to open it.

  3. Once you open this Upgrade Version record as shown above, you’ll need to sort the Steps as shown below to show all the Failure status records first.

  4. Once you open one of the failed ones, you’ll be able to see why the upgrade failed on the Upgrade Step record.


    These error messages are self-explanatory and you should be able to take corrective action by going through them and working to resolve given you have functional knowledge of Dynamics 365 PSA/CRM.
  5. As you resolve the issues as you find them, you should eventually get to upgrading the Project Operations successfully once all data dependent validation issues are resolved.

Hope this helps!

Get the New Teams client for your organization | Teams Admin Center

Here’s how you can enable Users to choose to update to the new Teams if you are a Teams Administrator in M365 Admin Center

So since you are using the current (or old) Teams version,and the option to enable New Teams is not avilable to you, you would see no option to update in this Title Bar of the Teams app itself.

Let’s see how we can enable Teams for the Users organization-wide.

Enable Org-Wide New Teams Update

If you are the M365 Admin / Teams Administrator in your organization, here’s how you can enable the new Teams switch for the users –

  1. Look for Teams in the Admin Centers area.

  2. Once in Teams Admin Center, you can look for Teams Update Policy section.

  3. Given that you don’t want to create a new policy but want to apply this setting Org-wide, you can open the Global policy which is already present by default.
    Once you open this policy, you’ll find the Use new Teams client option and choose Users can choose option.

  4. Once sure, click on Apply. And you’ll be asked for Confirm.



  5. Once you are confirmed, that’s it.

New Teams

Now, here’s how you ensure you are getting the new Teams.

  1. Once you know the Admin has enabled the new Teams for your organization, sign out from Teams.


  2. Now, when you login again, you can see the button appear for you.

  3. Once you click the switch, you’ll get the Get it now button.

  4. If you click on See the full list, here’s the Documentation for the same – https://adoption.microsoft.com/en-us/new-microsoft-teams/
  5. You’ll see the new Tems app show up.

  6. Please note that if you are also part of other organizations, your other orgs will also show up in the same new Teams client.

Hope this helps!

Perform a changeset request in Dataverse connector in Power Automate

You must’ve noticed Perform a changeset request in the Dataverse connector in Power Automate.

Purpose of this Action is to perform batch of available Dataverse connector actions successfully or rollback the batch performed inside this changeset request.

Here’s what it does.

Perform a changeset request

Here’s how to use the connector action

  1. Select Perform a changeset request in the Dataverse connector Actions list.

  2. Now, since this works like a batch of operations to perform all actions successfully or “rollback” operations, you’ll see this working like a Scope but only for Dataverse actions.

  3. You have the below Actions available to perform.

  4. Now, let’s design an example changeset batch here.
    First, I’ll create an Account and then a Contact.

  5. When this Flow runs, for example, if the Contact creation fails, the Account creation too will be rollbacked unlike having these steps outside of the “Perform a changeset request” action.



  6. Please note that the Outputs of the Changeset request itself or even within the steps within a changeset request cannot be captured or referred to in Dynamic Content.

Hope this helps!

Migrate Flow to latest Microsoft Dataverse connector

If you are using the legacy Dataverse connector which has the gray logo and looks like the below.

You can run Flow checker to identify if Power Automate can help you migrate the Flow to utilize the latest connector.

Flow checker message

Here’s what the old Flow looks like –

  1. You would see the below message once Flow Checker suggests you changes –

  2. Once you click on the “Open the migration assistant” link on the suggestion, it’ll pop-up a window to ask if you are ready to allow Migrating the Flow to the latest Dataverse connector.

  3. Once you click on Migrate, it’ll start the migration process and based on how lengthy your flow is – in a few moments your new Flow will be ready.

  4. So, once the migration is completed, you’ll see a message like this.

  5. Once you click on Open the new flow, you’ll notice that the new Flow now has (Migrated) written in.

  6. And once you click on Edit, you’ll see that the Flow step where old Dataverse connector was used has been replaced by the new Connector

Hope this helps!

Resolve Project Operation errors | PSS Error Logs

In case you are new to Project Operations or have recently upgraded from Project Service Automation to Project Operations, and if you are running into some issues, here’s how to identify them

Error

Here’s an example error –

  1. Let’s say you are trying to add Tasks to the Schedule in Project Operations, and you see the below error in a few moments.

  2. Now, if you look at the above error in red, it won’t let you know exactly is the issue. Hence, here’s how you find it. Check the next section.

PSS Error Log

Here’ s how you can get to where the error is –

  1. You can look for the issue in the below section –
    Go to Settings in the Project Operations App.

  2. Then, go to the PSS error logs and you’ll find an entry there.

  3. And once you open it up, you’ll find the issue there. There could be different issues based on what operations you are trying to perform in Project Operations.


Now, based on your knowledge of Error Resolution in Dynamics 365 CRM application, you can work towards solving your errors.

Hope this helps!

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

Identify deprecated JS code in your Power Platform solution using Solution Checker

Recently, you must’ve received an intimation from Microsoft saying that ODATA v2 is now deprecated. See this link: https://powerapps.microsoft.com/en-us/blog/odata-v2-0-service-removal-date-announcement/

And if you are wondering how to go about finding what has been used, you can use Solution Checker to identify deprecated code which should show up like below using your Solution Checker.

Let’s see how we can use Solution Checker!

Running Solution Checker

Here’s how you can run Solution Checker in Power Apps Maker Portal (https://make.powerapps.com/) and see the results –

  1. Given that your solution already contains the JS Web Resources which you want to run Solution Checker on, you can select the Solution and expand Solution Checker to click Run as shown below.

  2. It takes a few moments to Run the Solution Checker solution. You’ll see the spinner as shown below.

  3. Once completed, you can expand the Solution checker and click on View Results.

  4. Once you click on View Results, you’ll see the list of detected anomalies in your JS Web Resources.
    Apart from the suggested JS best practices, you can see the Category Upgrade Readiness to identify the deprecated code being used in your solutions.

  5. Once you click on the Reference link in each of these results, it’ll open up a Pane on the right hand side to show what the issue is

  6. And when you click on Get the complete guide, here’s the link of the same (https://learn.microsoft.com/en-gb/power-apps/maker/data-platform/powerapps-checker/rules/web/avoid-2011-api?WT.mc_id=DX-MVP-5003911) which will give you the below details in Microsoft Learn Documentation –

  7. Now, if you look at the code that is being references in the Solution Checker result, you’ll see the old code (marked with Red Box)being used.
    Instead, you should use the new code (marked with Green Box) to do carry out the newer version of the functionality –

  8. See the next section in this blog to get the details on the deprecation in client side scripting for Power Platform / Dynamics 365 CRM.

Important Deprecations for Power Apps & Power Automate

Here’ are the Deprecated APIs for Power Platform / Dynamics 365 CRM Client Scripting: https://learn.microsoft.com/en-us/power-platform/important-changes-coming#some-client-apis-are-deprecated?WT.mc_id=DX-MVP-5003911

Hope this helps!

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

Power Apps Developer Plan environments | Power Platform

Developers can now have Environments of their own to test and review Power Apps / Power Automate etc. Here’s how you can get yours!

Learn More about Power Apps Developer: https://learn.microsoft.com/en-us/power-apps/maker/developer-plan?WT.mc_id=DX-MVP-5003911

If you are looking to Sign Up for the Developer Plan, you can use this Link: https://powerapps.microsoft.com/en-us/developerplan/?WT.mc_id=DX-MVP-5003911

Create Developer Environment

Given that you are Power Platform Admin Center, you can create a new Environment like so –

  1. Go to Power Platform Admin Center and then Environments (https://admin.powerplatform.microsoft.com/environments). Click on + New to create a new Environment.



    And then you can select the Type

  2. Now, can you check what URL you want to provide and then click on Finish

  3. Then, your environment will be initiated for creation like any other Environment. Notice the type is Developer.

  4. Once created, if you go in the Environment, you can click the Edit to review the Settings for this Environment.

  5. And you can see that the Security Group cannot be added to this Environment.

User’s Environment

  1. If a User wants to create their own environment under the Power App Developer Plan (https://powerapps.microsoft.com/en-us/developerplan/?WT.mc_id=DX-MVP-5003911), they can go to the Homepage of the Power Apps Developer plan and click on Existing User? Add a dev environment >

  2. Then, you can enter your credentials and you’ll see this page.

  3. Once this is provisioned, you’ll be taken to your Environment and I’ll look like below –



  4. And in the Power Platform Admin Center, the Admins can see that the Environment has been created of Type Developer by SYSTEM.

Hope this helps!

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!

Weekly Digest for usage insights | Power Platform Admin Center

One of the features in Power Platform Admin Center is that now you can receive Weekly Updates in the form of a Newsletter for the Managed Environments.

Pre-Requisites

Below are the Pre-requisites for enabling Weekly Digest

  1. Tenant-Level Analytics must be enabled in your Power Platform Tenant. Here’s a post to see how you can enable Tenant-Level Analytics – Tenant-Level Analytics in Power Platform Admin Center | For Power Apps and Power Automate
  2. Only Managed Environments Updates are available – Here’s how you can learn more about Managed Environments – Enable Managed Environments in Power Platform Admin Center
  3. Under those Managed Environments, only those Managed Environments will be considered which have been enabled for Weekly Digest. While enabling Managed Environments in the above step #2, ensure this checkbox is marked in order to consider the Managed Environment for Weekly Digest –

Enable Weekly Digest

Given the above Pre-requisites are met, here’s how you can enable Weekly Digest –

  1. Navigate to Tenant Settings in the Power Platform Admin Center (https://admin.powerplatform.microsoft.com/tenantsettings) – Look for Weekly digest. Notice that it is marked with a green icon which indicates that it will only be applicable for Managed Environments.

  2. On the right hand side, you’ll see place to enter email addresses (separated by semicolons) who should receive the Weekly Digest emails.
    Power Platform Administrators and Dynamics 365 Administrators only will receive these updates.

  3. Once you entered the email addresses, you can Save those and you’ll see the below message upon confirmation.

  4. That’s it!
  5. And then on a Monday, I saw this in my mailbox!

Hope this helps!

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 self-service analytics Data Export to Data Lake [Preview] | Power Platform Admin Center

Now, you can also export the Analytics Data to Azure Data Lake in order to further extend the derive rich data analytics!
At the time of writing this post, this feature is in Preview (As you’ll also see from the screenshots below)

This is a great feature where you can extract this Data into Data Lake and then further enrich and derive rich Power BI reporting based on your use-case.

In case you are new to understanding Azure Data Lake and pricing, you can review this – https://azure.microsoft.com/en-gb/solutions/data-lake/?WT.mc_id=DX-MVP-5003911

Data Export (Preview)

In Power Platform Admin Center (https://admin.powerplatform.microsoft.com/), here’s how you can setup Data Export –

  1. Navigate to Data Export in Power Platform Admin Center given that you have appropriate rights –


  2. Then, you’ll get to choose amongst the Power Apps or Power Automate data to be exported to Data Lake.

  3. In this example, I’ll choose Power Automate. As I select Power Automate, you’ll see that Tenant-Level Analytics are required and hence, already considered as Yes. If not, you’ll need to Enable Tenant-Level Analytics while doing this step – Here’s another post on how to Enable and Use Tenant Level Analytics –


  4. Now, In the next section you’ll need to choose the Subscription.


  5. Further, select the Resource Group and eventually, the Storage Account as well.


    And Storage Account is selected as well.

  6. Once everything looks good, you can click on Create.

  7. In a few moments, this will appear in Data Lake section of the Data Export. It will take up to 24 hours for the data to first start showing in Data Lake.

  8. Once this is completed after about 24 hours, you’ll see the status of the Data Lake data package changed to connected.


Data Export to Data Lake

Let’s look at the Azure Storage Explorer to connect to our Data Lake and see the Power Platform data – In case you are looking to install Azure Storage Explorer, here’s a post – Microsoft Azure Storage Explorer | Getting Started

  1. Once authenticated to the correct environment in Azure Storage Explorer, here’s what you would see in the ADLS Gen 2 (In case you want to create ADLS Gen 2 storage account, you can review this post – Create ADLS Gen 2 Storage Account for Azure Data Lake)
    You’ll see powerplatform folder show up.

  2. If you open this folder, since we had chosen Power Automate, it’s folder will be created.

  3. And let’s go in Flows folder to see the data. You’ll find json files of the same. You can double click to open it and it’ll open in whatever editor you have installed.

  4. In this case, I had VS Code, so here’s what the Flow data looks like –

  5. Likewise, you can dig deeper in this data and use this further for your reporting!

Here’s Microsoft Learn Document on the same – https://learn.microsoft.com/en-us/power-platform/admin/self-service-analytics?WT.mc_id=DX-MVP-5003911

Here’s Microsoft Learn Docs for Tenant-Level Analytics – https://learn.microsoft.com/en-gb/power-platform/admin/tenant-level-analytics#how-do-i-enable-tenant-level-analytics?WT.mc_id=DX-MVP-5003911

Hope this helps!

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!

Tenant-Level Analytics in Power Platform Admin Center | For Power Apps and Power Automate

As your organization and tenant usage grows, it’s difficult to keep track of Adoption. To tackle this, Tenant-Level Analytics have been introduced in Power Platform Admin Center (https://admin.powerplatform.microsoft.com/).

Let’s see how we can turn this on for your tenant!

Enable Tenant-Level Analytics

Given that you have appropriate permissions in Power Platform Admin Center, here’s how you can enable Tenant-Level Analytics –

  1. In Power Platform Admin Center, look for Settings area – under this, you’ll see an option called as Analytics

  2. Once you select Analytics, you’ll see on the right-hand side, a simple switch to turn it On. it could be Off by default.

  3. Once you Turn if On and Save, you’ll also see a confirmation message.


    And it’ll show this message once applied.

  4. Now, do a complete Broswer refresh.


Reading Tenant-Level Analytics

Here’s how you can review tenant-level analytics once enabled for your Tenant via the Power Platform Admin Center –

  1. When Tenant-Level Analytics are disabled, you’ll not find anything on the top right corner of the Analytics under Power Automate or Power Apps

    Tenant-Level Analytics: OFF (for both, Power Automate and Power Apps)


    Tenant-Level Analytics: ON


  2. You can drop down on the menu and find Tenant-Level Analytics.

  3. Once you choose Tenant level analysis, you’ll see the below report show up – this is the same for Power Automate as well as Power Apps.
    Please note that it takes up to 24 to 48 hours for the metrics to start showing from the previous day.


  4. And after approx. 48 hours later, I see this data now showing up.

Here’s Microsoft Learn Docs for Tenant-Level Analytics – https://learn.microsoft.com/en-gb/power-platform/admin/tenant-level-analytics#how-do-i-enable-tenant-level-analytics?WT.mc_id=DX-MVP-5003911

Hope this helps!

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!

Microsoft Azure Storage Explorer | Getting Started

If you are wondering how to get and setup the Microsoft Azure Storage Explorer – Here’s this post!

Azure Storage Explorer

Here’s how you can download and setup Microsoft Azure Storage Explorer.

  1. Search For Azure Storage Explorer and you’ll see something as below –

  2. Once you open the azure.microsoft.com link, you’ll see the below –
    Drop down to select Windows. And the Setup will will be prompted to save on your browser (or directly download based on your browser settings)

  3. And it’ll appear that it has been downloaded to your machine.

  4. Now, click on the Setup and let it start. Accept the Terms if everything looks OK to you, then click on Install


  5. It’ll then ask you where to setup and what it should call on the system. Standard stuff.



  6. Then, installation will begin.


  7. Then, open it up when finished.

  8. Now, this will come up. You are now ready to Sign-In!

Sign In with Azure in Microsoft Storage Explorer

Now, picking up from the step above, here’s how you sign in –

  1. Click on the Sign In with Azure if that’s your case unless you are trying other options in this wizard.

  2. If your Azure is usual one to login, can you simply click on Azure and click Next.


  3. Then, you’ll be asked to authenticate. Enter your credentials and authenticate like you would for any Microsoft Account.

  4. Once successful, you’ll see this and you can close the window.

  5. Now, if you open the App, it’ll detect your Azure Subscription if you have one.
    If it looks correct, you can simply click on Open Explorer.

  6. Once opened, you can expand on the Subscription and see all your Storage Accounts.

Hope this helps!

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

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

Thank you!

Tracked Properties in Power Automate Flow Step

If you are new to Power Automate and are wondering how Tracked Properties are and how they work?

Tracked Properties are data properties which are hidden away from the Input/Output sections of the Flow and which you can explicitly retrieve in a Flow Run.

Here’s a post to explain the same!

Tracked Properties

Below are what Tracked Properties are –

  1. If you look at the Settings section of different Actions, you’ll see Tracked Properties.

  2. And you’ll see Tracked Properties at the bottom once all Action specific Settings are listed.

  3. Here, you can create and store your own properties and it’s value. It’s value could also be results of preceding steps or from expressions.
    See example below –

  4. Once you create these Properties, here’s how you can retrieve the same.

Retrieving Tracked Properties

Here’s how you can retrieve Tracked Properties –

  1. You need to address using actions() method in Power Automate to read Tracked Properties of a certain step.
    Hence, the syntax is “action('<stepname>')?['TrackedProperties']

  2. You can store it in an Object variable and see the result as below

  3. Or, if you want to retrieve only a specific property, you can mention the same in the expressions itself.


  4. And it’ll show up like this (In anything stores Integer / String)

Hope this helps!

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

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

Thank you!

Smart Buttons in Ribbon Workbench | XrmToolBox

You must’ve definitely used Scott Durow’s Ribbon Workbench in XrmToolBox which is one of the most popular tools for in the XrmToolBox. Here’s what Smart Buttons can do to further extend capabilities of the Ribbon!



Let’s see how you can install Smart Buttons if you already have not installed the solution in your environment and also I’ll summarize how each of these will work! Hope this post captures the bare-minimum well.

Installing Smart Buttons

Here’s how you can install the Smart Buttons solution to make it appear in your Ribbon Workbench!
Link: Install Smart Buttons for Ribbon Workbench | XrmToolBox

Smart Button Posts

  1. Run Reporthttps://d365demystified.com/2023/01/17/run-report-using-smart-button-in-ribbon-workbench-xrmtoolbox/
  2. Run Workflow https://d365demystified.com/2023/01/17/run-workflow-smart-button-in-ribbon-workbench-xrmtoolbox/
  3. Run Webhookhttps://d365demystified.com/2023/01/17/run-webhook-smart-button-in-ribbon-workbench-xrmtoolbox/
  4. Quick JS https://d365demystified.com/2023/01/17/run-js-snippet-using-smart-button-in-ribbon-workbench-xrmtoolbox/
  5. Open Dialoghttps://d365demystified.com/2023/01/17/open-dialog-using-smart-button-in-ribbon-workbench-xrmtoolbox/

Hope this helps!

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!

Run Report using Smart Button in Ribbon Workbench | XrmToolBox

Here’s how you can use the Run Report button from Smart Buttons in Ribbon Workbench. In case you haven’t yet installed Smart Buttons in your Ribbon Workbench for your organization – Here’s a post for that – Install Smart Buttons for Ribbon Workbench | XrmToolBox

Now that it’s given you might have installed Smart Buttons already, let’s review how you can use the Run Report button for your Organization

Run Report

Here’s how you can access the OOB report in Dynamics 365 CRM –

  1. Where you have Run Report button, like this – all the SSRS Reports are under this flyout menu.


    And then you have these reports.


  2. Now, we have have this into a direct button just for that!

Run Report button

Before we begin, add the entity-only in a Solution and then load it up into Ribbon Workbench –

  1. Now, you’ll see Smart Buttons menu within which you’ll see Run Report button

  2. Once you drag it to your Form ribbon, you’ll see a pop-up immediately asking for what the Label of the button should be and what the Report should be. Enter the name and click on the magnifying button to show reports of the Report available to use.


  3. Once you select the same correctly, you’re button will look like this

  4. Once done, Publish your changes and refresh and test the same on your Account Form.

Working

Once all the changes are Publishes, you’ll see the below –

  1. The Button you added will now show up like this.

  2. When you click it, it’ll open the Report just like you would have to do from going in the menu. This makes the whole experience so easy since the most relevant reports can be put in buttons and prioritized on the ribbon.

Hope this helps!

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!

Custom Pages in Power Platform and adding them in Model-Driven Apps | Power Apps

You Can create Custom Pages in as a Canvas App and add it to Model Driven App! Here’s a quick tutorial on how you can do this!

Creating Custom Pages

Here’s how you can create Custom Pages. Make sure you are in Power Apps and in the correct intended environment (https://make.powerapps.com/) –

  1. Make sure you are inside a Solution.

  2. Now, you can drop down from the + New menu and expand App. Then, you’ll find Page as an option which is different from Canvas App.

  3. When you click on Page, you’ll get the Canvas App Studio with the capabilities of Canvas App to be added to your Page.

  4. Now, let’s say you have designed the Page to serve your desired purpose. Make sure you Save and Publish the App, it’ll ask you to Enter the Name for the App (or rather, Page)


    Enter a suitable name and click on Save.

  5. Once Saved, make sure to Publish again and confirm the Publish just like you would do for a Canvas App.


    And confirm the Publish action.

  6. Now once this is done, you can go back to the Solution and check that the Page will appear.


    and that’s how you have created a Page. Now, let’s consume this in your Model-Driven App!

Adding Custom Pages to Model-Driven Apps

Now, in the same solution, I’ll add the Model-Driven App so that I can configure the new Page I created in this Model-Driven App –

  1. When I go into App section in the solution I’m working in.

  2. And in that, I can click on Add existing button and expand App and then select Model-Driven App

  3. Now, from all the Apps, I want to add this Custom Page to the Sales Hub App. It could be anything else in your case.

  4. Once added, open the App.

  5. Once opened, you’ll see the + Add Page button. Click it.

  6. Now, the Dialog will ask what type of Page should be added. Custom Page is to be selected here.

  7. Now, you will be given option to either Create New (which we could have done directly but I wanted to demonstrate how to create within the Solution itself first), or add Existing.
    We’ll choose to add Existing Custom Page. And then, we select the Custom Page we just created i.e. Account Review Page.
    For the Page to show in the Site Map, make sure Show in navigation is ticked.


  8. Once you Add, you’ll see how the Page appears in the Model-Driven App. Publish your changes to this Model-Driven app is you are satisfactory.


  9. Once this is done, your Custom Page is added to the Model-Driven App and here’s how it looks!

Here’s complete document on Custom Pages on Microsoft Learn – https://learn.microsoft.com/en-us/power-apps/maker/model-driven-apps/model-app-page-overview?WT.mc_id=DX-MVP-5003911

Hope this helps!

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!

Install Smart Buttons for Ribbon Workbench | XrmToolBox

So, to make things even better in Ribbon Workbench, Smart Buttons have been introduced and here’s what they do and how you can get started with it!

Installing Smart Buttons

Initially, you would see this in your Ribbon Workbench, given that you are working on a Solution in Ribbon Workbench for your customization –

  1. You’d see this message for Smart Buttons if the Smart Buttons solution is not installed in your environment.


  2. Once you click the link (https://ribbonworkbench.uservoice.com/knowledgebase/articles/896958), you’ll be taken to the Release notes and you can then click here to find the link to the GitHub page [https://github.com/scottdurow/RibbonWorkbench/releases]


  3. Here’s Scott Durow’s GitHub Page for the Smart Buttons solution – https://github.com/scottdurow/RibbonWorkbench/releases
    The GitHub page also has link to the Unified Client buttons – https://develop1.net/public/post/2018/04/06/Adding-Ribbon-Workbench-SmartButtons-to-the-Unified-Client


    And you can Download the solution shown below –

  4. Now, you can import this in your environment –


    Once this solution is imported, you’ll see this –

  5. It’ll be a Managed Solution (that’s why you don’t need to Publish Customization :))


  6. And when this is imported, you can re-open the Ribbon Workbench and you’ll find the Smart Buttons show up.

Hope this helps!

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!

Hide options from OptionSet using JavaScript in Dynamics 365 CRM

Many times, you might not want to show all Options from an OptionSet while it is on a form. So, here’s how you can hide Options from OptionSet using JavaScript in Dynamics 365 CRM!

Scenario

Let’s see the below scenario where these are the options you already see –

  1. You see, there are 3 options for this OptionSet on Contact Form.


  2. Now, you want to hide “Platinum” as an option when a Form loads. So, let’s see how this done.

  3. Now, we can use this information to hide the Option Platinum. We’ll write JS script on the OnLoad of the Contact form.

JS Code

Here’s a JS code sample which will hide the options which you don’t need to display.

  1. Below is the code which you need to register OnLoad of the Contact form and also pass the Context as first parameter –

  2. And when you register it OnLoad, it should look like below –

Code:

oContactCustomization = {
  
    hidePlatinumGrade: function (context) {
        "use strict"; debugger;
        var formContext = context.getFormContext();
        var gradeOptionSet = formContext.getControl("new_grade");
        if (gradeOptionSet !== null) {
            gradeOptionSet.removeOption(3);
        }
    }
};

Here, you get the OptionSet using getControl(); method and then use the variable to then have removeOption(<OptionSet Value>);

Result

Now, when you load the form, you’ll see the option is no longer visible –

Hope this helps!

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!

Asynchronous Merge in Dynamics 365 CRM Power Apps | Power Platform

If you are familiar with Dynamics 365 CRM and it’s Merge feature for records, here’s a new feature that will let you merge records asynchronously and not hold your time on the screen.

Scenario

Below is how Merging operations would run had Asynchronous Merging not been turned on for your environment –

  1. When you select 2 records, you’ll see the Merge button, of course.

  2. And when you see the preferences which you have to select and move the fields into the Active/Master record.

  3. Once you click OK, you’d see this loading screen as the operation would happen in the background.

  4. Now, depending on how many related/child records you had for the selected records, it would take that longer time to process and it’s inefficient to hold your screen while the merging is happening – much like a Synchronous plugin.
  5. The only advantage is that you would know if anything failed.

    Let’s look at how you can enable Asynchronous Merge on your environment and how this will affect your experience along with some pet-peeves.

Enable Asynchronous Merge

Given that you have correct rights for your Power Platform Admin Center [PPAC] (https://admin.powerplatform.microsoft.com/environments), here’s how you can turn the Asynchronous Merge for your environment –

  1. Select the Environment which you want to enable this on –

  2. Expand the Product section and click on Features.

  3. Now, scroll down till you see the option and you’ll see that it is turned off by default.
    You can turn this On and Save the Settings.

  4. Once this is turned on, you can see this –


  5. And that’s it, you’ve turned on the Asynchronous Merge for your environment.
    Let’s look at how it will behave in the next step.


    Please note that this takes about 20-30 minutes to take effect in my experience.

Behavior

Now, let’s select another pair of records to Merge –

  1. I’ve selected the below records to Merge and I can see the Merge button as well.

  2. And you’ll see your usual dialog box to select the fields you want to merge into the master record.

  3. Now, when you click OK, they’ll be merged post they have completed the Parent Check.
    To read more about Parent Checking while merging records, you can check this – Parent Check for Merging Records in Dynamics 365 CRM | Power Apps
    And the records will be processed in the background for merging and you can continue to work.

  4. Now, in order to find what happened to the merge operation, you can go to Settings > System Jobs.
    And look for this operation.

  5. Once you know how to solve the error (see an example in #3 above), the successful Merge operations’ Job start in the background and you’ll see a toast notification on the top right as below

  6. And then, when you look at the System Jobs, you’ll find that the Job has succeeded.




Here’s Microsoft’s Learn document on the same – https://learn.microsoft.com/en-gb/power-platform/admin/async-cascading#merge-record-example?WT.mc_id=DX-MVP-5003911

Hope this helps!

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!

Parent Check for Merging Records in Dynamics 365 CRM | Power Apps

In case you ever tried to Merge records in Dynamics 365 CRM and it failed, you’d usually see the below error –


The error reads – “Unable to merge because sub-entity will be parented differently. You can disable the parent check prior to execution as part of Merge dialog.

Let’s see why this error occurs and how to solve this.

Scenario

This scenario occurs because the records you are trying to Merge had different Parent records already.
Example –

  1. Notice the below records selected for Merging –
    The Contacts to be Merged already belong to different Parent Account

  2. And when you select them for Merging using the Merge button upon their selection.

  3. You’ll also be given Parent Checking selected by Default.

  4. This is what causes the error.
    Now, if they either had the same Parent or one of them doesn’t have a parent, this won’t appear and they’ll be Merged.

  5. Now, they’ve been correctly Merged and only 1 record exists.

Hope this helps!

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!

Run User Diagnostics in Power Platform Admin Center | Solving User Access Issues for Dynamics CRM

Many users often reports issue of not being able to access Dynamics 365 CRM even when they’ve been assigned security roles.

So, Power Platform Admin Center will provide you a Diagnostic Tool to quickly check what type of access is missing at the administration level across the below areas –

  1. Sign in blocked for the User at M365 level.
  2. No license for Power Apps / CE Apps.
  3. Not in Security Group of the Dataverse/CRM environment

Let’s see how we can run the Diagnostics and how to solve each of them!

Run Diagnostics on Users

Here’s how you can Run the Diagnostics on the Users in Power Platform Admin Center –

  1. Navigate to the Settings once you select the Environment –

  2. Then, expand the Users + permissions area to see the Users option

  3. Once you see all the Users, you’ll be able to see which Users you want to select and then investigate for diagnostics.

  4. When you click on Run Diagnostics, you’ll see the pan on the right hand side complete some tests and then show the results –

  5. And when you zoom, you’ll see the information as below –

  6. So, when you check the License information in the M365 Portal (considering you have Admin access), you’ll identify that the User is missing the license for Power Apps / Customer Engagement Apps.

  7. When I run this for User whose all levels of access are correct, I’ll see the below –

  8. In other instances, the Sign-in could be blocked as well and this is how it’ll appear. The error message will point out what is causing the User to not access the Dataverse environments.

  9. And when you check the User in the M365 Admin Center, you’ll see that the Sign-in is blocked –

  10. And a final reason that a User is not a part of the Security Group which has been assigned to the Environment itself.
    In that case, they’ll see the below error –

  11. So, if you check the Environment in PPAC itself, you can see what Security Group has been applied to the Environment.

  12. And if you look at this Group, you’ll not find the member in the Security Group at the M365 Level.

You can find the complete Microsoft Learn documentation on the same here – https://learn.microsoft.com/en-gb/power-platform/admin/troubleshooting-user-needs-read-write-access-organization#user-diagnostics?WT.mc_id=DX-MVP-5003911

Hope this helps!

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!

Get Data sent to server on Save using Dynamics 365 CRM JavaScript | GetDataXML function

Now, in case you are working on forms in Dynamics 365 CRM, and you want to know what all data is changed – There are 2 ways to get this

Scenario

Let’s look at the below scenario where this is useful –

  1. You have a record which you are about to Edit. This is how it looks as of now.

  2. Now, I have an OnSave event on which I’m calling a function to capture what all is being saved.

  3. Now, below is what I want to change and then click Save to save the changes.

  4. And then click Save. Now, I want to capture all this data upon Saving to know and further process what has been changed. Let’s see how we can achieve this using Dynamics 365 CRM JavaScript

getDataXml() method

Here’s how you will see the data to be changed

  1. Below, you see that I’m using formContext.data.entity.getDataXml(); to get the data that was changed and which will be setn to the server to saving/processing.
    Please note that here, I’ve used formContext as my variable to store the context passed from the Save event on the form.


    Here’s the code for you to copy and change for yourself –  var xmlData = formContext.data.entity.getDataXml();
  2. Now, when I run this on the Dev Tools in the Browser, I can see what is being populated when I save the record.



  3. Once I hit debugger, I’ll get the same in the variable I created.


  4. And when I run this variable in the Console to see the complete data, I get this in XML.


  5. And that’s how you can capture data in Dynamics 365 which is being sent to the server for processing/saving.

Hope this helps!

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!

Read OptionSet Labels in Dynamics 365 CRM Plugins | Entity object

Usually, you’d look at the OptionSet in the customiation and decide to write plugin logic based on the code you have noted down.

But, at times, you might want to know what the OptionSet Labels are for these Options, in that case, here’s how you retrieve the labels as well.

In case you are looking to retrieve OptionSet Labels in Power Automate Flow on the Dataverse connector, you can check this post – Read OptionSet Labels from CDS/Dataverse Triggers or Action Steps in a Flow | Power Automate


Scenario

Below is the OptionSet Value and you want to retrieve the Label part when you retrieve or work with RetrieveMultiple or object of the Entity class in Dynamics 365 CRM plugin execution context


OR

And here’s the Data that I’ll be retrieving in my plugin of which I need the label “Silver” instead of the OptionSet value of 1 as seen above.

OptionSet Value

Amongst some methods, I prefer using the below to retrieve the OptionSet Value i.e. the code itself

  1. Lets say I’m looping through a list of records retrieved using RetrieveMultiple in my plugin.
    I use entity.GetAttributeValue<OptionSetValue>("field_name").Value; to retrieve the value of the OptionSet option and store it in an Int32 / int variable.


  2. But, this doesn’t give you the Name of the label itself. For that, you’ll need to use a different method. Let’s see below

OptionSet labels using Formatted Values

Below is how you can retrieve Label of the OptionSet value from the Object of the Entity class in Dynamics 365 CRM plugin execution context –

  1. Similar to the above step, I’m retrieving the name of the Label of the same OptionSet value I’m working on from the same example above.
    I use entity.FormattedValues["field_name"]; to retrieve the Label of the OptionSet option and store it in a String / string variable.

Here’s where all the other Formatted Values are stored in the RetrieveMultiple’s Object

And that’s how you retrieve the OptionSet Labels in your Dynamics 365 CRM plugin.

Hope this helps!

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!

Microsoft Authenticator app sign-in method types for Microsoft 365 account | Office 365

In case you are setting Authenticator app for accessing your Office 365 account, you have 2 options of authenticating using the Authenticator App from you phone – Notification based and Code based. And see how you can change the preferred method to either of these types!

Notification Based

Here’s how the notification based authentication works –

  1. When you enter your username and password, you’ll see this on your browser intimating that the Approval request has been sent to your phone.

  2. On the phone, you’ll receive the below

  3. And upon opening the notification, the Microsoft Authenticator App will be opened and the permission to Approve or Deny the authentication request for your account will pop-up.

  4. Once you click on Approve, you’ll be able to login.

Code Based

And when Code based method is selected, you’ll see the below –

  1. On the browser when you enter your username and password, you’ll see the below waiting for you to refer to the Authenticator App and enter the same from your phone.



  2. Once you open the Authenticator App and open the Account which you are trying to log in, you’ll see a code in bold letters which refreshes after a time frame.

  3. Once you enter this code, you’ll be able to log in.

Changing the Authentication Method

Here’s how you can change the type of authentication method when you log into your Office 365 –

  1. Navigate to the menu on the top right.

  2. Now, on the left hand side, look for Security Info.

  3. You can then see the different authentication methods you’ve entered like phone, authenticator app etc.
    For simplicity, I only have 1 entered i.e. Authenticator App [Microsoft Authenticator].

    And now, since Microsoft Authenticator is set as the default method, I’ll also get an option to change the type of authentication set.

  4. I’ll get two options –
    “App based authentication – notification” – This will show a pop-up on the phone in the form of a notification which you can choose to Approve or Deny.
    “App based authentication or hardware token – code” – This will need you to open the Microsoft Authenticator Apps in your phone and then look for the code in the account and enter it when asked as seen in this post above.

  5. So, you can select the other method apart from the one you have selected and you should be good to go.


Hope this helps!

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!

Adding Editable Grid using the New Power Apps Grid Control in Model-Driven Apps | [Preview]

If you are designing your forms in the Model-Driven Apps designer from the Power Apps Maker i.e. https://make.powerapps.com/, here’s how you can add the New Power Apps Grid (which is in Preview at the time of writing this post)

Scenario

For example, you are in Model Driven Apps designer and you are see the existing Grids, they have only 2 areas in Properties –

  1. Select the Grid and you’ll only see 2 areas –


  2. And if you expand them, you won’t find a way to change the control to, for example, Editable Grid.

  3. That’s where the new Power Apps Grid Control comes hand. This is currently in Preview at the time of writing this post.

New Power Apps Grid Control [Preview]

Now, click on the Components section to reveal all the Components that you could add to the Model-Driven Apps form –

  1. You’ll see the More Components section under which you’ll find the new Power Apps Grid Control.

  2. Now, once you drag is on the form where you want it to be, you’ll be asked to select the records it should hold. It’ll ask you to select the Table which you want to display in the sub-grid.

  3. Once you click on Done, make sure the Show Related Records is selected as well and ensure the Table and View selected is correct.

  4. Now, look for Components section and expand the same. Expanding the Components, you’ll be able to select the Editable Grid.
    Expand the Components section and you’ll find another button to add more components that are made available.

  5. Now, you’ll be able to select the Editable Grid here.

  6. Now that you have added Editable Grid, click Done.

  7. And once you add, you’ll notice that the Mobile, Web etc will be shown under the new grid. Means this is now set as default and not the other 2 views.

  8. Finally, you can save your changes and publish.
    And that’s how you are able to add Editable Grid on the modern Power Apps Model Apps designer using the new Power Apps Grid Component.

  9. And here’s how you’ll be able to add an Editable Grid on the Form using new Power Apps maker.

Here’s the Microsoft Learn link for the same – https://learn.microsoft.com/en-us/power-apps/maker/model-driven-apps/the-power-apps-grid-control?WT.mc_id=DX-MVP-5003911

Hope this helps!

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!

Filter, Search and Lookup functions in Power Fx | Canvas Apps

Here’s how you can use and understand the difference between Filter, Search and Lookup functions if you are new to making Canvas Apps. I’ve tried to explain the usage of these in simple examples!

These functions are part of the Power Fx and are used in Canvas Apps.

  1. Lookup Function – Lookup function in Canvas Power Apps | Power Fx Formula Example
  2. Search Function – Search function in Canvas Power Apps | Power Fx Formula Example
  3. Filter Function – Filter function in Canvas Power Apps | Power Fx Formula Example

Differences between Filter, Search and Lookup

FilterLookupSearch
Results inMultiple RecordsSingle RecordMultiple Records
Search TypeCriteria BasedCriteria BasedText Based

Here’s Microsoft Learn link for detailed criteria & documentation: https://learn.microsoft.com/en-us/power-platform/power-fx/reference/function-filter-lookup#syntax?WT.mc_id=DX-MVP-5003911

Hope this helps!

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!

Filter function in Canvas Power Apps | Power Fx Formula Example

In case you are looking for how you use Search function as opposed to using Lookup() function in Power Fx in Canvas App, check this post!

Lookup Function – Lookup function in Canvas Power Apps | Power Fx Formula Example

Search Function – Search function in Canvas Power Apps | Power Fx Formula Example

Scenario

I have a Gallery control which is populated with Accounts data from Dataverse.

Then, I have another Gallery control to demonstrate how we can filter and pick records that satisfy one or more criteria in the Filter formula.

Filter() in Canvas Apps

Let’s see how we can use Filter in Canvas App based on the above scenario –

  1. Start by typing Filter while the target Gallery is selected under Items property and you’ll see that it’s a valid function in the list. And the first thing in the parameter after opening the bracket is the source.

  2. Now, Accounts is the table which I’m looking to filter on. I selected this from the Auto-complete when I types Accounts and then press comma (,) for the next parameter.

  3. Next, I’ll be asked the criteria to check for in order to Filter from the source data.
    Here, I want to select all the Account whose Annual Revenue is under 750,000.

    So, when I start typing the field name, the list will show the correct name which I can select.

  4. Then, I complete the formula.


  5. Optionally, I can have multiple criteria to be Filtered for.
    In this example, I’ll still keep only 1.

  6. Now, based on the completed formula, you can see below that the matching records have been filtered in the new Gallery control we added.

.And that’s how you can use Filter() function in Canvas App to select the records which match the provided criteria.

Here’s Microsoft Learn link for detailed criteria & documentation: https://learn.microsoft.com/en-us/power-platform/power-fx/reference/function-filter-lookup#syntax?WT.mc_id=DX-MVP-5003911

Hope this helps!

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!

Search function in Canvas Power Apps | Power Fx Formula Example

In case you are looking for how you use Search function as opposed to using Lookup() function in Power Fx in Canvas App, check this post!

Lookup function – Lookup function in Canvas Power Apps | Power Fx Formula Example

Filter function – Filter function in Canvas Power Apps | Power Fx Formula Example

Scenario

I have a Gallery control which is populated with Accounts data from Dataverse.

Then, I have another Gallery control to demonstrate how we can search and pick records that satisfy the criteria in the Seach formula.

Search() in Canvas App

Let’s see how we can use Search in a Canvas App based on the above scenario –

  1. Start by typing Seach while the Gallery is selected and you’ll see that it’s a valid function in the list. And the first thing in the parameter after opening the backet is the source.

  2. Now, Accounts is the table which I’m searching into. I selected this from the Auto-complete when I typed in Accounts and then, press comma (,) for the next parameter

  3. Next, I’ll be asked the text value of what I have to search for. It works like a “contains”. Anything that matches the pattern will be returned instead of the exact match.

  4. Finally, the last parameter is the Column on which the Search should be performed on. Since, I’m looking for Name of the Account in which I expect to find XYZ, I’ll select “Name” from the list.

  5. Now, the Formula is completed. I’ll get the below Formula on the new Gallery control’s Items property which has multiple records.

  6. And below is the result. All the rows that have XYZ in the Name of the Accounts will be populated in the new Gallery control I selected.


    And that’s how Search() function can be used to select records that have the phrase entered in the forumula.

Here’s Microsoft Learn link for detailed criteria & documentation: https://learn.microsoft.com/en-us/power-platform/power-fx/reference/function-filter-lookup#syntax?WT.mc_id=DX-MVP-5003911

Hope this helps!

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!

Lookup function in Canvas Power Apps | Power Fx Formula Example

Here’s how to think about and use the Lookup function in Canvas Power Apps!

Lookup is used to fetch a single record that matches a criteria from the source (usually a table)


Scenario

I have a Gallery control which is populated with Accounts data from Dataverse.

Then, I have a Textbox (Text Input) in which I’m going to pull up a field from a record from Dataverse table which matches a certain criteria.

Lookup() in Canvas App

Let’s see how we can use Lookup in a Canvas App based on the above scenario –

  1. Start by typing Lookup and you’ll see that it’s a valid function in the list. And the first thing in the parameter after opening the bracket is the source.
    As you can see, suggestions are also seen in the list below. Here, you have the select the Table / Entity from which you want to fetch the record.


  2. Now, Accounts is the table which I’m looking into. Hence, I’ll select that and press comma (,). Next, I’ll be asked the condition.
    Here, you need to mention what record you want to retrieve based on what criteria.

  3. So, I want to retrieve an Account whose “Account Name” is equal to <value>. So, below is how I write it.
    In this example, I’m trying to fetch an Account record whose ‘Account Namefield has value “Coffee House”

  4. Further, once I have this condition satisfied, what field I want to retrieve so that it can be shown in the Text Input box I have inserted (for which I’m writing this Lookup)


    So in this case, I want to retrieve the ‘Main Phone’ field.


  5. And once my formula is complete, I can end it with a closing bracket.
    And as you see the result below, the Main Phone from the matching criteria Account has shown up.


    And that’s how Lookup() function can be used to pick a record’s value based on a certain criteria.

Here’s Microsoft Learn Link for the same: https://learn.microsoft.com/en-us/power-platform/power-fx/reference/function-filter-lookup#syntax?WT.mc_id=DX-MVP-5003911

Hope this helps!

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!

Setting up Billing Policy for Dataverse Environments in Power Platform for Azure Pay-As-You-Go plan | Microsoft Azure

Pay-as-you-go has been recently announced with Azure and I too wanted to explore this topic myself on my trials Dataverse/D365 Sales environment as well as my Microsoft Azure trial subscription which I started.

Disclaimer: Please note that I’m exploring this topic and sharing as I go on. Hence, I’ll continue to write further topics as I proceed. Please try on your Dataverse trial & Microsoft Azure trial subscription to identify / estimate the costs your actual implementation will incur.

I also recommend going through the below Microsoft Learn Pages for detailed information on pricing and meters of the Pay-as-you-go model –

Detailed Microsoft Docs for Pay-as-you-go: https://learn.microsoft.com/en-us/power-platform/admin/pay-as-you-go-overview?WT.mc_id=DX-MVP-5003911

Power Apps Pricing: https://powerapps.microsoft.com/en-us/pricing/

Pay-as-you-go Meters: https://learn.microsoft.com/en-us/power-platform/admin/pay-as-you-go-meters?tabs=image?WT.mc_id=DX-MVP-5003911

Let’s see how we can get started!

Setting up Billing Policy

Here’s how you create Billing Policy in Power Platform –

  1. In Power Platform Admin Center (https://admin.powerplatform.microsoft.com/), you can see Policies section. If you expand the same, you can see Billing Policies.

  2. Here, you can start by creating a new Billing Policy

  3. You can give it an appropriate name. And it doesn’t allow you to have spaces.

  4. Next, you’ll be asked to select the Subscription you wan to assign the Billing Policy under.
    Notice the error below. My Free Trial Azure Subscription doesn’t have a Resource Group created yet. Hence, this need to be present.


  5. Since at this point, I don’t have a Resource Group under the Azure Subscription I selected, I need to go to Azure Portal (https://portal.azure.com/), search for Resource Groups

  6. Since you might not have any Resource Group right away, you can create one.


  7. I’ll just give it a name which I can identify with.


  8. I’ll validate and Create the same in Azure.


  9. Resource Group will be created here.


  10. Now, when I come back to Power Platform, if I reselect the Azure Subscription, I’ll now see that the Resource Group I created is showing up.

  11. I’ll select the same and select United States as the Region.
    And click on Next.


  12. In the next steps, I can select which all Environments should be included in the Policy. Then, I can click on + Add to policy.

  13. You can see the Added to policy tab now showing your environment. Once you are satisfied with the selection, you can click on Next.

  14. Final step is to now Review and confirm the policy you are creating.

  15. It’ll take a moment to start provisioning. Then, you’ll see the status as Provisioning.

  16. Once completed, the status will show as Enabled.


  17. Now, when you go back to Azure Portal and open the Resource Group, you’ll find a Deployment show up



  18. Open it up and you’ll see a Deployment created.

  19. And if you open the Deployment, you can see the DataverseBilling which we had set up in Power Platform.


  20. And this point, you are now setup with using Pay-As-you-go plan for your Dataverse environment(s).

    Note: Further, I’ll write follow up posts as I explore Pay-as-you-go scenarios and experience myself.

Hope this helps!

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!

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!

Cards for Power Apps [Preview] | Power Platform

So Cards are finally in Power Apps! As of writing this post, Cards is in Preview in the Power Apps (https://make.powerapps.com/)

Here’s the official page of Adaptive Cards – https://adaptivecards.io/

In case you are new to Adaptive Cards and figuring out how they work with Teams, you can check my post here – Adaptive Cards for Teams to collect data from users using Power Automate | SharePoint Lists

Cards in Power Apps

Here’s how you can start creating Cards in Power Apps –

  1. In the appropriate environment having correct rights, you can see Cards section –

  2. Then, you can click on “+ Create a card” button in the Create section of the menu.

  3. Give the Card a suitable name. In my example, I’m calling it Swag Kit Card. You can name it based on your application/use.

  4. It’ll take a few moments for your card to be created. You’ll see the below dialog while it’s getting created in the backend.

  5. Once the process is completed, you’ll be taken to the Editor itself and this is what it looks like –

  6. And as you can see on the left hand-menu, the controls which you can get are the ones you could see in the Adaptive Cards IO designer.
    In the Data, you’ll see only Dataverse at the time of this being in a Preview release.

  7. In this example, I’ll keep things simple and generate a static card which can be used.

  8. Once I save this card, you can see how the JSON is built out

  9. You can copy the selected part which is expected in the below used Teams action in Power Automate

  10. And as an example, since this Card currently supports for Teams – I can simply copy this from the JSON view and paste it in one of the Actions for Teams i.e. Post adaptive card in a chat or channel.

  11. So, when I Run the Flow, I can get the Adaptive Card show up as a message from Flow Bot.


    And that’s it!!

Accessing Cards in your Environment

All the Saved Cards appear here in the environment –

  1. Navigate the the Cards section in Power Apps and click on Cards.

Microsoft Docs for Cards for Power Apps (preview) – https://learn.microsoft.com/en-us/power-apps/cards/overview?WT.mc_id=DX-MVP-5003911

Hope this was useful! As this continues to evolve in GA, I’ll write more about using Cards in Power Apps.

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!

Format Data by Examples in a Flow [Preview] | Power Automate

Here’s an exciting update users are starting to see in Oct 2022. Is to Format Input data based on examples i.e. generating Expressions instead of writing them yourselves in Power Automate!

At the time of this post, this is in Preview and hence, please consider that this might or might not make it to final release and hence, not recommended for Production use!

Let’s see how this works!

Expressions using Data Samples in Power Automate

Here’s how you can generate Expressions that have been generated from Examples you provide –

  1. In Dynamic Content, go to Expressions, you’ll see the Format data by examples option at the top.

  2. I’m passing Date in the Flow as below –


  3. This will open up a pane on the right hand side to select the data variable for which the expression has to be generated.
    I want to format a Date from the Inputs in a certain way. Hence, I’ll select Date from the Pane which has opened up.

  4. Upon selection, I’ll provide some examples on what values can come in and what should it be translated to.

  5. Here, I’ll enter some examples on how the input date can be expected to which what the output format should be desired.
    Once I provide a few examples, I can click on Get expression for the Flow to generate a custom expression for me based on the examples I provided.

  6. Upon clicking Get expression, the Flow will generate a custom Expression for you which you can test/copy right away.

  7. Note that in the above, the key-button-date is set, you need to set this to the actual field
  8. Here’s an example which I’m testing –


    And it produced the correct result –

  9. So, I’ll click on Apply.

  10. You’ll be asked confirmation before Applying this formatting –

  11. Once you confirm, the Expression will be generated.

  12. And when you test the actual Flow, it’ll expect the value based on how you tested the Expression and produce the result –
    In this case, the key-button-date i.e. the current Date was formatted. Hence, the current date will be returned.

  13. And the answer is as below –


    Hope this was useful!!

Other Examples

Currently, below are the types of formats supported –

  1. Date
  2. Text
  3. Number

Text Example

Here’s a Text based example you can think of –

  1. In a Text based Example, I want only first 3 letters of a City.

  2. Here’s the expression Generated which I can check –


  3. And like the main example above, this expression can be applied!

Number Example

Here’s a quick number example you can think of –

  1. Let’s say you want to format a number in a phone format or currency –

  2. And the expression will be generated for the same –

Here’s Microsoft Documentation on the same – https://learn.microsoft.com/en-gb/power-automate/format-data-by-examples?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!

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!

Calendar Control View in Dynamics 365 CRM | Power Apps

A Read-Only Grid can only always provide you with a static view of data. At times, it’s important to visualize some data in Dynamics 365 which offer more than just columns.

In most common scenarios, your custom records / customizations might have Start End Dates which is better viewed in a visual way. Here’s where Calendar Control comes into play –

Read-Only Grid

Normally, below is how you visualize your data in Dynamics 365 where you have Start Date and End Date –

  1. As you can see, the data looks like in any other entity you’d design.

Calendar Control

Here’s how you can enable the Calendar Control to change the View in question into Calendar Control –

  1. Go to the Entity/Table itself and click on Controls.

  2. Then, look for Calendar Control in the View.

  3. Then, configure the Start Date, End Date, Description, Duration fields.
    And also make sure the selection is on the Calendar Control itself

  4. Once you save and publish the changes, let’s see how the control looks like.

Viewing Data in Calendar Control

Now that all the customization are published, here’s what the Calendar Control will look like –

  1. If you refresh, you’ll see the same in Calendar Control and not the Read Only grid.

  2. Also, you can switch between Day/Week/Month view

  3. If you click on any of the records, you’ll see the details of the record.

  4. And this will open the record itself.

Switching to Read-Only View

Since the default is now set to the Calendar View, you’ll need to switch it back to Read-Only.

  1. Look for the 3 ellipses or you might just see the View As button on the ribbon already.

  2. And select Read Only.

  3. And you’ll see the default shown

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!

Math Functions examples in Power Automate Flow

Here are the examples of how you can use the Math Functions from Dynamic Content in a Power Automate Flow –

In this example, I’ll use the below Inputs to perform the Math Operations on and I’ll have the Math Functions perform in the Example of the functions shown below –

Min()

Minimum gives out the smallest value in the Array of numbers.

  1. Here, I’ve created an array of numbers and from this, I’m selecting the minimum value.

  2. And the result is as below –


Max()

Inversely as the Min() function above, the Max function will return the highest number from the Array or Collection –

  1. Here’s how I use the Max function –

  2. And the result of the Max function is as below –

Add()

As it suggests, this is the addition function which will add the 2 numbers provided as arguments –

  1. In the variable, I’ll look for add and enter the 2 arguments from the Manual Trigger i.e. passing values while running the Flow.
    And as you can see below, I’m using add() function and passing the parameters separated by a comma.

  2. Then, I’m passing the below arguments when I run the Flow.

  3. And then I run the Flow, the result is as below –

Sub()

As the function suggests, you can subtract number 2 from number 1. Here’s an example –

  1. In the below Sub() function, I can see

  2. And when I pass the below arguments 20 and 5 –

  3. And the result will be 20 – 5 = 15.

Rand()

Rand() function will give out a random number from the collection at each run. Hence, the result will vary on each run –

  1. I’m providing the start number range and the end number range. And the function will select the a random number from within the range –

  2. So, when I run it for the first time, I’ll get a number

  3. And when I run it one more time, I’ll get a different number.

Mul()

Mul() function will multiple the 2 numbers passed in the arguments –

  1. I’m passing the 2 arguments within the function itself like I did for some of the above functions.

  2. And the result will be as follows –

Div()

Div function will divide the first number by the second one –

  1. In this example, I’m providing the

  2. And the result in this case is 25.

Mod()

Mod() function will give the modulo / modulus or the division happening between the dividend and the divisor i.e. you’ll get the remainder value –

  1. I’m supplying the below parameters which will give a modulus.

  2. And the result obtained is the remainder of the division –

Range()

Range() function will generate a range between –

  1. The 2 arguments required by range() function are startIndex and count. Count meaning how many numbers you want in the array.
    Notice the type of the variable has been changed to an Array now.

  2. And the result is the below Array with 6 items in the Array starting from value 2.

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!

Get Display Name of the current Flow in Power Automate

If you are working on complex Flows and need to identify which Flow a certain operation is being performed from –

Example, you are working on some Account Processing Flow you designed for Dataverse tables and there are several Flows for the Account table, but you want to start logging errors from different Flows for developer reference.

workflow() function

Here’s how you can use the workflow() function in Power Automate Flow to get the name of the current Flow –

  1. Here’s the name of the Flow which we are intending to get in the Flow run itself.


  2. In this example, I’m initializing a variable of type String to Demonstrate this

  3. Now, you have workflow() function in the Expressions area in Dynamic Content in your Flow step.

  4. Once you select the workflow() function, you can continue to type in even though you are not seeing auto-complete options. Type .tags.flowDisplayName further as shown below

  5. And click OK, make sure by hovering that the expressions is added.

  6. And when you Run the Flow to test, you can get the Name of the Flow itself.

  7. Also, you can get the other properties from the workflow() function as well. Here’s an example when you just use workflow() function and see the results –

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!

Create Custom APIs in Dynamics 365 CRM | Power Platform

Custom APIs in Dataverse is a great way to build your own API messages to encompass complex business operations into a single API. And Power Platform Admin Center provides a great way to keep things simple and yet build your custom APIs just like writing Plugins in Dynamics 365 CRM itself.

Pre Requisites

In order to build your own APIs, you must know the following –

  1. Writing Plugins in Dynamics 365 CRM – In case you are new to plugin development itself, you can follow this blog series wherein I’ve demonstrated how you can start writing your own C# Plugins for Dynamics 365 CRM.
    Link: Plugins Development in Dynamics 365 CRM for Beginners | [Blog Series]
  2. You’ll also need to know how to connect Postman to your Dynamics 365 CRM environment in order to test your APIs before you can use it in your custom application. I have a blog for the same as well.
    Link: Setup Postman to connect to Dynamics 365 CRM using OAuth 2.0 | Azure App Registration

Scenario

Here’s a scenario where I’ll demonstrate how you can use Custom API to do an operation in Dynamics 365 CRM and send back result to the calling application.

  1. Custom API is exposed to the calling application. Postman in this case.
  2. Once API is called and parameters is passed, a simple update of a field to an Account will take place.
  3. Result will be returned to the calling application. Again, Postman in this case.

Create your Custom API & Parameters in Power Platform Admin Center

Let’s create a Custom API that’ll pass on parameters to a plugin and plugin in-turn will send back the result itself –

  1. Assuming you have created a Solution in the correct Dynamics 365 / Dataverse environment. Click on New, and look for Custom API.

  2. Give it a suitable Name and fill in the Attributes which are required. Here, the unique name of the API is cf_processaccountapi.
    I will cover the other properties in a different blog post.

  3. Now, I’ll create 2 attributes which I need to pass as parameters to the API call itself.
    Hence, I’ll now create 2 new API Request Parameters in the solution by following the below menu.

  4. First will be the Account Code. I’ll select the Process Account API from the Custom API lookup on the form and then give unique name.
    Here, my parameter is of type String.

  5. And once I save this, this is how my parameter 1 i.e. Account Code is supposed to look.

  6. Similarly, my second parameter is as follows which accepts a String value. This parameter is called Grade Code. Again, this is just an example. Your scenario could be anything.

  7. Finally, I’ll also create a Response Property for the Custom API in order to send back the response to the caller.

  8. And just like how I defined the Request Parameters, I’ll also create the Response property as below.
    The form is quite self-explanatory by now.


  9. Once all of this is done, here’s how my API structure looks like in the solution.

Sample Plugin for Custom API & Registering it using Plugin Registration Tool

Given that you know how to work with Plugins in Dynamics 365 CRM, here’s how you can register the plugin as usual –

  1. In my plugin, I’m capturing the values from the attributes just like I would identify the context of a Plugin which runs on Update of an Account.

  2. Then, I’m finding the Account using the Account Code that was passed and updating that Account with the Option Set value which will be the Grade Code.

  3. Then, once all the processes are done, I’m setting the Output Parameter accountProcessResult with the success message.


  4. Open the Plugin Registration Tool and log into your environment. Then, Register the Assembly itself.

  5. Once your plugin has been registered, you’ll need to open the Custom API record again and associate this registered plugin on the Custom API record.
    Open the Custom API record which we created above –

  6. When you associate the Plugin Type, make sure you Save and Publish the customization.
  7. Now, we will test using Postman. Before we test, notice the Account Grade column which is of type OptionSet – we will update this using the Custom API we built.


    The OptionSet fields looks like below –

Testing Using Postman

Now that the code for the Custom API is ready as well as the Plugin too has been registered, let’s test the same using Postman –

  1. Again, in case you haven’t set the Postman to authenticate and connect to your D365 CRM environment, you can follow this post and set up your Postman to be able to call Dynamics 365 CRM.
    Link: Setup Postman to connect to Dynamics 365 CRM using OAuth 2.0 | Azure App Registration
  2. Now, given that you were able to successfully connect Postman to Dynamics 365, you can do a simple metadata call and check if you connection was successful.

  3. Now, look at the unique name of the Custom API we created.
    Now, switch the method to Post, and append the name of the Custom API itself.
    Then, in raw – select JSON type data and construct the JSON to be sent.

  4. And the result will be returned based on what Output Parameters was set.

  5. And you’ll see the data on the OptionSet being updated through this example.

Hope this was useful and this helped in clarifying the concept!

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

  1. See Trigger Outputs using Edit Columns in Flow Runs | Power Automate [Quick Tip]
  2. Adding Image field on the form in Dynamics 365 CRM | Power Platform Modern Form Designer [Quick Tip]
  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!