Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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) |
Verwandte Informationen
- Fehlercodereferenz für Cloudfluss
- Behandeln von Cloudflussfehlern
- Verwenden von Ausdrücken in Bedingungen
- Referenz zu Workflowausdrucksfunktionen
- Power Automate Grenzwerte und Konfiguration
Hinweis: Der Autor hat diesen Artikel mit Unterstützung von KI erstellt. Weitere Informationen