Power BI

PowerApps – limitations, requirements & configuration values

Here is some more great reference material lifted from Microsoft regarding PowerApps requirements, limitations and configuration values.

 

Supported platforms for running apps using the PowerApps app

Minimum required Recommended
iOS 9.3 or later iOS 10 or later with at least 2GB of RAM
Android 5 or later Android 7 or later with at least 4GB of RAM
Windows 8.1 or later (PC only) Windows 10 Fall Creators Update with at least 8 GB of RAM)

 

Supported browsers for running apps

Browser Operating system
Google Chrome (latest version)
(recommended)
Windows 7 SP1, 8.1, and 10
Android 5 or later
iOS 8 or later
macOS
Microsoft Edge (latest version)
(recommended)
Windows 10
Microsoft Internet Explorer 11 (with Compatibility View off) Windows 7 SP1, 8.1, and 10
Mozilla Firefox (latest version) Windows 7 SP1, 8.1, and 10
Android 5 or later
iOS 8 or later
macOS
Apple Safari (latest version) iOS 8 or later
macOS

 

Supported browsers for PowerApps Studio

Browser Operating system
Google Chrome (latest version)
(recommended)
Windows 7 SP1, 8.1, and 10
macOS
Microsoft Edge (latest version)
(recommended)
Windows 10
Microsoft Internet Explorer 11 (with Compatibility View off) Windows 7 SP1, 8.1, and 10

 

Request limits

These limits apply to each single outgoing request:

Name Limit
Timeout 180 Seconds
Retry attempts 4

Note

The retry value may vary. For certain error conditions, it’s not necessary to retry.

 

IP addresses

Requests from PowerApps use IP addresses that depend on the region of the environment that the app is in. We don’t publish fully qualified domain names available for PowerApps scenarios.

Calls made from an API connected through an app (for example, the SQL API or the SharePoint API) come from the IP address specified later in this topic.

You should use these addresses if, for example, you must whitelist IP addresses for an Azure SQL database.

Region Outbound IP
Asia 52.163.91.227, 52.163.89.40, 52.163.89.65, 52.163.95.29, 13.75.89.9, 13.75.91.198, 13.75.92.202, 13.75.92.124
Australia 13.77.7.172, 13.70.191.49, 13.70.189.7, 13.70.187.251, 13.70.82.210, 13.73.203.158, 13.73.207.42, 13.73.205.35
Canada 52.233.30.222, 52.233.30.148, 52.233.30.199, 52.233.29.254, 52.232.130.205, 52.229.126.118, 52.229.126.28, 52.229.123.56
Europe 52.166.241.149, 52.166.244.232, 52.166.245.173, 52.166.243.169, 40.69.45.126, 40.69.45.11, 40.69.45.93, 40.69.42.254
India 52.172.54.172, 52.172.55.107, 52.172.55.84, 52.172.51.70, 52.172.158.185, 52.172.159.100, 52.172.158.2, 52.172.155.245
Japan 104.214.137.186, 104.214.139.29, 104.214.140.23, 104.214.138.174, 13.78.85.193, 13.78.84.73, 13.78.85.200, 13.78.86.229
United States 104.43.232.28, 104.43.232.242, 104.43.235.249, 104.43.234.211, 52.160.93.247, 52.160.91.66, 52.160.92.131, 52.160.95.100, 40.117.101.91, 40.117.98.246, 40.117.101.120, 40.117.100.191
United States (Early Access) 52.161.26.191, 52.161.27.42, 52.161.29.40, 52.161.26.33, 13.66.213.240, 13.66.214.51, 13.66.210.166, 13.66.213.29

 

Required services

This list identifies all services to which PowerApps Studio talks and their usages. Your network must not block these services.

Domain(s) Protocols Uses
management.azure.com https RP
msmanaged-na.azure-apim.net https Runtime of Connectors/Apis
login.microsoft.com
login.windows.net
login.microsoftonline.com
secure.aadcdn.microsoftonline-p.com
https ADAL
graph.microsoft.com
graph.windows.net
https Azure Graph – For getting user info (e.g. profile photo)
gallery.azure.com https Sample and Template apps
*.azure-apim.net https Api Hubs – Different sub-domains for each locale
*.powerapps.com https WebAuth + Portal
*.azureedge.net https WebAuth
*.blob.core.windows.net https Blob storage
vortex.data.microsoft.com https Telemetry

[Source: https://docs.microsoft.com/en-gb/powerapps/maker/canvas-apps/limits-and-config]

PowerApps Formula reference for PowerApps

Formula reference for PowerApps

When building PowerApps I have found the below from Microsoft incredibly really helpful, an index of awesomeness for all things related to PowerApp formulas. I have lifted this from the Microsoft page but kept all the hyper links to allow you to drill into each piece of functionality.

A

Abs – Absolute value of a number.

Acceleration – Reads the acceleration sensor in your device.

Acos – Returns the arccosine of a number, in radians.

Acot – Returns the arccotangent of a number, in radians.

AddColumns – Returns a table with columns added.

And – Boolean logic AND. Returns true if all arguments are true. You can also use the && operator.

App – Returns information about the currently running app, such as which screen is currently displayed.

Asin – Returns the arcsine of a number, in radians.

Atan – Returns the arctangent of a number, in radians.

Atan2 – Returns the arctangent based on an (x,y) coordinate, in radians.

Average – Calculates the average of a table expression or a set of arguments.

B

Back – Displays the previous screen.

Blank – Returns a blank value that can be used to insert a NULL value in a data source.

C

Calendar – Retrieves information about the calendar for the current locale.

Char – Translates a character code into a string.

Clear – Deletes all data from a collection.

ClearCollect – Deletes all data from a collection and then adds a set of records.

Clock – Retrieves information about the clock for the current locale.

Coalesce – Replaces blank values while leaving non-blank values unchanged.

Collect – Creates a collection or adds data to a data source.

Color – Sets a property to a built-in color value.

ColorFade – Fades a color value.

ColorValue – Translates a CSS color name or a hex code to a color value.

Compass – Returns your compass heading.

Concat – Concatenates strings in a data source.

Concatenate – Concatenates strings.

Connection – Returns information about your network connection.

Count – Counts table records that contain numbers.

Cos – Returns the cosine of an angle specified in radians.

Cot – Returns the cotangent of an angle specified in radians.

CountA – Counts table records that aren’t empty.

CountIf – Counts table records that satisfy a condition.

CountRows – Counts table records.

D

DataSourceInfo – Provides information about a data source.

Date – Returns a date/time value, based on YearMonth, and Day values.

DateAdd – Adds days, months, quarters, or years to a date/time value.

DateDiff – Subtracts two date values, and shows the result in days, months, quarters, or years.

DateTimeValue – Converts a date and time string to a date/time value.

DateValue – Converts a date-only string to a date/time value.

Day – Retrieves the day portion of a date/time value.

Defaults – Returns the default values for a data source.

Degrees – Converts radians to degrees.

Disable – Disables a signal, such as Location for reading the GPS.

Distinct – Summarizes records of a table, removing duplicates.

Download – Downloads a file from the web to the local device.

DropColumns – Returns a table with one or more columns removed.

E

EditForm – Resets a form control for editing of an item.

Enable – Enables a signal, such as Location for reading the GPS.

EndsWith – Checks whether a text string ends with another text string.

Errors – Provides error information for previous changes to a data source.

EncodeUrl – Encodes special characters using URL encoding.

Exit – Exits the currently running app.

Exp – Returns e raised to a power.

F

Filter – Returns a filtered table based on one or more criteria.

Find – Checks whether one string appears within another and returns the location.

First – Returns the first record of a table.

FirstN – Returns the first set of records (N records) of a table.

ForAll – Calculates values and performs actions for all records of a table.

G

GroupBy – Returns a table with records grouped together.

H

HashTags – Extracts the hashtags (#strings) from a string.

Hour – Returns the hour portion of a date/time value.

I

If – Returns one value if a condition is true and another value if not.

IfError – Detects errors and provides an alternative value or takes action.

IsBlank – Checks for a blank value.

IsEmpty – Checks for an empty table.

IsMatch – Checks a string against a pattern. Regular expressions can be used.

IsNumeric – Checks for a numeric value.

IsToday – Checks whether a date/time value is sometime today.

L

Language – Returns the language tag of the current user.

Last – Returns the last record of a table.

LastN – Returns the last set of records (N records) of a table.

Launch – Launches a web address or an app.

Left – Returns the left-most portion of a string.

Len – Returns the length of a string.

Ln – Returns the natural log.

LoadData – Loads a collection from PowerApps private storage.

Location – Returns your location as a map coordinate by using the Global Positioning System (GPS) and other information.

LookUp – Looks up a single record in a table based on one or more criteria.

Lower – Converts letters in a string of text to all lowercase.

M

Max – Maximum value of a table expression or a set of arguments.

Mid – Returns the middle portion of a string.

Min – Minimum value of a table expression or a set of arguments.

Minute – Retrieves the minute portion of a date/time value.

Mod – Returns the remainder after a dividend is divided by a divisor.

Month – Retrieves the month portion of a date/time value.

N

Navigate – Changes which screen is displayed.

NewForm – Resets a form control for creation of an item.

Not – Boolean logic NOT. Returns true if its argument is false, and returns false if its argument is true. You can also use the ! operator.

Now – Returns the current date/time value.

O

Or – Boolean logic OR. Returns true if any of its arguments are true. You can also use the || operator.

P

Param – Provides access to parameters passed to the app when the user opened it.

Parent – Provides access to a container control’s properties.

Patch – Modifies or creates a record in a data source, or merges records outside of a data source.

Pi – Returns the number π.

PlainText – Removes HTML and XML tags from a string.

Power – Returns a number raised to a power. You can also use the ^ operator.

Proper – Converts the first letter of each word in a string to uppercase, and converts the rest to lowercase.

R

Radians – Converts degrees to radians.

Rand – Returns a pseudo-random number.

Refresh – Refreshes the records of a data source.

Remove – Removes one or more specific records from a data source.

RemoveIf – Removes records from a data source based on a condition.

RenameColumns – Renames columns of a table.

Replace – Replaces part of a string with another string, by starting position of the string.

Reset – Resets an input control to its default value, discarding any user changes.

ResetForm – Resets a form control for editing of an existing item.

Revert – Reloads and clears errors for the records of a data source.

RGBA – Returns a color value for a set of red, green, blue, and alpha components.

Right – Returns the right-most portion of a string.

Round – Rounds to the closest number.

RoundDown – Rounds down to the largest previous number.

RoundUp – Rounds up to the smallest next number.

S

SaveData – Saves a collection to PowerApps private storage.

Search – Finds records in a table that contain a string in one of their columns.

Second – Retrieves the second portion of a date/time value.

Set – Sets the value of a global variable.

ShowColumns – Returns a table with only selected columns.

ShowError – Displays an error message to the user.

Shuffle – Randomly reorders the records of a table.

Sin – Returns the sine of an angle specified in radians.

Sort – Returns a sorted table based on a formula.

SortByColumns – Returns a sorted table based on one or more columns.

Split – Splits a text string into a table of substrings.

Sqrt – Returns the square root of a number.

StartsWith – Checks if a text string begins with another text string.

StdevP – Returns the standard deviation of its arguments.

Substitute – Replaces part of a string with another string, by matching strings.

SubmitForm – Saves the item in a form control to the data source.

Sum – Calculates the sum of a table expression or a set of arguments.

Switch – Matches with a set of values and then evaluates a corresponding formula.

T

Table – Creates a temporary table.

Tan – Returns the tangent of an angle specified in radians.

Text – Formats a number as a string for display.

ThisItem – When in a gallery or form, returns the data for the current item from the container.

Time – Returns a date/time value, based on HourMinute, and Second values.

TimeValue – Converts a time-only string to a date/time value.

TimeZoneOffset – Returns the difference between UTC and the user’s local time in minutes.

Today – Returns the current date/time value.

Trim – Removes extra spaces from the ends and interior of a string of text.

TrimEnds – Removes extra spaces from the ends of a string of text only.

U

Ungroup – Removes a grouping.

Update – Replaces a record in a data source.

UpdateContext – Sets the value of one or more context variables of the current screen.

UpdateIf – Modifies a set of records in a data source based on a condition.

Upper – Converts letters in a string of text to all uppercase.

User – Returns information about the current user.

V

Validate – Checks whether the value of a single column or a complete record is valid for a data source.

Value – Converts a string to a number.

VarP – Returns the variance of its arguments.

ViewForm – Resets a form control for viewing of an existing item.

W

Weekday – Retrieves the weekday portion of a date/time value.

Y

Year – Retrieves the year portion of a date/time value.

 

[Source: https://docs.microsoft.com/en-gb/powerapps/maker/canvas-apps/formula-reference]

PowerApps – Camera Integration Part 1

Part one of the ‘Those Dynamics Guys’ PowerApps Series.

As promised via Linked-In I am going to publish a series of Blogs on how to start using PowerApps. PowerApps is part of the Dynamics 365 stack that allows a user to create various application that connect with not only Dynamics 365 Data Sources but a prodigious plethora of others such as:

  • WordPress
  • SharePoint
  • Twitter
  • Skype For Business
  • Outlook
  • Bing Maps
  • Google Maps

 

Selecting a connection/data set:

This will then take you to the next step which is where you can either create a new connection and select a connector of your choice (this example would use Dynamics 365 for Finance and Operations – known as jsut Dynamics 365 for Operations in PowerApps) or if you have pre-existing connections available select the Dynamics 365 for Operations connector and choose an environment, preferably Test Environment that you have full System Administrative access too,  and select it as your data set.

 

Selecting a table:

Now we have our data source we need to let the system know which Data Entity we wish for it to use – for this example we are going to use ‘Projects’, use the search functionality to filter through the various DEs to find the correct one choose it and select “Connect”:

A ‘Building Your App’ process will kick off then you’ll be greeted by the PowerApps designer. Then we are ready to start throwing this beast together!

 

Navigation of the PowerApps Designer (an Introduction):

Please note the menu is dynamic in nature so options will disappear and reappear depending on what has been selected – the navigation shown here is when no items are selected and should be seen as an introductory overview.

  1. Home – the home area on the action pane allows the user to choose from a various array of formatting option (text size, text weight, Italics, borders, fill, pre-set themes etc.)
  2. Insert – Allows the user to insert various items such as; buttons, icons, various controls, input text, labels, data, media, charts etc.
  3. Action – this allows you to create certain actions for various items including; ‘Navigation’ (where you’d like a certain item (Icon, button etc.)) to take you to a certain screen within the app, ‘Collect’ allows the user to create collections (this will be covered later on in the article), ‘Flows’ allows to integrate a flow or the option to create a new one. There are other options but this is enough to start with.
  4. Screen – select images for the background of the screen, state positioning for background images and select various colours to fill the background with.
  5. New Screen (Home Tab) – this allows the user to insert a new screen and select from various options such as whethere you wish for a blank fixed screen, a scroll enabled screen etc.
  6. Tree View – this view displays a break-down structure of the selected screen. Which allows you to navigate around the design of your app.
  7. Thumbnail view – this view represents the screens via small thumbnail images. Which allows you to navigate around the design of your app.
  8. Tree View (break-down) – separates into various items that can be drilled into to focus on each item independently.
  9. Play Icon – this allows the user to preview the app in it’s current, unpublished, state – you can also push F5 as a shortcut.
  10. Properties – allows to set various options for the selected item such as formatting of the item itself, default values etc.
  11. Rules – this allows the user to apply a rule that modifies an app based on predetermined criteria on the item selected.
  12. Advanced- depending the item selected this is where the user can apply various commands (some of which we’ll address in this article) applied to data elements, action elements and design elements.

One final item is the ‘View’ tab which allows the user to view the ‘Data Sources’ being used by the application (create new connections, refresh connections and delete connections), view any media being used by the App, view collections and variables.

 

Presenting the ‘Projects’ DE in a more useful manner:

The first stage to build our camera app is to have the first browse screen render the data in a more useful manner. Currently it is browse screen with some values in my case the “Allow Negative Values To Be Carried Forward” value:

To achieve this select the main ‘Browse Gallery 1’ area – then select, from the ‘Properties’ area within the ‘Layout’ grouping “Title, Subtitle and body” this will bring up the data dialogue where was can start picking and choosing the data from the Projects Data Entity that we wish to expose onto the gallery.

To change what is shown in the gallery we can change the following data inputs for the labels:

  • Body1
  • Subtitle1
  • Title1

I am going to change the drop down for each one of these to the following values:

  • Body1 = DeliveryName
  • Subtitle1 = ProjectStage
  • Title1 = ProjectName

This will then populate the Gallery with the selected values (push F5 of the play icon to view the app in it’s current state).

Now we have presented the Gallery in a more readable manner we now have a basic app that will allows us to view projects, select a project to view further details on the selected project and even edit certain values and publish them back to Dynamics 365 for Finance & Operations.

We will come back to adding further fields to the project details area but for now let’s jump straight in to, what I deem, the more exciting part- building the camera functionality and storage.

 

Building the camera functionality:

Right now on to the awesome part let’s build a camera app! First stage is creating a new screen. To achieve this go Home>New Screen then select Scrollable Screen.

Insert a new screen:

Change a label value:

This will generate and insert a new screen into the viewing pane and the designer will take you to the newly inserted screen The first thing i’d like to do and familarise ourselves with is changing the label which in this case is the Title. It is possible to change the label text in three locations:

  • Formula bar (by selecting ‘Text’ from the list and put quotations “” around it)
  • Properties – within the ‘Text’ area
  • Direct – by typing into the label itself

 

The next stage is to insert the ‘Camera’ Control – to achieve this first select the ‘Add an item from the insert tab’ (this isn’t a necessity but is a quick and easy way to remove the text from the screen) from the ‘Insert’ tab on the action pane and select Media>Camera.

Insert Camera and capture images:

This will then insert the Camera:

Now we need to start a collection that allows us to capture a picture and store it (we will then look into passing the image through to SharePoint and email later on in this article series). First select the Camera and go to the ‘Advanced’ area- we are now going to put in an ‘OnSelect command’ this come be achieved in two ways:

  • Advanced – within the advanced area there is an OnSelect field.
  • Formula Bar – change the list to ‘OnSelect’.

Type in the ‘OnSelect’ field the following:      ClearCollect(CameraImage,Camera3.Photo)

  • ClearCollect means that it’ll only store one image in the collection at a time (remove ‘Clear’ to amass a large collection.
  • “CameraImage” is the name of the collection – rename this this to whatever you’d like the collection to be called.
  • “Camera3” is the name of the Camera item and “Photo” the media the collection is expected to capture.

Now whilst still in the screen that contains the Camera ‘Play’ (Push F5) the app – this will open the App in the screen that you are currently in – now click the area that contains the camera. This will engage the ‘OnSelect’ command which will engage the ‘Collection’ to grab a still image from the camera.

Now let’s view the image. Go to  View>Collections:

This will take you to the collections list where we can select ‘CameraImage’ (the name we chose as the collections name in the step above) and view the captured photo.

The next article will show us how to present the image under the camera (shown below), then we’ll move on to flows! Article 2 click here!