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 your own Insight Cards with Power Automate in Sales Insights

Sales Insight’s cards are not just restricted by what is provided by Sales Insights for your Org, you can make your own using Power Automate too. Here’s how –

Requirements

These features aren’t free under Free Features of Sales Insights. Sales Insights license is for $50/user/month. More info on licensing here – Sales Insights Licensing

For free features, only pre-defined Insight Cards show up. You don’t get to create your Cards. To try this feature, you can create a 30-day Sales Insight trial.

Scenario

Let’s say you have a custom field on the Account called as Renewal Date which holds a Date of renewal for an account. And you want to create an Insights card to show up whenever this date is within 5 days –
fieldOnForm

Create a new Insights Card using Power Automate

Let’s say you have Sales Insights already setup in your Org and you have moderate knowledge of Power Automate (formerly known as Flows)

  1. Navigate to Sales Insights settings in Sales Hub > Global Settings > under Assistant Studio, look for Home and you’ll see a button to Create a new Insight card.
    navigateToCards.png
  2. Since our requirement is a pretty common one and Power Automate has a template for it already, you can select one or even start from scratch.
    template
  3. Make sure all the permissions are correct and you’re set to modify a Power Automate Template (or create from scratch)
    permissions.png
  4. Let’s say you are making this run on a daily business during your non-business hours.

Little Tweak to store a Reminder Date in D365

I wanted to have a custom reference of the Reminder Date in my own way in D365 instead of making the Power Automate query more complex.
I’ve created a Calculated Date field for RenewalReminder to store date of 5 days before the Renewal Date and this will be maintained for all records.
renewalDateField
So that the field stores 5 days prior to the Renewal Date
fieldValue.png
(I’ve hidden it away in actual implementation later on)

In the past, I’ve implemented a similar scenario to store current date used for views in D365, reference Blog: Store ‘Today’s Date’ in a field to use in workflow conditions in D365 CE

Design Power Automate

Since we’ve chosen a template to get a reference from, feel free to remove/modify whatever you need to –

  1. Now, I want to Flow to be triggered every day at UTC midnight
    flowPart1
    Details: Every midnight, fetch me Accounts where I RenewalDate has passed so that selective Accounts will be queried, and then I want to create cards for those accounts in the next step.
    And I’m only comparing the RenewalReminder field value to the current date since it will run everyday
    dateConfig.png
  2. In the final step, for Each account, I’ll create a Card with the Account’s details which the user needs to see.
    createCard.png
    I’ve set some properties which are quite self-explanatory. I’ve made the Open button on the card to open the record itself.
    And I’ve also made the card to show up only until the Renewal Date. (Maybe setup a separate process for Accounts past renewal date)

    And that’s that! Your Power Automate is ready to create Insight Cards which remind you of an upcoming renewal

Seeing it Run

Now, every day when the Power Automate runs, it will create Insight cards for you and they’ll appear as you’ve configured them. In this case, For Alpine Ski House account, the Renewal Date is 20th Nov, so the card has started showing up since 5 days before the Renewal Date (Date stored in RenewalReminder for referencing, you can choose your own way to do so in Flows)
cardShowUp

Even in your Dashboards, since you’re the owner of the record and it’s set to show only to the owner, you’ll see it and clicking on the Open button will open the Account record itself
clickOpen.png

Hope this helps!!

Create new CDS Environment and Database quickly from PowerApps Admin Center

With the April 2019 Updates, you can straight way create new D365 instances right from the PowerPlatform Admin Center.

Create New Environment

Follow these steps to create your environment from PowerPlatform Admin Center

  1. Go to https://admin.powerapps.com/environments and you’ll see an option to create New Environment.
    createNew
  2. Fill suitable details and proceed. Also, check the last section in this blog to see the difference since I chose another region than my source/original tenant when I created the D365 Trial instance (It was North America).
    specs.png
  3. You’ll see the message once this is being created.
    creating
  4. Finally, once completed, you’ll see this message where you’ll be asked if you want to proceed to creating the database as well. I recommend to create the Database as well, this will save time.
    asksToCreateDatabase

Creating Database

Considering you came here from creating the environment itself rather than choosing to create a Database to an existing environment, we’ll see how we proceed from the last Create database section.

Once you select the Create database from point #4 in the above section, you’ll see be asked to select the preferences of the database.
selectCurrency

Once you select the Currency and Language, the creation of the database will take place
creatingCDSDatabase

Once done, you’ll see that the environment and database will appear in your list.
createdENV

When you open the environment, you’ll see that for a few moments, this is being provisioned.
provisioning
Once the message goes away, you’re all set!

Instance Region

Now, note that my CDS Environment is created in the Asia Pacific (APAC) Region.
asiaRegion
And I don’t see my other regions here because the URL I’m on is port.crm5.dynamics.com

crm5URL

Whereas my original D365 Instance that got created with this trial exists on the port.crm.dynamics.com Admin Center
crmURL

 

Hope this quick post helps! 🙂

Sending Image from Canvas PowerApps to SharePoint Document Library using Flows

One of the most common requirements is to upload images to SharePoint using PowerApps. From my learning from various sources, I’ll try to “demystify” my explanation to send/upload an image to SharePoint Document Library using Flows on my Canvas PowerApp.

Ingredients

Assuming you have the following things already  in place in PowerApps as well as in SharePoint

  1. PowerApps’ Camera/Image control and a Submit button. In my case, the image above is a camera so that I capture the image I want and the image below is the Image control to show me what I clicked.
    powerApp
  2. A SharePoint Document Library to record, say, Incidents.
    spDocLibrary
  3. We will get to the Submit button on the PowerApp once we create our Flow.

Flow

Let’s create a Flow to pick the Image from your PowerApp, convert it to binary and send it to the SharePoint Document Folder location called Incidents.

  1. Since we want to trigger the Flow from the PowerApps itself, we will select the trigger of the Flow as ‘From PowerApps’ and hit Create
    createFlow
  2. Once your Flow is ready, leave the first step of PowerApps because that’s the trigger. Add Step to create a SharePoint file and fill in the details of the Document Library you have created.
    createSPFile
  3. Fill in the FileContent as above. You’ll need this to be converted in the intermediate step after this.
  4. Now, you’ll need to add an additional step in between PowerApps and the Create SP File step as below. It will be a Compose action.
    addAction
  5. In Compose action, under Expression, select dataUriToBinary expression and make sure you open the bracket as well.
    dataUriToBinary
    toolTipHidden
  6. Now, go back to the Dynamic Content section and select the CreateFile_FileContent to complete the formula.
    fileContentAvailable
    completedFormula
  7. Click OK on the screenshot above and the formula should be set.
  8. Now, replace the File Content section to take in the Output of the Compose step.
    outputRecorded
  9. Save your Flow and your complete Flow should look like this.
    CompleteFlow
  10. I’m naming my Flow as ‘IncidentFlow’ so that I can identify it.
    incidentFlow

Adding the Flow to Submit button

Going back to the PowerApp, let’s Run this Flow on the selection of the Submit button and pass the image.

  1. Now, select the Submit button, and on the Formula bar, add the Flow you created, I named it IncidentRun. Select the same so that the Formula comes as IncidentRun.Run( for you to pass on the image.
    Now, pass the latest image on the collection i.e. the same image which is being displayed in the image control below.

    runFlowFormula

 

Running the App

I just ran the app on the desktop itself, you could do it from your phone too!
So I clicked on the Camera when I was ready, the image appeared in the image control and I that was what I wanted to upload. So I clicked on Submit button.
hittingSubmit

The flow was successful
FlowSuccessful

And my image was in SharePoint too!
imageUploaded

I know it is a lengthy post but I tried to summarize as much as possible. Make sure you have a way to uniquely name each file or else, the same file will be overridden.

Thank you!

 

Create your first PowerApp! Connect to SharePoint Online List

PowerPlatform is the next big thing in

PowerApps comes with several Dynamics 365 licenses and make sure you have been assigned one as well as below –
license

Navigate to https://web.powerapps.com/ to go to the Admin Center and here you can simply start working on your first app.

In this scenario, I want to be able to read from my SharePoint Online list and make decisions based on what data is in the List
spList

Build your PowerApp from data

  1. Among the options to create your app from either Canvas or Model-driven, I’ll chose to build one based on data which is a Canvas type of application.
    startFromData
  2. Now, I’ll chose SharePoint’s Phone layout since I want to connect to my SharePoint Online site to be able to read from my lists
    selectSPApp
  3. Now, since I already have selected SharePoint connector, I’ll be creating a new connection on the next page.
    createSPConnection
    Since this example is for SharePoint Online, I’ll select Connect directly (cloud services).
  4. Now, since I already had accessed the SharePoint Site, it appears in my list. You can either connect to a new Site from + New Connection button on the left-hand side or enter a new SharePoint Site in the URL and click GO. Or even select a recently visited one like I did –
    selectSPSiteFromRecent
  5. Then, choose your list
    chooseList
  6. And it takes a few moments to build out your App. And when it’s ready to be worked on, here’s what you get.
    appIsReady

Understanding your App Designer space

Won’t be covering much details on what each tool does, but wanted to share how things are placed –

  1. On the left-hand side, the App pages/components are divided into three main sections. (Obviously, you are free to add and modify more screens as needed)
    defaultTreeView
  2. You can add several controls on these screens
    insertTab
  3. And these controls/components can be adjusted from the right-hand side pane as below
    customizeProperties
  4. That’s basically the most of the App basics you need to know at this point. I’ll post more posts on that later. 🙂

Publishing Your App & Share

Presuming that your app is now ready to go, her’s what you can do in order to publish

  1. Navigate to File, give a suitable Name to your App.
    appName
  2. Move over to Save and Save your App.
    saveApp
  3. Once Saved, Share the App.
    shareThisApp
  4. Once you click on Share, you can get to Add users who will have access to this App and you can chose their permission level.
    shareWithUser
    permissionSelection

Running your first PowerApp

Assuming you have installed PowerApps on your device and logged in with your credentials, you’ll see the App as below

And you can start working on your App already

Hope this was quick. And then there’s a tremendous lot to be done with PowerApps and leveraging the PowerPlatform!