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.

https://azure.microsoft.com/en-us/services/cognitive-services/

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

https://azure.microsoft.com/en-us/services/cognitive-services/computer-vision/

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

Image = First(colPhoto).Url

Camera

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.

dataUriToBinary(triggerBody()[‘Createfile_FileContent’])

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

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!

 

Skills for the PowerApp developer

It seems to me that PowerApps will prove to be a game-changer by enabling businesses and organisations to build bespoke apps designed to meet very specific needs.

The curious thing about PowerApps is that the product is pretty well where it needs to be as of today but the major blocker for a global revolution is that there simply aren’t enough people out there with anything like the skills that they would need to be able to build robust business product.

So let’s assume that you can’t buy in PowerApps skills or maybe that you have some but need to grow some more.  What would you be looking for in an individual to identify them as a potential PowerApps developer?  In this article I’m going to outline some of the skills that I would be looking for when identifying candidates with the potential to be high performers.

Excel

It feels kind of strange to start with a product rather than personal skills but in this case the Excel formula structure and Excel cell construction is so closely related to that of PowerApps that is the number 1 skill.

The Excel and PowerApps teams work closely together so that any new formulas created are aligned to each other.  With this in mind this also opens the door to the many years of formulas created by individuals within excel that can theoretically be borrowed or referenced to enhance a PowerApp.

Maths

PowerApps is the product that is the most mathematical that I’ve ever seen.  Variables can be easily created that can be used in an algebraic fashion.  X and Y properties exist to govern the position of everything that you see on a screen.

Empathy

You need to be able to consider your products from the perspective of other users.  If people don’t like your product they won’t use it, and you should be aiming for them to love them.

Logic

To my mind there are 2 kinds of logic.  Firstly, the more mathematical/excel based ‘If X=1 to this otherwise do that’ and secondly there is the type of logic where you put yourself in the shoes of a user or administrator and be able to see whether or not a form (as in business world this is the most likely application) has a logical flow.

Design

Having an eye for design is a skill people have to a greater or lesser extent.  To be fair it doesn’t come naturally to me, but I do know that from making lots of products some designs work better than others and it is a skill that can be learned.

Initiative

PowerApps won’t go to you, you have to go to PowerApps.  If you create a blank app it will stay blank until you do something.  Additionally, many technical solutions may require techniques that feel like work-arounds mainly because the problems you have been facing haven’t been faced before, so looking them up on Google won’t necessarily yield any results.

Lifelong Learning

The product is ready, but is changing all the time.  Good sources for keeping up to date are twitter and the PowerApps blog, but even the latter tend to focus on ‘big’ updates whereas some of smaller adjustments can still be game changers.  Keep up with it.  I’ll be honest in saying that there are times when staying at the cutting edge can be difficult to manage versus traditional tools and skills that stay very similar over long periods of time.

Perseverance

Some problems will require high levels of determination to find the exact syntax you need to solve your problem and when those fail you may need to pull back stick your head up and work out if there ways around the problem or if the items is even needed (i.e. do you really need to collect the data at all or is it a nice to have)

Patience

Not necessarily my forte, but patience may be required of yourself as you may not have the skills that you need at your fingertips and similarly the same may be true of those around you.  You’ll also need a level of patience on the part of your sponsors or users.  I can almost guarantee that unless they are very familiar with digital form building you may produce a product to the exact specification requested but nevertheless you, and they, know that it’s not quite right and that adjustments, sometimes significant may be required.

Use the community

The PowerApps community at this stage is currently populate by a relatively small but passionate group of individuals building highly imaginative solutions designed to stretch the product.  Make use of these by joining https://powerusers.microsoft.com, follow people on twitter posting using the #powerapps or @PowerApps references.  By all means take a look at my youtube channel www.youtube.com/dataspinners and don’t forget to join https://dynamics365society.uk which contains a PowerApps bank that you can make use of once you sign up (for free).

Go on a course

Personally, I’m quite happy with an online course as typically these are completed over a longer period of time which for me is a better way of allowing the learning to sink in.  The best single free resource is https://courses.edx.org where DAT207x is a very useful starting point.  You can search up courses run in a classroom setting, but you will need to ensure that you invest time in utilitizing the product one you’ve completed it as otherwise you’ll lose your knowledge quite quickly.

Concluding remarks

This article was intended for hirers or individuals trying to make some sense as to the range skills needed for PowerApps excellence.  Hopefully, it isn’t too daunting.  Whatever you do, start small but build usable solutions.  This particular tool offers us astonishing scope for us to run our businesses in efficient ways and the more we can grow as a community the closer we will all get to a culture of efficiency the impact of which may be widespread, more operations, better scheduling less wastage all by putting the right information in front of the right people at the right time.

 

 

lookup fields when referencing Common Data Service through Canvass Apps

Recently, after attempting to build a canvass app connected to CDS I ran into a whole host off issues when it came to lookups. Well, it seems as if there is a solution now. I don’t know if this is new functionality of I’ve somehow always missed this… but hopefully this will help some of you out when Building CDS connected Canvass Apps.

The scenario here is that I manage a bunch of vehicles, contacts and policies in CDS. The important thing to remember here is that there are lookups on pretty much each of the entities referring to the related entities. The ERD (in a very basic format) looks like this:

The issue I was having on my Canvass app was that when I wanted to create a new inspection, I wasn’t able to select the vehicle record. There were a few issues; In most cases I just got the vehicle record GUID and in some cases the lookup field just came up as blank (not sure why).

The below screen shows a “Form Screen” that is connected to the inspection entity in the CDS.

To get the lookup working, simply select the field within the form to highlight the associated properties.

Select the actual associated data card within the field to show the properties.

You will see the option to select fields within the associated entity. These fields will be the ones that are then made available to the user when interacting with the lookup.

Finally, enjoy your newly configured Lookup field 🙂

 

PowerApps – Start Up Parameters

This is a quick intro and awareness blog post for the Startup Parameters functionality for Canvas Apps – I hope to do a scenario based instructional guide soon!

Did you know you can configure the behaviour of an app upon startup? Well you can :-D! This can be useful for many reasons – one being that you can configure a Flow to send an email upon record change which can send an email to a user that opens the app up on that particular record (using ‘OnChange’ functionality – this could be great for WorkFlow related applications).

If you go to the first Screen in the screens list you’ll notice within the Advanced properties area that an “OnStart” box is available. This is highlighted in the image below. This allows us to run a formula when the app starts:

From here you can set various formulas- whether it be navigation dependant on the values of certain records (e.g. if a records status has changed you may wish for the users attention to be drawn to the record).