A weird little Option Set Error

The other day I was getting this weird little error when building a canvas app. Basically, all of my CDS Optionsets just randomly stopped working.

I hadn’t actually realised that I had left the “Experimental Connector” setting on while testing out the lookups. I think there must have been some sort of update. Pop into File | App Settings | Advanced Settings and turn of that little toggle.

I hope this helps someone out because I had a mild panic 😉

Making PowerApps accessible

One item I have seen overlooked in PowerApps is the functionality around the “App Checker” ….”But William I use the App checker”…. I do not mean the formula app checker I am referring the “Accessibility” checker shown in the image below:


It is prodigiously important when creating apps, well anything actually, that it is made available for ALL people – this includes those that may have issues with hearing, sight and other impairments. Jenny Lay-Furie provided us with an absolutely phenomenal presentation on accessibility and how Microsoft have helped, and continue to help, many people from all walks of life live well their life!

PowerApps has an accessibility checker (shown in the image above) which I implore you to monitor when creating apps as this will help you fine tune object for accessibility that you may not have thought of such things like ‘Tab Stops’ – those who have to interact with your app using a keyboard will need this functionality to be set up.

The following items are crucial for accessibility:

  • Layout and Colour
  • Keyboard Support
  • Screen Reader Support
  • Multimedia captions

Now due to time I do not have time to write out my guide to improving accessibility but fortunately I do not have too as Microsoft have provided us with a brilliant PowerApps focused guide which I have copied below or you can find the link here

Layout and color

Common sense and uncomplicated design helps apps be more accessible to all users. When doing heavy customization of apps take note of the below suggestions. PowerApps themes are by default accessible.

  • Ensure all elements are clearly visible and text is of sufficient size. All content must be easily read and understood by the naked eye.
  • Avoid using the visibility property of items to bring an element into view. If you need to show something conditionally, create the content in a new screen and navigate to it and back.
  • Ensure input elements are labeled on the screen. AccessibilityLabel property defines what the screen reader will announce.
  • If customizing colors, ensure the contrast of text:background is 4.5:1 or greater. Software tools that assist this process are readily available.
  • Ensure layout follows a logical flow when read top-bottom, left to right.

Keyboard support

When testing your app’s accessibility, ensure the app can be used with the keyboard only, the accessibility modes on iOS and Android, as well as navigated successfully with the screen reader enabled.

For keyboard navigation (with or without the screen reader) ensure that a logical order is followed when using the TAB key to navigate to input fields by setting each control’s TabIndex property:

  • Label, Image, Icon, Shape contols – if they represent interactive elements (i.e.buttons) set TabIndex to 0; if they are decorative elements or text, set TabIndex to -1.
  • Avoid setting tab index higher than zero.

Screen reader support

The following software combinations are the supported recommendations for consuming PowerApps with a screen reader:

  • Windows: Edge / Narrator
  • macOS: Safari / VoiceOver
  • Android: PowerApps app / Talkback
  • iOS: PowerApps app / VoiceOver

To ensure a satisfying experience with the screen reader it is recommended to:

  • Ensure all input controls have the AccessibilityLabel property set.
  • For images set AccessibilityLabel to an appropriate description.
    • If a picture is not used as a button or a link (i.e. icon is there just for the decoration) and should not be read by the screen reader, make sure the AccessibilityLabel is empty or not set.
    • If a picture or an icon is used as a button, then set TabIndex to 0 and AccessibilityLabel to the link description.


Ensure all videos are captioned and a transcript of all audio recordings is available to the user. Video control suppports closed captions in WebVTT format via the ClosedCaptionsUrl property.

Note that with the screen reader enabled, Timer does not announce button text, but how much time has passed. Announcements can’t be turned off, even if timer is hidden with low opacity.

Working with signatures

If you have a signature field that uses the PenInput control you need to enable an alternative method of signature input. The recommended way is to show a TextInput control where a user can type their name. Ensure the signing instructions are placed in the AccessibilityLabel property and the control is placed close to the Pen input – to the right or immediately below.



Get the logged in users Dynamics user record ID in a Canvas PowerApp

When working with a canvas PowerApp that integrates into Dynamics 365, you occasionally need the current users’ Dynamics user GUID. This could be used to populate lookup references on the various records within Dynamics.

The user details provided by the User function within a Canvas app relates to the Office 365 user account of the logged in user. We know that for a single user, who has access to multiple Dynamics environments, there is no guarantee that their Dynamics user GUID would be the same in those environments. The Office 365 account/credentials used to access these various environments is the same however. With this in mind, this is how I get the logged in users Dynamics GUID.

  1.  Create a data source connecting to the Dynamics Users entity
  2.  Get the current logged in users’ profile, using the PowerApps user function, and create a variable placeholder(considered best practice to store it in a variable):alt
  3. Query the User data source, created from Step 1, and filter on matching the domain name on the user record to the current users’ email address and return the ‘systemuserid’ property i.e the user’s Dynamics 365 user GUID


You can then add a label, for testing purposes, on your canvas app and bind the text to the variable above to ensure that it’s worked correctly!

This has always worked for me but I’m keen to know how others have catered for this scenario so if you have done it before or have some ideas, let me know!

Where does CE PSA fit if I have Finance and Operations?

Updated last: 23/12/2018

This is a live blog post that will be updated with changes that are applied to the application – I’ll also update it with input from the community too. 

Right, I thought it’d be best to write a quick post on this topic as it is a question I receive quite regularly which is along the lines of…. “Hey Will, I see you’ve been working on Customer Engagement PSA – I don’t really understands how that would fit in with an organisation that has Finance and Operations system or at all”.  Then I take a deep breath and I say something along these lines…

(There are a few version of this response depending on what the business does)

PSA flow:

What we must remember is PSA is there to ultimately help the prospect to cash process, but hey we hear and read “Prospect to Cash” thrown around a lot and it doesn’t help explain anything, what I mean with this is as follows;

  1. the ability to turn someone you may have been in contact with to a Lead
  2. then qualify said Lead to an Opportunity
    1. During the opportunity process you will start, hopefully, creating a proposal and to really provide a precise as can be quote it is best to create a project with a thorough work break-down structure along with associated costs (expenses, role costs etc.) then to import this structure along with associated costs into the contract to provide a quote.
  3. Submit the quote to the customer and hopefully mark it as won – or maybe you may have to create another until you ultimately, hopefully, win
  4. The quote then turns into an Order/Contract with an associated project and all this richness can then be synced across to Finance and Operations – the contract will be pulled across along with the associated project details; project name, project contract associated, actual start date, work breakdown structure (if you’ve assigned resources then these can be brought across too) etc.

Where to place your personnel in a PSA & FinOps stack implementation:

Now the more interesting piece is where do you ask your employees to enter their Time and Expenses, where do you ask the Project Manager to carry out their tasks and where do you ask the Resourcing Manager to sit?

Now we must remember PSA – IS NOT A FINANCE SYSTEM, IT IS NOT TRYING TO BE A FINANCE SYSTEM, IT’S PURPOSE IS NOT TO DEAL WITH ANYTHING RELATED TO ACCOUNTING AND FINANCE, the purpose is to provide a buffer between account management and back office tasks such as the accounts department and to provide more granularity to items such as quoting (remember this is from a perspective when Finance & Operations exists as part of the implementation).

However, what it does do well is to provide the ability to price up quotes thoroughly thanks to this project creation functionality and it also performs some project processes well that can then be handed over for further processing.

Now let’s take a quick dive into where to place the Project Managers, Employees and Resourcing Managers.

Employees– now, personally, as an employee I prefer the user interface in CE  for entering Timesheets and Expenses rather than Finance and Operations – it is more aesthetically pleasing. However, there are limitations around expenses – there are no expense policies out of the box so this would need to be provided via customisation.

Along with other workflow requirements, and let’s face it expense workflows (from my experience implementing systems, especially in global systems) can be incredibly complex which will also be better suited for Finance and Operations as PSA only allows one level approval when in reality multi-level and conditions are required.

PSA does have the ability to bring in the hours you entered last week, or the appointments/projects you’ve been assigned in the resource scheduler but Finance and Operations allows this too.

What I’m getting at here is it is best to stick with Finance and Operations and if you wish to make the user interface more kinder on the eyes then use the mobile application functionality or throw together a PowerApp.

Resourcing Manager– now this is where I lean towards PSA, as long as you sync proficiency models, skills, characteristics, roles, cost prices, sales prices etc. between Finance and Operations and CE PSA (or if you’re company is using talent then have a network of the three Talent>PSA>FinOps) then I much prefer the Scheduling board within PSA and the way you submit requests to be fulfilled. Look at the screenshot below and how glorious it is, colours, pictures, charts – PSA has it all (you can even use the map functionality- living the dream)!

Project Manager– now this depends on the organisation, PSA allows the PM to manage their project team, monitor cost absorption (effort tracking as well), look at project estimates, submit resourcing requests (all this also exists within Finance and Operations)- but if you want your PM to also invoice clients, perform a more advanced level of WIP adjustments then this role will suit Finance and Operations.

Also the dashboards are not that brilliant in PSA – yes you can use PowerBI embedded functionality but Finance and Operations has brilliant out of the box reports, as well as enhanced areas such as the Project Manager Workspace (provides an overview of their project related activities as well as allows them to initiate their most frequent tasks) as well as PowerBI integration – soooooo…..

General Finance points related to PSA functionality: PSA does let you push through flexible journals, you can export actuals (or integrate them), you can adjust actuals (as well as few adjustment histories) and you can invoice through funding sources and billing rules (not as advanced as Finance and Operations) set out on the project contract.

Important to note that there is no out of the box functionality to tie Purchase Orders to projects, thus this is not wrapped up and summed into items such as const consumption etc. a journal can be used for this in the mean time but creating the PO in FinOps and then pushing that across as a journal to keep track in PSA may be one route (dependant on if your PMs sit there if not it really does not matter). Furthermore to this there is no commitment or encumbrance accounting to keep track of the financial health of a project with regards to Purchase Orders.

Another key part of project management is budget control. Unfortunately there is no budget control that sits within PSA only a cost consumption meter so this will have to be validated/tracked through Finance & Operations but the validation will only occur post transaction if you choose to leave T&E within PSA (not a wise move).


So let’s conclude – PSA DOES HAVE A FIT within the full suite of Dynamics 365 and for organisations that uses both CE and Finance and Operations if it is used for it’s intended purpose which in my eyes is to assist with quoting proposals and assisting with some of the non-accounting project processes to allow that smooth transition from sales to delivery.

And one more thing….. if the company DOES NOT have finance and operations but another Accounting system that does not include project management and they also require a sales system then PSA is a great fit!!!!


De-mystifying PowerApps Errors

Disclaimer: These are compilations of error and resolutions based on my observation and experience. If they are any other different errors or other methods to resolve them, feel free to add them to in the comments.

One challenge I faced when I started my PowerApps journey is understanding errors and how to solve them. So I thought I would do a write up that would hopefully be useful to new Power-Appers to identify and solve errors when making apps.

Let’s start with what to do when you seen red indicators (errors) on your PowerApps screen.

1.Firstly, don’t panic!

They might be 1 or 10 errors on your screen but all of it could be caused by only one or two glitches in your formulas.

2. AppChecker is your best friend!,

It is the ‘plug’ symbol on the right hand corner of the PowerApps builder. If there is a red dot on your App Checker it means they are one or more error somewhere on your form.


3. Open the App Checker.

Expand the Errors section in the App Checker to see the list of error summary and on which form the errors occur. If you click on it, it will direct you to the affected formula and it will be underlined by a ‘red worm’

From the screenshot above, you can see that there are 16 errors are on Penguin Land form and my first error is related to the formula Set(lost,2x,LostItem2,x); (with red worms underneath it). From here we know that the error could be on that formula or the one before it depending on the error message.

4. Again, don’t panic and feel intimidated if you see massive amounts of errors. Because all the formulas are related to one another, solving first few of it will resolve all the other errors.

5. Work on your errors using Top – Down approach

Always start work from the first error in the list. Normally the errors in the bottom is related to the ones above so it might be resolved once the above one is fix.

6. Read the error details

To get more information on the error, click on the arrow beside the error. The arrow appears only when you hover over the error. The error description will normally give you a better idea on how to solve the problem.


Now that you know where to find the errors, let’s look at some of the errors and their causes and resolutions. From my experience, below are some of the common errors that can be easily avoided and resolved

  1. Cause: Syntax error – Missing brackets “()” or curly brackets “{}”.

Resolution: Everything open brackets or curly brackets must be closed. Easiest way is to count the number of open brackets and close brackets. They must be equal number

2. Cause – Syntax error – Missing operators. Example, a “;” or “&&” is missing from a formula when it is required.

Resolution: Be aware of the syntax. Always remember to put “;” at the end of every formula unless it is the last formula for that particular function. (eg: On Select)

4. Cause: The required number of parameters in the called function is not met. It could also cause my missing operator that separates the input of the function.

Example: Set(startTimerItemsAppear). This is an issue because Set function expects 2 argument but because the “,” is missing, the system reads it as one instead of 2. The correct formula would be Set(startTimerItemsAppear,3)

The detailed error will inform how many arguments is required for that affected formula.

Resolution: As you enter your formula into the Formula bar, PowerApps will tell you the inputs of the function. Another way is to refer to the PowerApps Bible for the required or optional inputs of a function.

5. Cause: The variable used in a formula (except Set() and UpdateContext()) has not being declared

Resolution: I always like to declare the parameters or variables on the Visible function of either the First Screen or affected screen. Depending on the purpose, use either Set() or UpdateContext() to declare a variable.

Now that’s all for now. I hope it will handy for new Power-Appers to find and resolve any issues in your formulas.

Happy Power-Apping 🙂

Dynamics 365 Saturday – Dublin 2018

The Dynamics 365 Saturday 2018 took place in Microsoft Dublin (One Microsoft Place) and was hosted by Janet Robb and her Team. Congratulations on Janet for a great work on organising such well-structured event.

Lots of cool sessions provided, as well as workshops for PowerApps and CRM for the ones who were interested.


Even though I’m not a Dynamics consultant, to me as a SharePoint/Office 365 Consultant, it was very cool to see how the same stack of products (Power platform + Azure) that we use on top of SharePoint/Office 365 is been adopted in the Dynamics Community as well. As mentioned on the keynote, for all D365 specialists it’s been a constant work to keep up to date with tons of new features been released (I can assure that for Office 365 as well), and an event like this helps to connect the community and to get a summarized overview of what’s been there in the market.

Special thanks to our Dynamics Guys who came from the UK and smashed in their presentations:

Chris Huntingford – Dynamics 365 for Marketing

Kylie Hill – My Favorite new D365 Features

It was a pleasure to meet those legends in person.

Also, the interaction from the community posting and sharing content and pictures on social media (Hashtag #365SatDub) was really nice, cool to see such engagement and nice pictures from everyone on Linkedin and Twitter.

Looking forward to the next #365SatDub!!

Demystifying the Common Data Service & PowerApps – Hackathon Summary

On the 28th of July, Those Dynamics Guys held a Hackathon to help people demystify the Common Data Service and PowerApps. The goal of the Hackathon was to educate the audience in various elements of the Common Data Service and PowerApps and then provide them with a task that required various levels of technical and business skills to complete.

The hackathon was timed in such a way that it took place right after Microsoft Inspire and The Business Applications Summit, where various elements of the Microsoft technology were focused on. The Microsoft Power Platform got a particularly large amount of focus due to the nature of the product and how it is perceived to change the very way people within the Microsoft family (Employees, partners, ISVs) work.

There is unfortunately no way for me to make this a short post, buckle up…. This will get interesting.

For those of you that are unfamiliar with terms such as “PowerApps” and “Power Platform”, allow me to take this moment to briefly educate you. For those of you that are familiar… Skip the section full of product definitions and go on to the Hackathon bit.

The Section Full Of Product Definitions

Microsoft Power Platform is the term used to describe the Microsoft Business Application platform which includes PowerApps, PowerBI, Flow, the Common Data Service (CDS) and a series of gateways & connectors. This platform is used to customise both Office 365 and Dynamics 365 and utilises Microsoft Azure. For the less technical people, it is a platform that enables the creation of relevant applications across all areas of a business and promotes their utilisation by all types of users.

PowerApps is the term used to describe a service within the Microsoft Power Platform that enables users the ability to build and use business applications that connect you to data and work across various devices without the need for expensive software development. Basically, you can build AWESOME looking applications that work on all your devices and connect you to the data and functionality you need in order to do your job more effectively.

The Hackathon bit

On a very sunny Saturday just over 60 people from Microsoft, Various partners, users and students gathered at the Microsoft Reactor in Shoreditch to learn, teach and evangelise all about Microsoft PowerApps and the Common Data Service. They came early and enthusiastic about getting to grips with this amazing technology.

The participants were split into teams that were branded by a certain colour: green, Red, Pink, Yellow, Brown, Orange, Blue and Purple. The participants were split based on a skills survey that was filled in prior to the event. Unfortunately, some people did not arrive, which left some teams with only four people. A MASSIVE thanks to those that did arrive and give up their Saturday!

Each team was assigned a Power Platform environment with PowerApps, PowerBI and Flow enabled, as well as a configured instance of the Common data service that was fully populated with data. There was also an example of a model driven application that was linked to the demo scenario positioned below.

The Presentations

The teams were taken through various elements of the technology by some amazing folks from Microsoft. Bruce Nicholson, Anna Waight, David Reid and Craig Bird. They absolutely wowed the attendees with the Microsoft roadmap, some amazing technology and kick-ass demonstrations of what the tech could do.

My partners in crime, Will Dorrington and Kyle Hill did some fantastic demonstrations of what could be done with Canvass Apps and Model Driven Apps, which gave the audience an idea of what was possible when utilising Microsoft Power Platform to create business relevant applications.

Anna and Bruce did a stunning presentation opening up the event, talking about the Power Platform Roadmap and how it fits into the different partner communities such as partner and user. The two of them really set the mood and tone of a very interactive ad exciting day.

I took the teams through a scenario based solution that surfaced data and functionality to various user types utilising all elements of the Power Platform. The demonstration of this process can be found on the PowerApps Bank.

David Reid came on next with a brilliant presentation on the Common Data Service and how it is technically structured, as well as how to add new entities, views, fields and more. David also dipped his toes into how the CDS surfaces data within a Model Driven App. I’m sure David’s brain just oozes excellence! Download David’s presentation HERE.

Kyle came on next with a pretty sweet looking model driven app and spoke about how the data could be surfaced from the CDS within a functionally rich user interface that promotes process driven interactions with the data. Poor Kyle was massively jet lagged after just getting back from BusApps summit, so we had to heckle him as much as possible. You can download the CDS Data Structure and Model Driven App HERE. You can download instructions on how to setup your own environment with all of the relevant data HERE.

Next on were Craig and Will, which was a riot! They explored the deep functionality available within canvass apps and how data could be surfaced from CDS as well as LOADS of other data sources. This was coupled with some pretty alternative functionality, shown in the form of different connectors to different apps and data sources. There is an example Road Side Assist Canvass App that is connected to the CDS which can be downloaded HERE.

The concept was around Road Side Assistance and how you could use services within Power Platform to handle a breakdown process. The concept was very light touch due to the fact that the participants didn’t have a lot of time to form a bond and work together as a team. This is also why a large amount of the configuration was also pre-built. Road Side Assist was also selected because it’s a common scenario and most participants understood the concept as well as how the process could work, without having too much explained to them.

The Judging Criteria

Based on what was demonstrated, the goals were set for the afternoon where the participants had to deliver an innovative solution that worked with the data structure provided and show how Microsoft Power Platform could assist in the management of vehicle breakdown calls. There were two key criteria that the judges were looking for:

  1. Team work: How well did the members of the team work together to generate a cohesive story and solution.
  2. Innovation: What did teams do to build on the provided structure? How did they leverage the platform?

A massive thanks to the Hitachi Solutions team who came through and did the judging.

Sajeel Afzal

David Singh

Jesmond Giordmaina

Let’s hack Stuff!!!

The teams had lunch and got cracking during the lunch break on networking, planning and even starting the build on some of their solutions. After lunch the teams only had 3 hours to build something amazing… which THEY DID! In fact, some of the stuff that came out of the different groups was amazing. The Microsoft and Those Dynamics guys team members were roaming the floor acting as support for all questions, both technical and non-technical. The teams really put us to the test with a number of questions… Which means that the boundaries of the product were really pushed!

There were some REALLY awesome apps that were created with a massive focus on utilising the canvass apps to surface data and functionality. All the teams had very well thought out stories and themes for their apps, which made the judging really tough.

We saw everything from bright pink user interfaces (WHICH WAS AWESOME) to an actual integration to the DVLA (WTF…that’s crazy). Teams were using all sorts of combinations like Microsoft Flow, PowerBI, Microsoft Forms, SharePoint, Twilio SMS and loads more. Basically, it was a tech fest! 😀

Ultimately, there was a lot going on in the room. Lots of chatting, disagreeing (in that cuddly, healthy way), lots of tech talk and many flow diagrams going on.

Speed Dating for Apps

After the countdown clock had completed its cycle each team then had 5 min on stage to show us their awesomeness. Each team showed no fear, got up and spoke about what they had done. They told the judges their story and showed us evidence of what they had built. I gotta say, most of them put me to shame from a demo point of view. It was just amazing to see all these proud new “App Parents” showing us how cool their creations were. I almost shed a few tears of joy 😀

Without handing out participation medals, I need to say that each team smashed it! Each team had both similar functionality and functionality that really stood out from the rest of the teams. Some were technically stronger than others and some had a better story.

You can download each teams model & canvass applications from the Those Dynamics Guys PowerApp bank!

Wrap-up, high fives and Prizes

After all the presentations were done Sajeel Afzal from Hitachi Solutions, our primary sponsor, came up and spoke a bit about the magic he had seen happen in the room and how proud he and Hitachi were to be part of such a collaborative event. He pointed out that no matter if you were a partner, user or student, everyone came together to participate in a very cool event, which is what Hitachi Solutions is about.

After a VERY tough decision the judges finally decided on who the winner was. Taking into account the two key criteria, the judges selected the RED team as the winners. They were selected because they worked together as a cohesive unit, they had a strong plan, they had a great story, they were able to present a solution that utilised the Power Platform in an innovative way through the creation of a VERY strong canvass app and Model driven app. The red team also had three students in the team that had never even seen the product stack before, which just goes to show that the citizen developer tag given to PowerApps is a real thing. Great job RED team.

The red team won a Philips hue starter set each and a sweet award which can be used as a paper wright, door stop, weapon and many other useful things.

There were two other awards that were given out to two members of the blue team who the judges felt were incredibly collaborative and worked hard at bringing their teams together. Incidentally, this team had the highest number of members… So a great job to:

Ryan Mclean

Laura Graham Brown

And finally, the social award went to Marcus Mattus for his incredible contribution on social media and getting our event out there to the rest of the world.

Ultimately, what we were hoping to achieve during the hackathon was to create that “Penny Drop” moment for all types of users, which was to realise that this platform is so robust and dynamic; the sky is the limit here. Together, we can create almost anything! We don’t all need to be software developers to do this. People from all backgrounds can get stuck in here and enjoy it. It is as simple or as complicated as your knowledge and skill level allows.



We finished off the day at a pub in Shoreditch called Flight Club where many delicious pints were consumed and many high fives and handshakes were portioned out amongst the participants for a job well done.

A Big Thanks is in Order

To each and every participant, thank you so much for giving up your Saturday to come and play with technology and learn about how epic the Microsoft product stack really is!

THANK YOU to Hitachi Solutions UK for sponsoring this event. We could not have done this without you. You were amazing in fronting the cash needed to do this, putting up with my nonsense and must rolling with the event because you believe it grows the community and the perception of the product and how it can be used. You are amazing!

To The Cognitive Group… Thanks for the delicious drinkies and snacks at the bar at the very end. They were needed! AND for the amazing VR headset that went to Ryan… he loves it!!

Anna, Bruce, David and Craig from Microsoft, you were unbelievable! Thank you so much for giving up your time to us and for sharing all of your amazingness. It was amazing having you there representing such a strong brand.

The Microsoft Reactor team; a massive thanks for all of your hard work and for helping us through the event process. You were fantastic, the venue was fantastic and you were incredibly hospitable. Amazing job.

To the TDG Team… great job boys! Hugs! 😀

Microsoft Cognitive Services with PowerApps – Snap It and Translate

Microsoft cognitive services gives rich Artificial Capabilities into the applications. These capabilities can be used with PowerApps when building Apps. Cognitive services can help to make your Apps Smarter.

Artificial Intelligence and Data science go in hand in hand. Microsoft packaged in all capabilities and packages those together to create easy to consume API’s such as Cognitive Services and Bot Framework.

Microsoft provides 23 Cognitive Services API’s. It’s categorises into five areas namely Vision, Speech, Language, Knowledge and Search. For the experiment below I have used Computer Vision & Microsoft Translator API’s. It helps to detect text content from an image using OCR (Optical Character Recognition) & Translate text to different languages.

You can find further information on cognitive services information by following link below.


When creating Connections inside PowerApps would require getting an Account Key and Site URL. Use below link to get it.


If you do not have an Azure Account yet you can use the 7-day trial to get started.

Below Image depicts the simple flow of the actions involved with the app.

Set properties as below.


Image = First(colPhoto).Url


Onselect = ClearCollect(colPhoto,Camera1.Photo)

Text BOX

Text = varOCR

Overflow = Overflow.Scroll

Capture Text Button

Onselect = Set(varOCR,ImageOCR.Run(First(colPhoto).Url).ocrtext)

To Translate

Text = MicrosoftTranslator.Translate(varOCR,Dropdown1.Selected.Value)

Use the MS flow to recognize the Optical Character Recognition.

Special Note: Images can be saved in different formats. Computer Vision API is looking for binary format of the Image therefore below expression must be used in the Image Content box in OCR to Text to convert to binary format.


Now you can start creating your own Translator Buddy app. 😊

Ideas on Improving Apps UX using PowerApps Animation

Few people have asked me what is the use case for PowerApps Animations. Answer is lots! Gamification, leisure apps, business apps or even when creating graphs, charts or forms to be embed into other application e.g Sharepoint and Dynamics 365 and many many more.

But today I want to discuss how creating Animations can be used to improve quality of an app’s user experience (UX). For many of us who have been in the Dynamics space for a long time, we are used to static forms. But when we design App forms it doesn’t need to be static, it can and should be interactive and this applies to any type of Apps.

Disclamer: I am not an UI/UX expert or designer but my opinion is just solely based on my experience playing with Apps on my beloved Iphone

Below are some examples to give you some idea using animations to make an app looks more neat, sleek, cool and user-friendly

1.Shortcut Menus


2. Interactive screen – making images or text appear/disappear


3. Countdown timer/Progress bar/spinner when load loads.


Example below is a countdown timer.

4. Lastly, let your imagination run wild. Your creativity and imagination is your limit.

What do you think?

Happy Power-apping!

Translator Buddy – PowerApp Capture and Translate

If you ever wonder CAN I SNAP-IT & TRANSLATE  text on the spot. Here is the Video of the “Translator Buddy” PowerApp which I (Kasun) created using PowerApps and MS Flow. Here I’m Translating text from “Beginning DAX with Power BI” book from Phil Seamark This simply shows the power of PowerPlatform and this is not difficult to do. Stay tuned for a further blog post on this.




Microsoft Translation Services – In a Canvass App

Some time back I saw Craig Bird from Microsoft do an amazing demonstration using Microsofts Translator Connector in a PowerApp. Honestly, I was blown away at how powerful this functionality is. The crazy part is, not a load of people even know about it.

I did this quick little Video recording of me testing this out. I was actually amazed! (If you prefer Youtube, click here.) I used it in a demo the next day and people really loved it.

If you get the time, I suggest you follow this step by step process, which shows you exactly how to achieve this awesomeness.

The one thing that I will say is that as cool as this is, I found that it needs to be baked properly into a larger application and have a story associated to it. In this scenario the app I created was a “Trade Show Application” that enabled users from company X the ability to interact with people from the trade show and capture contacts and leads. The translation functionality was used when the user was interacting with someone from a different country that did not speak English very well.

Anyway, thought that I’d share that little nugget of awesome with you!

Happy PowerApping!