Anpassen der Ablaufsteuerung mithilfe einer Steuerungsaktion

Abgeschlossen

Mithilfe von Steuerungsaktionen kann Ihr Logik-App-Workflow Entscheidungen treffen. Die Social-Media-Überwachungs-App überprüft mithilfe einer Steuerungsaktion den Stimmungsscore eines Tweets und brancht den Workflowpfad basierend darauf, ob der Score positiv oder negativ ist. In dieser Lerneinheit befassen Sie sich mit vier Steuerungsaktionen, mit denen Sie den Ausführungspfad Ihres Workflows einfacher verwalten können. Außerdem wird gezeigt, wie Sie den Workflow-Designer verwenden, um eine Steuerungsaktion hinzuzufügen und zu konfigurieren.

condition-Aktion

Eine Bedingungssteuerungsaktion ist eine if-Anweisung, die Ihren Workflow anhand der verarbeiteten Daten in zwei Pfade aufteilt. Diese Aktion 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 testen, ob der Nachricht eine hohe Priorität zugeordnet wurde. In Ihrer Social-Media-Überwachungs-App verwenden Sie eine condition-Anweisung, um je nach Stimmungsscore des Tweets zu branchen. Das folgende Diagramm zeigt, wie der Workflow die Bedingungssteuerungsaktion verwendet.

Diagram shows a conceptual view for the entire social media monitoring app. The *condition* control action appears highlighted.

Typen und Operatoren

Sie können numerische, Zeichenfolgen-, boolesche und JSON-Objekte in Ihren „condition“-Steuerungsaktionen testen. Im folgenden Pseudocode wird ein Beispiel für jeden einfachen Typ angezeigt:

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 Tabelle 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 tiefe Vergleiche („deep equals“) verwendet. Dabei wird durch die Gleichheitsoperatoren das gesamte Objekt verglichen, einschließlich aller Nachfolgertoken in komplexen Objekten.

Kombinieren von Ausdrücken mit AND und OR

Mit Azure Logic Apps können Sie komplexe Ausdrücke erstellen, indem Sie Bedingungen mit AND oder OR kombinieren. Angenommen, Sie möchten Tweets ermitteln, für die ein neutraler Stimmungsscore vorliegt. Dabei gilt ein Score nahe bei 0,5 als neutral. Sie können einen Ausdruck ähnlich dem folgenden Pseudocode schreiben:

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

Datenverfügbarkeit

Azure Logic Apps stellt alle Daten aus vorangegangenen Schritten in den nachfolgenden Schritten zur Verfügung. 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. Der folgende Pseudocode sucht beispielsweise nach Tweets mit positiver Stimmung, die nicht von Ihrem Unternehmen 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 einflussreiche 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 einem Ausdruck umsetzen, der dem folgenden Pseudocode ähnelt:

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

Azure Logic Apps unterstützt diesen Ausdruck indirekt, und Sie können ein Feature namens Gruppen verwenden, um diese Unterstützung zu aktivieren. 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, die als Pseudocode ausgedrückt sind. Die Ausdrücke, die kombiniert werden müssen, werden aus Gründen der Lesbarkeit in den Beispielen in Kleinbuchstaben geschrieben. Das erste Beispiel unten stellt eine gültige Gruppe dar, das 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 stattdessen 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-Steuerungsaktion 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 eine switch-Aktion für die E-Mail-Relevanz 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-Schleifensteuerungsaktion verarbeitet ein Array. Die Schleife 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 das Verarbeiten eine foreach-Aktion wie im folgenden Pseudocode verwenden:

foreach url in MediaUrls
    insert-row

Until-Schleife

Mit einer until-Schleifensteuerungsaktion 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 Der Standardwert ist 60.
  • Timeout (Zeitlimit): die maximal zulässige Zeit im Format gemäß ISO 8601 Der Standardwert ist eine Stunde.

Mit dieser Schleife können Daten verarbeitet werden, Sie ist jedoch auch gut geeignet, wenn Sie einen Netzwerkvorgang wiederholen müssen, bis er erfolgreich ist oder ein Timeout auftritt. Angenommen, Ihr Workflow muss etwa eine Aktion ausführen, die eine HTTP-Anforderung sendet. Sie können eine until-Schleife ähnlich dem Beispiel im folgenden Pseudocode verwenden, wobei der Zeitwert PT5M fünf Minuten entspricht:

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 Workflow-Designer bietet Ihnen eine visuelle Möglichkeit, eine Steuerungsaktion hinzuzufügen und zu konfigurieren. Alle Steuerungsaktionen sind im Steuerungsconnector gepackt, sodass der erste Schritt darin besteht, diesen Connector zu suchen. Sobald Sie den Connector gefunden haben, können Sie zwischen den zuvor behandelten Steuerungsaktionen auswählen sowie einigen anderen nützlichen Steuerungsaktionen, die jedoch üblicherweise nicht für die Verwaltung der Ablaufsteuerung eingesetzt werden. Der folgende Screenshot zeigt die verfügbaren Steuerungsaktionen im Designer:

Screenshot shows the actions in the **Control** connector in the workflow designer. The list includes the following control flow actions: **Condition**, **For each**, **Switch**, and **Until**.

Der Designer bietet außerdem eine visuelle Möglichkeit zum Erstellen komplexer Ausdrücke, einschließlich Gruppen. Der folgende Screenshot zeigt eine Bedingungsaktion im Designer:

Screenshot shows a configured **Condition** action in the workflow designer. The image contains a **Sentiment** action followed by a **Condition** action. The **Condition** action has a simple expression that tests whether the sentiment score is greater than 0.7.

In der Social-Media-Überwachungs-App verwenden Sie die Bedingungssteuerungsaktion, um eine if-Anweisung hinzuzufügen, mit der der Stimmungsscore überprüft wird.