Freigeben über


Ausdrucks-Kochbuch für Cloudflüsse

In diesem Artikel werden 30 einsatzbereite Ausdrucksmuster für allgemeine Szenarien in Power Automate Cloudflüssen erläutert. Sie können diese Muster in Ihren Flüssen kopieren, anpassen und verwenden.

Hinweis

Diese Ausdrücke funktionieren in allen Power Automate Cloudfluss-Lizenzebenen. Suchen Sie den Vollständigen Funktionsverweis in Workflowausdrucksfunktionen.

Textvorgänge

1. In Groß- oder Kleinbuchstaben konvertieren

Szenario: Normalisieren Sie die Benutzereingabe vor dem Vergleich oder Speicher.

Ausdruck: toUpper(variables('input')) oder toLower(variables('input'))

Beispiel: gibt zurück. toLower('John.Smith@Contoso.COM')john.smith@contoso.com

Von Bedeutung

toUpper() bei Verwendung in Vergleichen wird die Groß-/Kleinschreibung beachtet. Stellen Sie bei Verwendung toUpper(A) = Bsicher, dass Sie sie auf beide Seiten anwenden. toUpper(A) = B schlägt fehl, wenn B gemischt ist.

2. Teilzeichenfolge extrahieren (links, rechts, mitte)

Szenario: Ziehen Sie einen bestimmten Teil aus einem Textwert heraus. Ruft die ersten N-Zeichen, den letzten N oder einen Bereich von der Mitte ab.

Ausdruck:

  • Links: substring(variables('text'), 0, 5)
  • Richtig: substring(variables('text'), sub(length(variables('text')), 5), 5)
  • Mitte: substring(variables('text'), 3, 4)

Beispiel: gibt zurück. substring('Invoice-2026-0042', 8, 4)2026

Tipp

Der zweite Parameter ist der Startindex (0-basiert), der dritte ist die Länge und nicht der Endindex. substring('ABCDE', 1, 3) gibt BCDzurück , nicht BC.

3. Ersetzen von Text

Szenario: Bereinigen oder Transformieren von Textwerten. Entfernen sie Zeichen, tauschen Sie Trennzeichen aus, korrigieren Sie die Formatierung.

Ausdruck: replace(variables('input'), 'old', 'new')

Beispiel: gibt zurück. replace('2026/03/18', '/', '-')2026-03-18

Hinweis

Bei replace() wird die Groß- und Kleinschreibung beachtet. replace('Hello', 'hello', 'Hi') gibt unverändert zurück Hello . Konvertieren Sie bei Bedarf zuerst in einen gängigen Fall.

4. Teilen der Zeichenfolge in ein Array

Szenario: Unterbrechen eines durch Trennzeichen getrennten Werts (CSV, durch Semikolons getrennte E-Mails) in einzelne Elemente zur Schleifenschleife.

Ausdruck: split(variables('input'), ',')

Beispiel: gibt zurück. split('alice@contoso.com,bob@contoso.com,carol@contoso.com', ',')["alice@contoso.com","bob@contoso.com","carol@contoso.com"]

Tipp

Leerzeichen nach dem Trennzeichen bleiben erhalten. split('a, b, c', ',') gibt mit führenden Leerzeichen zurück ["a"," b"," c"] . Verwenden Sie trim() danach für jedes Element in einer Auswahlaktion.

5. Verketten mit Zeilenumbrüchen (für E-Mails)

Szenario: Erstellen Sie einen mehrzeiligen Nachrichtentext für E-Mail- oder Teams-Benachrichtigungen.

Ausdruck: concat('Line 1', decodeUriComponent('%0A'), 'Line 2')

Example: Verwenden Sie decodeUriComponent('%0A') für eine Neueinleitung oder decodeUriComponent('%0D%0A') für Windows-Linienumbrüche.

Von Bedeutung

Die direkte Verwendung \n in Ausdrücken erzeugt keinen Zeilenumbruch. Es gibt die Literalzeichen \naus. Verwenden Sie immer den decodeUriComponent Ansatz, oder verwenden <br> Sie, wenn die Ausgabe HTML ist.

6. Überprüfen, ob die Zeichenfolge Text enthält

Szenario: Weiterleiten eines Flusses basierend darauf, ob eine Betreffzeile, ein E-Mail-Textkörper oder ein Feld ein Schlüsselwort enthält.

Ausdruck: contains(toLower(triggerBody()?['subject']), 'urgent')

Example: contains('Project Alpha Review', 'Alpha') gibt true

Hinweis

Bei contains() wird die Groß- und Kleinschreibung beachtet. Umschließen Sie immer sowohl den Heustack als auch die Nadel, toLower() um die Übereinstimmung zwischen Groß- und Kleinschreibung zu berücksichtigen: contains(toLower(value), toLower(search)).

Datum und Uhrzeit

7. Abrufen des aktuellen Datums/der aktuellen Uhrzeit in einem bestimmten Format

Szenario: Stempeln Sie einen Dateinamen, einen Protokolleintrag oder eine E-Mail mit dem aktuellen Datum und der aktuellen Uhrzeit.

Ausdruck: formatDateTime(utcNow(), 'yyyy-MM-dd HH:mm')

Beispiel: Gibt (UTC) zurück 2026-03-18 14:30 . Wird für lokale Zeit verwendet convertTimeZone() .

Tipp

utcNow() ist immer UTC. Für lokale Zeit verkettet mit convertTimeZone(utcNow(), 'UTC', 'Eastern Standard Time', 'yyyy-MM-dd HH:mm').

8. Addieren oder Subtrahieren von Tagen von einem Datum

Szenario: Berechnet ein Fälligkeitsdatum, ein Ablaufdatum oder ein Erinnerungsdatum relativ zum heutigen Tag.

Ausdruck: addDays(utcNow(), 7) oder addDays(utcNow(), -30)

Beispiel: Wenn heute der Wert ist 2026-03-18, gibt addDays(utcNow(), 7) die Rückgabe zurück. 2026-03-25T...Z

Hinweis

addDays() akzeptiert auch Bruchwerte, sind aber addHours()addMinutes() für Untertage-Offsets klarer. Verwenden addDays(utcNow(), 0.5) Sie nicht, wenn Sie meinen addHours(utcNow(), 12).

9. Konvertieren einer Zeichenfolge in Datum (Analyse)

Szenario: Ein Textfeld enthält ein Datum wie 03/18/2026 und Sie müssen es in Datumsfunktionen verwenden.

Ausdruck: parseDateTime(variables('dateString'), 'en-US')

Beispiel: parseDateTime('03/18/2026', 'en-US') Gibt einen richtigen Datetime-Wert zurück.

Von Bedeutung

Ohne den Gebietsschemaparameter hängt die Analyse von den regionalen Einstellungen des Flusses ab und kann Monat/Tag tauschen. Geben Sie das Gebietsschema immer explizit an, um zu vermeiden 03/04/2026 , dass es als 3. April und 4. März interpretiert wird.

10. Wochentag abrufen

Szenario: Führen Sie unterschiedliche Logik an Wochentagen im Vergleich zu Wochenenden aus, oder generieren Sie einen "Montagsbericht".

Ausdruck: dayOfWeek(utcNow())

Beispiel: Gibt 0 für Sonntag, 1 für Montag, ..., 6 für Samstag zurück.

Tipp

Sonntag ist 0, nicht 7. Wird für Wochenendprüfungen verwendet or(equals(dayOfWeek(...), 0), equals(dayOfWeek(...), 6)) . Eine Bedingung wie dayOfWeek(utcNow()) > 5 Fangen Samstag, aber versäumt Sonntag.

11. Berechnen der Differenz zwischen zwei Datumsangaben

Szenario: Bestimmen Sie, wie viele Tage zwischen einem Anforderungsdatum und einem Abschlussdatum verstrichen sind.

Ausdruck: div(sub(ticks(variables('endDate')), ticks(variables('startDate'))), 864000000000)

Beispiel: Wenn "Start" und "Ende" lautet 2026-03-012026-03-18, wird zurückgegeben 17.

Hinweis

Es gibt keine integrierte dateDiff() Funktion. Sie müssen den Ticks-Ansatz verwenden. Der Divisor 864000000000 konvertiert Teilstriche in Tage. Verwenden Sie 36000000000stundenlang ; für Minuten, verwenden Sie 600000000.

12. Formatieren des Datums für die Anzeige

Szenario: Konvertieren eines Datetime-Werts in ein lesbares Format für E-Mails oder Berichte.

Ausdruck: formatDateTime(variables('myDate'), 'MMMM dd, yyyy') oder formatDateTime(variables('myDate'), 'MM/dd/yyyy')

Beispiel: gibt zurück. formatDateTime('2026-03-18T14:30:00Z', 'MMMM dd, yyyy')March 18, 2026

Von Bedeutung

MM ist Monate, mm ist Minuten. formatDateTime(value, 'mm/DD/yyyy') erzeugt 30/18/2026 (Minuten und Tag) anstelle von 03/18/2026. Verwenden Sie dd (Kleinbuchstaben) für den Tag des Monats.

Arrays und Sammlungen

13. Filtern eines Arrays nach Bedingung

Szenario: Ruft nur die Elemente aus einem Array ab, die einem bestimmten Kriterium entsprechen.

Ausdruck: Verwenden der Filterarrayaktion mit: @item()?['Status'] ist gleich 'Active'

Beispiel: Eingaberückkehrer [{Name:'A', Status:'Active'}, {Name:'B', Status:'Closed'}][{Name:'A', Status:'Active'}]

Hinweis

Sie können keinen Inlineausdruck für filter whereformatieren. Verwenden Sie die Filterarrayaktion (kein Ausdruck). Verwenden Sie @equals(item()?['Status'], 'Active') für die ausdrucksbasierte Filterung im erweiterten Modus des Filterarrays.

14. Abrufen des ersten oder letzten Elements aus array

Szenario: Abrufen des letzten Datensatzes oder der ersten Übereinstimmung aus einer Liste.

Ausdruck: first(variables('myArray')) oder last(variables('myArray'))

Example: first(body('Get_items')?['value']) gibt das erste Element aus einer SharePoint Abfrage zurück.

Tipp

first() in einem leeren Array wird ein Fehler zurückgegeben null, nicht ein Fehler. Folgen Sie immer mit einer NULL-Prüfung: if(empty(variables('myArray')), null, first(variables('myArray'))).

15. Zählen von Elementen im Array

Szenario: Überprüfen Sie, wie viele Ergebnisse eine Abfrage zurückgegeben hat, oder überprüfen Sie, ob eine Liste über genügend Elemente verfügt.

Ausdruck: length(variables('myArray'))

Example: length(body('Get_items')?['value']) gibt die Anzahl der Elemente aus einer SharePoint-Liste Abfrage zurück.

Hinweis

length() funktioniert sowohl für Arrays als auch für Zeichenfolgen. length('hello') gibt 5 zurück (Zeichenanzahl). Stellen Sie sicher, dass Sie ein Array übergeben, keine Zeichenfolge, die wie ein Array aussieht.

16. Erstellen einer durch Trennzeichen getrennten Zeichenfolge aus Array (Verknüpfung)

Szenario: Konvertieren einer Liste von Namen, E-Mails oder IDs in eine einzelne durch Trennzeichen getrennte Zeichenfolge für die Anzeige oder einen API-Aufruf.

Ausdruck: join(variables('myArray'), ', ')

Beispiel: gibt zurück. join(createArray('Alice', 'Bob', 'Carol'), '; ')Alice; Bob; Carol

Tipp

join() arbeitet an Arrays von Zeichenfolgen. Wenn Ihr Array Objekte enthält, verwenden Sie zuerst eine Auswahlaktion , um das gewünschte Feld zu extrahieren, und verbinden Sie das Ergebnis.

17. Überprüfen, ob ein Array einen Wert enthält

Szenario: Ermitteln Sie, ob ein bestimmtes Element in einer Liste vorhanden ist, bevor Sie fortfahren.

Ausdruck: contains(variables('myArray'), 'searchValue')

Beispiel: gibt zurück. contains(createArray('North', 'South', 'East', 'West'), 'East')true

Hinweis

Sucht bei Objektenarrays contains() nach dem gesamten Objekt, nicht auf einen Eigenschaftswert. Um zu überprüfen, ob ein Objekt über eine übereinstimmende Eigenschaft verfügt, verwenden Sie eine Filterarrayaktion, und überprüfen Sie length() dann das Ergebnis.

JSON und Objekte

18. Json-Zeichenfolge analysieren

Szenario: Eine HTTP-Aktion oder ein benutzerdefinierter Connector gibt eine JSON-Zeichenfolge zurück, mit der Sie als strukturierte Daten arbeiten müssen.

Ausdruck: json(body('HTTP'))

Beispiel: json('{"name":"Alice","age":30}') Gibt ein Objekt zurück, auf ?['name']das Sie zugreifen können.

Von Bedeutung

Analysieren Sie nicht doppelt. Wenn die Aktion bereits analysierte JSON (die meisten Connectoraktionen ausführen) zurückgibt, führt das json() Umschließen erneut zu einem Fehler. Verwenden Sie json() nur für unformatierte Zeichenfolgenantworten, nicht für Aktionsausgaben, die bereits Objekte sind.

19. Abrufen der geschachtelten Eigenschaft aus JSON

Szenario: Zugreifen auf einen Wert tief in einer JSON-Antwort, response.data.items[0].namez. B. .

Ausdruck: body('HTTP')?['data']?['items']?[0]?['name']

Beispiel: Für {"data":{"items":[{"name":"Widget"}]}}, gibt Widgetzurück .

Von Bedeutung

Vergessen Sie nicht die ? (sichere Navigation). body('HTTP')['data']['items'] löst einen Fehler aus, wenn eine Beliebige Ebene null ist. ?['key'] Wird immer verwendet, um sicher zu durchlaufen: Jede ? gibt NULL zurück, anstatt fehlzuschlagen, wenn das übergeordnete Element fehlt.

20. Erstellen eines JSON-Objekts aus Werten

Szenario: Erstellen Sie einen Anforderungstext für eine HTTP-Aktion aus Flussvariablen und dynamischen Inhalten.

Ausdruck: json(concat('{"name":"', variables('name'), '","status":"', variables('status'), '"}'))

Beispiel: Mit name=Alice und status=Active, gibt den Wert zurück {"name":"Alice","status":"Active"}.

Tipp

Wenn eine Variable Anführungszeichen oder Sonderzeichen enthält, wird der JSON-Code falsch formatiert. Verwenden Sie für eine robuste Konstruktion eine Verfassenaktion mit createObject('name', variables('name'), 'status', variables('status')) oder erstellen Sie sie direkt in einer Verfassen-Aktion.

21. Konvertieren des Objekts in eine Zeichenfolge

Szenario: Protokollieren sie ein JSON-Objekt in einem Textfeld, oder übergeben Sie strukturierte Daten als Zeichenfolgenparameter.

Ausdruck: string(variables('myObject'))

Beispiel: string(json('{"a":1}')) Gibt als Zeichenfolge zurück {"a":1} .

Hinweis

string() auf einem Array oder Objekt erzeugt kompakten JSON -Code (kein hübsches Drucken). Es gibt keine integrierte prettyPrint(). Akzeptieren Sie kompakten JSON-Code, oder erstellen Sie formatierten Text manuell.

22. Behandeln Sie null- oder leere Werte sicher

Szenario: Verhindern Sie Fehler, wenn ein Feld möglicherweise null, leer oder vollständig fehlt.

Ausdruck: coalesce(triggerBody()?['optionalField'], 'default value')

Beispiel: Wenn optionalField null ist, wird zurückgegeben 'default value'. Wenn ein Wert vorhanden ist, wird dieser Wert zurückgegeben.

Von Bedeutung

coalesce() nur Handles null, nicht leere Zeichenfolgen. Kombinieren Sie für leere Zeichenfolgen eine Bedingung: if(empty(triggerBody()?['field']), 'default', triggerBody()?['field']). Die empty() Funktion gibt true für null und leere Zeichenfolge ''zurück.

Zahlen und Mathematik

23. Runden einer Zahl

Szenario: Anzeigen eines Prozent- oder Währungswerts mit einer festen Anzahl von Dezimalstellen.

Ausdruck: formatNumber(variables('value'), 'N2') (für anzeige) oder div(mul(variables('value'), 100), 100) (zum Abschneiden)

Beispiel: formatNumber(3.14159, 'N2') Gibt als Zeichenfolge zurück 3.14 .

Hinweis

formatNumber() gibt eine Zeichenfolge und keine Zahl zurück. Wenn Sie weitere Berechnungen für den gerundeten Wert ausführen müssen, analysieren Sie ihn zurück: float(formatNumber(variables('value'), 'N2')).

24. Konvertieren einer Zeichenfolge in Zahl (und zurück)

Szenario: Ein Formular oder eine E-Mail gibt Ihnen eine Zahl als Text, und Sie müssen damit mathematikieren.

Ausdruck: int(variables('textNumber')) oder float(variables('textNumber')) und string(variables('numericValue'))

Beispiel: int('42') gibt zurück 42. float('3.14') gibt 3.14 zurück. string(42) gibt '42' zurück.

Von Bedeutung

int() bei einer Dezimalzeichenfolge wird ein Fehler ausgelöst; sie wird nicht abgeschnitten. Wenn eine Variable möglicherweise ein Dezimalzeichen enthält, verwenden Sie float() zuerst: int(float(variables('input'))). Bei Konstantenwerten wie int('3.14')dem Fehler wird der Fehler zur Speicherzeit (InvalidTemplate) und nicht zur Laufzeit abgefangen.

25. Berechnen des Prozentsatzes

Szenario: Zeigen Sie an, welche Bruchzahl ein anderer wert ist (z. B. Vervollständigungsrate, Auslastung).

Ausdruck: mul(div(float(variables('part')), float(variables('total'))), 100)

Beispiel: Mit part=75 und total=200, returns 37.5.

Von Bedeutung

Ganzzahlige Division schneidet ab. div(75, 200) gibt zurück 0 , da beide ganze Zahlen sind. Immer zuerst in Float konvertieren: div(float(75), float(200)) Gibt zurück 0.375.

Bedingungen und Logik

26. If/then/else in einem Ausdruck

Szenario: Gibt unterschiedliche Werte basierend auf einer Bedingung zurück, ohne dem Fluss eine Bedingungsaktion hinzuzufügen.

Ausdruck: if(equals(variables('status'), 'Approved'), 'Proceed', 'Wait')

Beispiel: Wenn der Status lautet Approved, wird zurückgegeben Proceed. Andernfalls wird Wait zurückgegeben.

Hinweis

Die if() Funktion unterstützt >< keine Operatoren direkt. Verwenden Sie Hilfsfunktionen: if(greater(variables('count'), 10), 'Over', 'Under'). Verfügbare Vergleiche: equals(), greater(), , less()greaterOrEquals(), . lessOrEquals()

27. Klammern (erster Nicht-Null-Wert)

Szenario: Probieren Sie mehrere Felder aus, und verwenden Sie das erste Feld, das einen Wert aufweist, z. B. bevorzugter Name, Anzeigename, E-Mail.

Ausdruck: coalesce(triggerBody()?['preferredName'], triggerBody()?['displayName'], triggerBody()?['email'], 'Unknown')

Beispiel: Wenn preferredName null ist und displayName lautet, wird 'Alice'zurückgegeben Alice.

Tipp

coalesce() überspringt null , aber keine leeren Zeichenfolgen ''. Eine leere Zeichenfolge ist ein gültiger Wert ungleich Null. Kombinieren Sie es mit einem Hilfsprogramm, wenn leere Zeichenfolgen ebenfalls übersprungen werden sollen: coalesce(if(empty(A), null, A), if(empty(B), null, B), 'default').

28. Überprüfen, ob der Wert null oder leer ist

Szenario: Überprüfen Sie, ob ein erforderliches Feld vor der Verarbeitung über einen verwendbaren Wert verfügt.

Ausdruck: empty(variables('input'))

Beispiel: empty('') gibt zurück true. empty(null) gibt true zurück. empty('hello') gibt false zurück.

Von Bedeutung

empty() funktioniert nicht für Zahlen. empty(0) löst einen Fehler aus. Verwenden oder überprüfen Sie equals(variables('num'), null) bei Zahlen zuerst den Typ.

29. Vergleichen von Datumsangaben (ist Datum A nach Datum B?)

Szenario: Überprüfen Sie, ob ein Stichtag bestanden hat oder ob ein Ereignis vor einem anderen aufgetreten ist.

Ausdruck: greater(ticks(variables('dateA')), ticks(variables('dateB')))

Beispiel: Gibt zurück greater(ticks('2026-03-18'), ticks('2026-03-15')) (Der 18. true März liegt nach dem 15. März).

Von Bedeutung

Das direkte Vergleichen von Datumszeichenfolgen geschieht mit greater('2026-03-18', '2026-03-15') dem ISO-Format (YYYY-MM-DD), da sie lexikalisch sortiert wird. Aber es schlägt für andere Formate fehl. greater('03/18/2026', '12/01/2025')gibt false zurück, weil0<1 . Verwenden Sie ticks() immer für einen zuverlässigen Datumsvergleich.

30. Boolesche Logik (AND/OR in Bedingungen)

Szenario: Kombinieren Mehrerer Bedingungen in einem einzelnen Ausdruck, z. B. genehmigter UND Betrag > 1000.

Ausdruck: and(equals(variables('status'), 'Approved'), greater(variables('amount'), 1000))

Beispiel: Gibt nur zurück true , wenn der Status gleich Approved und der Betrag größer als 1000 ist.

Hinweis

Sie können nicht mitand/orSyntax verketten.&&/|| Verwenden Sie immer das Funktionsformular. Verschachteln Sie sie für komplexe Logik: or(and(A, B), and(C, D)). Die Lesbarkeit beeinträchtigt mit tiefen Schachtelungen. Erwägen Sie stattdessen die Verwendung einer Bedingungsaktion mit mehreren Zeilen.

Kurzübersichtskarte

Aufgabe Ausdruck
Großbuchstaben toUpper(value)
Kleinbuchstaben toLower(value)
Substring substring(value, start, length)
Ersetzen replace(value, old, new)
Aufteilen split(value, delimiter)
Enthält (Text) contains(toLower(value), toLower(search))
Jetzt (formatiert) formatDateTime(utcNow(), 'yyyy-MM-dd')
Tage hinzufügen addDays(date, count)
Wochentag dayOfWeek(date) (0=Sonne)
Tage zwischen div(sub(ticks(end), ticks(start)), 864000000000)
Erstes Element first(array)
Letztes Element last(array)
Zählen length(array)
Beitreten join(array, delimiter)
Analysieren von JSON json(stringValue)
Safe-Eigenschaft object?['key']
Null-Fallback coalesce(value, default)
Ist leer empty(value)
Wenn/sonst if(condition, trueVal, falseVal)
Vergleichen von Datumsangaben greater(ticks(dateA), ticks(dateB))
Int aus Zeichenfolge int(stringValue)
Float aus Zeichenfolge float(stringValue)
AND and(condA, condB)
ODER or(condA, condB)

Hinweis: Der Autor hat diesen Artikel mit Unterstützung von KI erstellt. Weitere Informationen