Retrieve only active Dynamics 365 CE licensed Users in CDS connector in Power Automate

Let’s say you have a requirement where you want to work only on Dynamics 365 and you are using Office 365 Get User Profile action to retrieve all users.

In this example, I have some Dynamics 365 Customer Engagement licenses assigned to uers. And I want to retrieve only the Active D365 Users in my Common Data Service Connector.

Here’s how I do it –

Retrieve Users with Filter Condition

Now, the best thing you could do is identify what is the userlicensetype field of other Dynamics 365 users you might have retrieved in your previous executions.

licenseTypeFilter

I’ve used the query userlicensetype eq 6 to query for Active D365 users

If you want to retrieve Users who have been Disabled, you can check by using userlicensetype eq -1

Note: You’ll need to check the respective values for other users who have licenses like Team Member or Sales Professional. Since I haven’t tried those, I don’t have their exact number codes. Best way is to identify a user whose licence configuration you are looking for and look for their userlicensetype field value in Flow.

Result

This gave me only those users who have D365 Customer Engagement License assigned to them
4retrieved

And if I look at my O365 Portal, I can see that 4 users have the Dynamics 365 Customer Engagement License
D365Licensed

There are even more ways you can use to identify for different licenses used. I recommend it’s good practice to retrieved only those users which are needed for your operation.

Hope this helps!

AutoNumber field in CDS | PowerApps

The most desired feature is ability to create/customize your own auto-number field. ANd CDS let’s your do just that!

I remember the good old days when I had to write a plugin to function for AutoNumber which used to configuration from a supposedly separate Configuration entity and it scary to maintain the code and entity. But this solves all that with so much ease!
allRecords

 

Create an AutoNumber field in CDS

  1. Now, you can start by creating a field in CDS’ Solutions > [YourSolution]> [YourEntity]
    createNew

  2. Then, under Accounts, you can see that you can actually create an Autonumber. This is not available in Classic UI.
    Also, please note that you’ll need to keep this field Not Required and Locked (on the form) in order to function.
    underTextGroup
  3. Give it  a suitable name and then you have 3 options to format your auto-number field.
    2TypesOfAutonumber

    String Prefixed number

    You’ll need to define the Prefix, Min Digits, Seed value
    preview

    Date prefixed number

    With Date prefixed, you’ll need to define Date Format, Min Digits of Seed Value
    dateFieldPreview

    Custom

    With custom, you can define the Format. Refer Microsoft’s Documentation for the same – AutoNumberFormat options
    customPreview

Save and Publish as you usually would and place your field on the form you want.

Working

I used String method to design my AutoNumber field. Let’s see how it looks –
Once I save the record, the Auto-number will be filled in.
fieldWorking

If you happen to delete any records already created in the sequence, the auto-number functionality will continue counting upward and not fill out previous backlogs/last deleted auto-number records.

 

Hope this helps!

RSS notifications to your phone using Power Automate

RSS is powerful and taming it wisely really helps! 🙂 Here’s an example where I used it to get a notification whenever a new blog was posted by Microsoft in their Dynamics 365 Blog page. It is my attempt to stay updated on the latest posts so that I don’t miss anything.

Scenario

  1. Let’s say, for example, this is the website I want to read RSS feeds from. So click on the RSS icon – https://cloudblogs.microsoft.com/dynamics365/
    feedIconOnWebsite
  2. Copy the URL from the Feed page
    copyURL

Build your Power Automate

  1. Start by building your Power Automate, you can select the Trigger as RSS.
    createFlow
  2. Paste the URL copied from your RSS source above, and then add a step to send a Notification. You can have anything here, it’s up to your use case of what you want to do with the Power Automate further on.
    powerAutomate

Getting RSS Feeds on Phone using Power Automate

Now, once all this is set, here’s how I’ll get notifications on the phone once I have Power Automate setup and authenticated to the correct environment of Power Automate.

  1. Whenever there’s a new blog posted on https://cloudblogs.microsoft.com/dynamics365/, I get a Power Automate notification on the phone like this
    phoneNotif
  2. And when you click on it, you’ll see what has been posted, it will open up in the Power Automate app
    openPA
  3. And when you click on the link, it will take you to the actual blog Post
    actualPost

 

Hope this helps you in your application or use case! Cheers!!

 

Selecting (Current) in Environment in Power Automate CDS connector and why it matters

If you’re new to Power Automate, you must be wondering why am I given an option to select either (Current) or the actual name of the environment. Why can’t I just select the actual name?
selectEnv

Well, here’s why –

Importing into Other environments

So, when you import your Flow / Power Automate into other environment using a solution, be it from Sandbox to Production or to entirely different org in different tenant, here’s the behavior

(Current) selection

currentSelected

And if you Export this Flow and import into other Organizations, you can simply restore the connections to that organization by simply selecting the connection
authenticateCurrent

And it will be loaded with the current environment(s) as it was on the source environment
currentLoaded

Environment selection

Whereas now, if you have exported the Flow with Environments selected as the particular environment and not (Current) like below –
envSelect

When you import this into other environment, and when you try to authenticate, it will not go through and you’ll see something like this –
corruptedEnv

And if you wonder what the Org name is displayed in the picture above, it’s the Org Unique Name of the source environment
uniqueNameOfOldOrg

 

And that’s why, it’s critical to select (Current) environment when you develop flows and you know you want to have these imported to other environments.

Hope this helps!

Correctly connect to an Excel file in a Canvas PowerApp

Now, just putting an Excel with some crude data in it won’t really be identified in the Canvas App you are making. Perhaps you’re missing something.

Let’s say, I want to read an Excel file from OneDrive For Business into my Canvas App, I select the Excel file from the OneDrive for Business connection like below –

excelToConnect

But, I’m treated with the below error while making a connection – CanvasAppExcel

 

Correcting your Excel

Well, if your Excel looks like this –

crudeExcel

Then, that’s the reason Canvas App is not able to connect to the data in the Excel. Here’s what you need to do – click on the top left corner of where your Table should start from and then click on Table from the Insert tab as shown below
convertToTable

Confirm that diagonal end of the Table you want to consider and click OK once confirmed
confirmSelection

Once you confirm, you’re Excel data will look like this which is correctly formatted into a Table –
formattedTable

 

Reading the Table

Now that you’re set, you should be able to read the Excel file’s Table which you can connect to.
tableAppeared

Hope this quick tip helps!!

 

Create new Sandbox and copy Production over to it in PowerPlatform Admin Center

This is one of the standard approaches if you want to copy over a Production instance over to a Sandbox one. Most common scenarios being when you’ve on-boarded a new client to Dynamics 365 / PowerPlatform and you’re nearing Go Live for the first time!

You need a Sandbox to then follow new customization on the Sandbox and avoid doing anything on the Production. Here’s how you copy over from Production to Sandbox!

 

Creating a Sandbox

  1. Create a new Environment by clicking on the +New button as below
    newButton.png
  2. Now, you can directly create a new Sandbox environment in the PowerPlatform Admin Center (https://admin.powerplatform.microsoft.com/environments)
    Remember: Both the source and target environments need to be in the same region to copy.
    createSandbox.png
  3. Additionally, I’ve selected the Create a Database option too since I want to speed up the process.
    addingDatabase.png
    Note that you can chose which all apps you want to deploy if you chose Enable Dynamics 365 apps

And that’s it. You’ll need to wait for some time until this is processed!

If you’re also looking to create a Database explicitly for an existing environment using a previous method, you can check this post – Create new CDS Environment and Database quickly from PowerApps Admin Center

While this happens in the background, you can see the message on the Environments section on the Power Platform Admin Center
preparing.png

 

And upon completion, you’ll see the below message
completedCreation.png

Copying From Production to Sandbox

Next step is to copy over the Production to the newly created Sandbox environment.

  1. Select the Production environment you want to copy over and look at the ribbon, you’ll see a copy button.
    copyButton.png
  2. Once you click on the Copy, you’ll be asked about the target environment, chose the created Sandbox.
    selectTarget.png
  3. Once you confirm, the copying process will start. And you’ll be taken to this page which tells you what stage the process is in –
    currentProcess.png
  4. Once all the copying is completed, this notification will appear. Now, the next step is to turn off Administration Mode. Click on settings link as shown below by arrow.
    copySuccess.png
  5. Once you flick the switch and Save, Administration Mode will be disabled letting others to log in as well. Additionally, now we have the option to keep Background Operations On as well while keeping Administration Mode On as well.
    disableAdminMode.png

Now, you are all set. Hope this helps!

Approval Process using Power Automate

Approvals have been around for quite some time now in Power Automate. Let’s look at the simplest example of how we can make use of Approvals in Flow / Power Automate and then you let your imagination and creativity take over!

Scenario

For the sake of simplicity, I have a custom entity called Request where users submit a Request and the Approval simply has to Approve/Reject.
simpleRequestRecord.png

The Approved/Reject status should be set in Dynamics 365 accordingly. Simple!

Power Automate for Approval

And then, my Power Automate looks like this –

  1. I will trigger this off the CDS connector on create of the Request record and then select Approvals in the next step.
    approvalConnector
  2. The Type of Approval selection is asked.
    typeOfApprova
  3. And my Approval body is simple, just providing the basic details and whom the Approval request should go to. In this case, Kuldeep Gupta
    approvalBody.png
  4. In the next Condition step, based on whether the Outcome is Approve or not, I’ll simply update the record’s status to either Accepted or Rejected.
    condition.png
  5. If Yes, the following will execute
    Yes
  6. And if No, then the below
    No

That’s it. Let’s see it in action!

Approval Process

  1. Let’s say Priyesh has created a Request record in Dynamics
    simpleRequestRecord
  2. As I submit this request, an Email from Power Automate goes out to Kuldeep asking for approval. And right on the email itself, he can chose to Accept/Reject
    approvalReceived
  3. Let’s say the request was Accepted
    responseSubmitted.png
  4. The request will be Approved.
    approvedMessage.png
  5. And in Dynamics, the status of the record will be changed to Accepted as defined in the conditions.
    acceptedRecord.png

Hope this quick tutorial helps!