Anpassen der Ablaufsteuerung mithilfe einer Steuerungsaktion
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.
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:
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:
In der Social-Media-Überwachungs-App verwenden Sie die Bedingungssteuerungsaktion, um eine if-Anweisung hinzuzufügen, mit der der Stimmungsscore überprüft wird.