Some long awaited features for Power Apps canvas formulas!

For those, you can use audio recordings, online resources and different digital health applications. In recent years, online apps, such as Mindset, have become a powerful tool for sleep self-hypnosis. The insomnia apps have made hypnotherapy for sleep more accessible and available to the public. Good quality sleep now really is at your fingertips. The incorporation of user-centred features, which engage T2DM consumers in self-management tasks, can improve health outcomes. The findings may guide app developers and entrepreneurs in improving app design and usability. Given self-management is a significant factor in glycaemic control, these find. Which is why there's no shame in using tools to help you build discipline. This is where distraction blocking software shines. Turn these focus apps on, and you can't open anything distracting—it won't work. Instead, you'll see a reminder that you set up software to block apps, and you'll be encouraged to get back to work. It's oddly liberating.

Use

When run in a web browser, a canvas app can now replace itself with another canvas app or a web page. This has been a long running community ask and also came up when we were created the COVID-19 Hospital Emergency Response solution where multiple apps hand off to one another.

To accomplish this, we have added a new way to use the Launch function. Currently parameters are passed as a sequence of name value string pairs:

Because this function can take an arbitrary number of arguments of any type that can coerce to a string, there weren’t a good ways to add an extra argument to specify the target tab for the launch. The association between the parameter arguments is loose and can become confusing if there is a long list.

Self

So we have added a new way to call Launch with a record instead of argument pairs. With this form, the name and value of each parameter is far easier to associate:

And with the addition, we can add a new parameter for the LaunchTarget:

And with that, shazam, you can now replace a canvas app with another canvas app or a web page. Here’s the new functionality is shown in the COVID apps, note that browser window doesn’t change as we move between canvas apps:

Some important notes:

  • LaunchTarget only works with the new record syntax. Adding it to the old format will have no effect.
  • LaunchTarget does not work in embedded apps, such as apps hosted in Power BI or SharePoint, and should be avoided. We don’t have much control over how our host takes the request for a new window. We may wall this off with our introduction of error handling to prevent confusion.

You can read more about all of this in the Launch documentation.

At about the same time, but unfortunately not exactly the same time, we are introducing another fan favorite: the Self operator.

How to use self control app

Formulas often refer to other properties of the same control. Often you’d like to link two colors together, perhaps having the HoverBorderColor always have the same value as HoverColor. If the control is Label1 then you would set the HoverBorderColor property to Label1.HoverColor.

That’s not horrible, but it could be better. Let’s say you were copying and pasting that formula and the recipient control’s name is different; you would have to manually fix it up. A relative reference would be a better way to go: HoverBorderColor property set to Self.HoverColor. Self is similar to the existing Parent operator.

Use

Why did we call this Self instead of This? Both terms are used widely in computer languages and we debated this question at length. Two main arguments for Self emerged:

  • We already have a Parent operator and some day we may want a Children operator in the future. Self fits more naturally in to this hierarchy.
  • We already have ThisItem and will be shortly introducing ThisRecord. (coming soon) and ThisUser and ThisChannel are on the horizon. If we had just a plain This, it would beg the question “This what?” as the others will all have a subject. This* is about data and not controls.

Self is fairly self explanatory (no pun intended), but some more coverage is coming soon to the Operators documentation.

How To Use Self Control App

Now the unfortunate part. But it is only short term pain.

How To Use Self Control App

The changes for Launch were introduced first, before we knew were were going to add the Self keyword. As is consistent with JavaScript’s Window.Open function, we went with LaunchTarget.Self for replacing the current window.

How To Use Self Control App

Unfortunately, adding a Self operator isn’t compatible with Self as an enumeration value. With the addition of the operator, Power Apps automatically puts single quotes around the ‘Self’ in LaunchTarget.’Self’. Everything works fine, but it is ugly.

Realizing the name conflict, we have already started the process to change the name to LaunchTarget.Replace. For good measure, we are also renaming LaunchTarget.Blank to LaunchTarget.New. Although not an operator we already have blank as an important concept and someday perhaps it too will be an operator.

Such fun with names. The short of it is that you may need to use Self, ‘Self’, or ultimately Replace as your LaunchTarget. If you check the version number (Account in the Studio’s File menu) LaunchTarget.Self is available with version 3.20043 while LaunchTarget.’Self’ and the Self operator are available with version 3.20051. There are many factors that control which version you might be using, including your region and cadence, so the easiest way to know which to use may be to type LaunchTarget and add the dot afterward to see the choices.

How To Turn Off Self Control App

The good news is that your formulas will automatically move forward as we make these changes. We have this nifty feature in Power Apps where we keep track of the version of the language you are using in your app and can automatically upgrade your formulas.