In PowerApps gibt es zwei Funktionen, um Variablen zu setzen: Die Set Funktion und die UpdateContext Funktion. In diesem Artikel wollen wir die Unterschiede erklären und erklären, wann man welche Funktion nutzen sollte.
Hinweis: Für die Vollständigkeit: Neben der Set und UpdateContext Funktion, kann man auch noch Collections erstellen zum Beipsiel mit ClearCollect / Collect.
Was ist der Unterschied zwischen der PowerApps Set und der UpdateContext Funktion?
- Die Set Funktion definiert eine globale Variable (steht in der ganzen Anwendung zur Verfügung) .
- Die UpdateContext Funktion definiert eine lokale Variable (steht nur im Screen zur Verfügung). UpdateContext Variablen müssen im JSON format definiert werden.
PowerApps Set Funktion
Mit der Set Funktion lassen sich Applikationsweite Variablen definieren.
Syntax
Set( VariableName, Value )
Eingangsparameter
- VariableName (mandatory): Name der zu definierenden Variable.
- Value (mandatory): Der Wert der Variablen: Ein String, eine Nummer, ein Boolean, ein Record oder ein Table.
Beispiele: PowerApps Set Funktion
Set(name, "John Doe");
Set(isMale, true);
Set(age,34);
Set(
person,
{
firstname: "John",
lastname: "Doe",
age: 34
}
);
Nach dem der Code oben ausgeführt wurde, kann man sich die definierten Variablen wie folgt anschauen: View menu > Variables > Global.
PowerApps UpdateContext Funktion
Mit der UpdateContext Funktion kannst im JSON Format Variablen definieren, die innerhalb des Screens nutzbar sind.
Syntax
UpdateContext( UpdateRecord )
Eingabeparameter
- UpdateRecord (mandatory): Der Record den du speichern willst.
Beispiele: PowerApps Set Funktion
UpdateContext({name: "John Doe"});
UpdateContext({isMale: true});
UpdateContext({age: 34});
UpdateContext(
{
person:
{
firstname: "John",
lastname: "Doe",
age: 34
}
}
);
Nach dem der Code oben ausgeführt wurde, kann man sich die definierten Variablen wie folgt anschauen: View menu > Variables > Screen Name.
PowerApps Screen Variablen unter View menu > Variables > <Screen Name>
Es existiert noch ein weiterer Weg eine Variable für einen Screen zu definieren. Wenn du die Navigate Funktion mit dem optionalen Variablenparameter nutzt.
Navigate(MyScreen,ScreenTransition.None,{name: "Joe"});
// Creates the variable name within the screen MyScreen
Wann sollte man Set und wann UpdateContext nutzen?
- Benutzte Set immer dann, wenn die Variable in mehreren Screen genutzt wird. UpdateContext Variablen sind nur innerhalb eines Screens nutzbar. In App.onStart() musst du Set benutzen, da dort UpdateContext nicht erlaubt ist.
- Benutze UpdateContext wenn immer möglich. Grundsätzlich ist es ein gutes Vorgehen Variablen so lokal zu halten, wie möglich. Das verhindert Konflikte mit anderen Variablen.
Was passiert, wenn Set und UpdateContext für die selbe Variable genutzt werden?
Zum Ende noch ein kleines Rästel. Was ist der Wert von myVar nach diesem Code?
UpdateContext({myVar: "UpdateContext"});
Set(myVar, "Set");
Innerhalb des Screens ist es „UpdateContext“. Außerhalb des Screens ist es „Set“.