Anpassen der Ablaufsteuerung mithilfe einer Steuerungsaktion

Mithilfe von Steuerungsaktionen kann Ihre Logik-App Entscheidungen treffen. Zur Überwachung der Social-Media-Kanäle wird eine Steuerungsaktion verwendet, mit der der Stimmungswert eines Tweets überprüft wird. Je nach Ergebnis (positiv oder negativ) wird eine andere Entscheidung getroffen. In dieser Lerneinheit befassen Sie sich mit vier Steuerungsaktionen, mit denen Sie den Ausführungspfad Ihrer App leichter verwalten können. Außerdem erfahren Sie, wie Sie den Designer für Logik-Apps verwenden, um eine Steuerungsaktion hinzuzufügen und ihre Einstellungen zu konfigurieren.

condition-Aktion

Eine condition-Aktion ist eine if-Anweisung, mit der Ihre App je nach verarbeiteten Daten unterschiedliche Schritte ausführen kann. Sie besteht aus einem booleschen Ausdruck und zwei Aktionen. Zur Laufzeit wertet die Ausführungs-Engine den Ausdruck aus und wählt je nach Ergebnis (wahr oder falsch) eine andere Aktion aus.

Sie können z. B. einen Ausgabenbericht abhängig von der Höhe der Ausgaben an den einen oder anderen Manager weiterleiten. Wenn Sie eine E-Mail verarbeiten, müssen Sie möglicherweise überprüfen, ob dieser die Priorität „Hoch“ zugeordnet wurde. In Ihrer App für Social-Media-Kanäle verwenden Sie eine condition-Anweisung, um je nach Stimmungswert des Tweets eine andere Entscheidung zu treffen. Die folgende Abbildung veranschaulicht die Verwendung der condition-Steuerungsaktion in der App.

Abbildung mit konzeptioneller Ansicht der gesamten App zur Überwachung von Social-Media-Kanälen. Die condition-Steuerungsaktion ist hervorgehoben.

Typen und Operatoren

Sie können numerische und boolesche Typen sowie Zeichenfolgen und JSON-Objekte in Ihren Bedingungen verwenden. Im folgenden Pseudocode sehen Sie für jeden primitiven Typ ein Beispiel:

if (score is-greater-than 0.7)              ... // Numeric
if (TweetedBy does-not-contain "MyCompany") ... // String
if (Favorited is-equal-to true)             ... // Boolean

Für jeden Typ stehen mehrere Operatoren zur Verfügung, die Sie in Vergleichen nutzen können. In der folgenden Liste werden die Operatoren jedes Typs aufgeführt.

Numeric Zeichenfolge Boolean JSON-Objekte
is-equal-to is-equal-to is-equal-to is-equal-to
is-not-equal-to is-not-equal-to is-not-equal-to is-not-equal-to
is-greater-than contains
is-greater-than-or-equal-to does-not-contain
is-less-than starts-with
is-less-than-or-equal-to does-not-start-with
ends-with
does-not-end-with

Die meisten Vorgänge sind selbsterklärend. Zwei Fälle verdienen jedoch besondere Aufmerksamkeit:

  • Bei Zeichenfolgenvergleichen wird immer die Groß-/Kleinschreibung beachtet.
  • Bei JSON-Vergleichen werden immer tiefe Vergleiche („deep equals“) verwendet. Dabei werden durch die Gleichheitsoperatoren immer ganze Objekte einschließlich Nachfolgetoken in komplexen Objekten verglichen.

Kombinieren von Ausdrücken mit AND und OR

Mit Logic Apps können Sie komplexe Ausdrücke erstellen. Dazu kombinieren Sie Bedingungen mit AND oder OR. Angenommen, Sie möchten Tweets ermitteln, für die eine neutrale Stimmungsbewertung (also ein Wert, der annähernd 0,5 beträgt) vorliegt. Sie könnten in diesem Fall einen Ausdruck schreiben, der dem im folgenden Pseudocode ähnelt:

if (score is-greater-than 0.4 AND score is-less-than 0.6)

Datenverfügbarkeit

Logic Apps stellt aus vorherigen Schritten alle Daten zur Verfügung, die dann von nachfolgenden Schritten verwendet werden können. Mithilfe dieses Features können Ihre Ausdrücke Werte aus allen vorherigen Schritten nutzen. Sie können auch Werte aus verschiedenen Schritten in einem Ausdruck kombinieren. Im folgenden Pseudocode wird nach positiven Tweets gesucht, die nicht von Mitarbeitern Ihres Unternehmens gepostet wurden. Beachten Sie, dass die Bewertung auf die Aktion Stimmung erkennen zurückzuführen ist. Der TweetedBy-Wert (Getwittert von) wurde vom Trigger Wenn ein neuer Tweet gepostet wird ermittelt.

if (score is-greater-than 0.7 AND TweetedBy does-not-contain "MyCompany")

Erstellen komplexer Ausdrücke mithilfe von Gruppen

Angenommen, Sie möchten einen Ausdruck erstellen, mit dem sich beliebte Tweets ermitteln lassen. Dabei möchten Sie die folgenden beiden Kriterien definieren:

  • Der Stimmungswert muss größer als 0,9 und der Tweet als Favorit markiert sein.
  • Die Anzahl der Retweets muss größer als 1000 sein.

Sie möchten diese Idee mit dem folgenden Ausdruck umsetzen, der hier als Pseudocode formuliert ist:

if (score is-greater-than 0.9 AND Favorited is-equal-to true OR RetweetCount is-greater-than 1000) // Error, cannot mix AND and OR

Logic Apps unterstützt diesen Ausdruck nicht direkt. Mit dem Gruppenfeature können Sie ihn aber dennoch umsetzen. Eine Gruppe ist eine Sequenz von Ausdrücken, die entweder mit AND oder mit OR kombiniert werden. Sie können innerhalb einer Gruppe AND und OR nicht mischen.

Im Folgenden sehen Sie einige Beispiele mit Pseudocode. Die Ausdrücke, die kombiniert werden müssen, werden aus Gründen der Lesbarkeit in Kleinbuchstaben geschrieben. Im Beispiel unten ist die erste Gruppe gültig, die zweite hingegen nicht:

if (a AND b AND c) // OK
if (a AND b OR  c) // Error, cannot mix AND and OR

Für die mit AND verbundenen Ausdrücke müssten Sie im obigen Beispiel eine Gruppe erstellen. Diese verbinden Sie dann mithilfe von OR mit dem anderen Ausdruck. Im folgenden Pseudocode wird eine Gruppe durch Klammern gekennzeichnet:

if ([a AND b] OR c) // OK

switch-Aktion

Eine switch-Aktion vergleicht einen Wert mit mehreren Fällen und führt nur denjenigen aus, für den eine Übereinstimmung ermittelt wird. Für switch-Ausdrücke werden Zeichenfolgen und Integer als Typen unterstützt. Ein switch-Ausdruck kann eine default-Aktion einschließen, die ausgeführt wird, wenn keine Übereinstimmung gefunden wird.

Angenommen, Sie verarbeiten eine E-Mail und möchten je nach Wichtigkeit der Nachricht anders reagieren. In einer Outlook-E-Mail ist die Wichtigkeit eine ganze Zahl zwischen 0 und 2. Im folgenden Pseudocode wird gezeigt, wie Sie für diesen Wert eine switch-Aktion erstellen können.

switch (Importance)
  case 0: ... // action(s) for low importance
  case 1: ... // action(s) for medium importance
  case 2: ... // action(s) for high importance
  default: ...

foreach-Schleife

Eine foreach-Schleifenaktion verarbeitet ein Array. Sie führt für jedes Element des Arrays die gleichen Aktionen aus. Standardmäßig werden die Aktionen für jedes Element des Arrays parallel ausgeführt. Sie haben allerdings die Möglichkeit, dieses Verhalten in der Schleifenkonfiguration anzupassen.

Ein Teil der Tweetdaten, die vom Trigger Wenn ein neuer Tweet gepostet wird zurückgegeben wird, könnte beispielsweise ein Array mit URLs für Medien sein, die in den Tweet integriert sind. Nehmen Sie an, dass Sie jede URL in eine eigene Zeile in einer Datenbank einfügen möchten. Sie könnten für die Verarbeitung eine foreach wie in folgendem Pseudocode verwenden:

foreach url in MediaUrls
    insert-row

Until-Schleife

Mit einer until-Schleife werden mehrere Aktionen mehrfach ausgeführt. Sie können drei verschiedene Kriterien für das Beenden der Schleife festlegen. Die Schleife wird ausgeführt, bis ein Kriterium erfüllt wird:

  • Condition (Bedingung): ein Ausdruck, der nach jeder Iteration ausgewertet wird
  • Count (Anzahl): die maximale Anzahl von Iterationen (Standardwert: 60)
  • Timeout (Zeitlimit): die maximal zulässige Zeit im ISO 8601-Format (Standardwert: eine Stunde)

Diese Schleife kann verwendet werden, um Daten zu verarbeiten. Sie ist jedoch auch gut geeignet, wenn Sie einen Netzwerkvorgang wiederholen müssen, bis er erfolgreich ist oder ein Timeout auftritt. Nehmen Sie beispielsweise an, dass Ihre App eine Aktion ausführen muss, die eine HTTP-Anforderung sendet. Sie könnten eine until-Schleife verwenden, die der im folgenden Pseudocode ähnelt (der Zeitwert PT5M entspricht fünf Minuten):

repeat
    HTTP Get
until (StatusCode is-equal-to 200 OR Count is-greater-than 3 OR Timeout is-greater-than PT5M)

Hinzufügen einer Steuerungsaktion mithilfe des Designers

Der Designer für Logik-Apps bietet Ihnen eine grafische Benutzeroberfläche, über die Sie Steuerungsaktionen hinzufügen und konfigurieren können. Diese befinden sich im Connector Steuerelement. Sie müssen diesen Connector also zuerst suchen. Sobald Sie den Connector gefunden haben, werden die vier Steuerungsaktionen angezeigt, die zuvor behandelt wurden, sowie andere nützliche Steuerungsaktionen, die jedoch üblicherweise nicht für die Verwaltung der Ablaufsteuerung eingesetzt werden. Der folgende Screenshot zeigt die verfügbaren Steuerungsaktionen im Designer.

Screenshot: Inhalte des Connectors Steuerelement im Designer für Logik-Apps – vier Ablaufsteuerungsaktionen: Condition, For each, Switch und Until

Der Designer bietet Ihnen eine grafische Benutzeroberfläche, mit der Sie komplexe Ausdrücke wie Gruppen erstellen können. Auf dem folgenden Screenshot sehen Sie eine Condition-Aktion (Bedingungsaktion) im Designer.

Screenshot: konfigurierte Condition-Aktion im Designer für Logik-Apps – Aktion Stimmung erkennen gefolgt von der Aktion Condition – die Condition-Aktion enthält einen einfachen Ausdruck, der überprüft, ob der Stimmungswert größer als 0,7 ist.

In unserer App zur Überwachung von Social-Media-Kanälen verwenden wir die Condition-Aktion, um eine if-Anweisung hinzufügen, mit der der Stimmungswert überprüft wird.