„Verfassen“ (Compose) in Power Automate: wofür der Baustein wirklich da ist

Die Aktion „Verfassen“ heißt auf Englisch Compose und ist ein Zwischenspeicher für beliebige Werte. Wofür man sie nutzt und wann Variablen besser sind.

Die Aktion „Verfassen", im englischen Original Compose, ist ein Zwischenspeicher. Sie nimmt einen beliebigen Wert auf und stellt ihn allen folgenden Schritten als Ausgabe bereit. Erlaubt sind Text, Zahl, Array, JSON-Objekt oder das Ergebnis einer Formel.

Mehr macht die Aktion nicht, und genau das macht sie nützlich. Die deutsche Übersetzung führt allerdings viele in die Irre. Mit dem Verfassen von Texten hat der Baustein nur am Rande zu tun. Microsoft führt Compose unter den Datenvorgängen, zusammen mit „Auswählen", „Filtern" und „JSON analysieren".

Wofür nutzt man „Verfassen" in der Praxis?

Man nutzt „Verfassen" für vier Aufgaben: Werte einmal berechnen, Zwischenstände sichtbar machen, Daten zusammenbauen und Konstanten pflegen.

  • Werte einmal berechnen, mehrfach verwenden: Eine Formel, etwa ein formatiertes Datum, wird einmal im Compose berechnet. Danach verwenden Sie das Ergebnis in fünf Schritten, statt die Formel fünfmal zu pflegen.
  • Zwischenstände sichtbar machen: Beim Fehlersuchen ist Compose das Fenster in den Flow. Ein Compose mit dem fraglichen Wert zeigt im Ausführungsverlauf exakt, was an dieser Stelle ankam.
  • Daten zusammenbauen: Texte, JSON-Objekte oder HTML für eine E-Mail setzen Sie im Compose aus dynamischen Inhalten zusammen, sauber getrennt vom Versand-Schritt.
  • Konstanten pflegen: Ein Compose am Flow-Anfang mit Empfängerliste oder Schwellenwert macht spätere Anpassungen zum Ein-Klick-Job.

Wie sieht ein Compose-Schritt in der Codeansicht aus?

In der zugrunde liegenden Workflow-Definition ist ein Compose ein Objekt mit dem Typ Compose und dem Feld inputs. Das folgende Beispiel zeigt drei Schritte: eine Konstante, ein berechnetes Datum und ein daraus zusammengesetztes Objekt.

1{
2 "Verteiler": {
3 "type": "Compose",
4 "inputs": [
5 "einkauf@example.com",
6 "buchhaltung@example.com"
7 ],
8 "runAfter": {}
9 },
10 "Stichtag": {
11 "type": "Compose",
12 "inputs": "@formatDateTime(utcNow(), 'dd.MM.yyyy')",
13 "runAfter": {
14 "Verteiler": [ "Succeeded" ]
15 }
16 },
17 "Meldung": {
18 "type": "Compose",
19 "inputs": {
20 "an": "@outputs('Verteiler')",
21 "betreff": "@concat('Freigabe fällig am ', outputs('Stichtag'))"
22 },
23 "runAfter": {
24 "Stichtag": [ "Succeeded" ]
25 }
26 }
27}

Zwei Regeln stecken darin. Ein String, der mit @ beginnt, wird als Ausdruck ausgewertet. Innerhalb eines Ausdrucks brauchen verschachtelte Funktionen wie outputs() kein weiteres @.

Wie greifen Sie auf die Ausgabe zu?

Sie greifen über die Funktion outputs() mit dem Schrittnamen zu, im Designer alternativ über den dynamischen Inhalt „Ausgaben" des Schritts. Die folgenden Ausdrücke lassen sich direkt in ein Formelfeld kopieren.

1outputs('Stichtag')
2outputs('Meldung')?['betreff']
3join(outputs('Verteiler'), ';')

Wichtig ist der Schrittname. In der Definition tragen Aktionen Unterstriche statt Leerzeichen. Ein Schritt namens „Offene Freigaben" heißt im Ausdruck deshalb outputs('Offene_Freigaben').

Das Fragezeichen in der zweiten Zeile ist der Null-Ignorieren-Operator. Fehlt die Eigenschaft betreff, liefert der Ausdruck null, statt den Lauf mit einem Fehler abzubrechen.

Benennen Sie Compose-Schritte deshalb sofort um. Aus „Verfassen 7" wird „Verteiler", und der Flow bleibt auch in einem Jahr lesbar. Wie Sie mit solchen Bausteinen Schritt für Schritt zum ersten sauberen Flow kommen, zeigt unsere Power-Automate-Beratung. Für den verwandten Dauerbrenner der deutschen Oberfläche lohnt der Blick auf „Apply to each" auf Deutsch erklärt.

„Verfassen" oder Variable: was ist der Unterschied?

Der Unterschied ist die Veränderbarkeit: Ein Compose steht nach seinem Schritt fest, eine Variable lässt sich im Flow-Verlauf ändern.

Kriterium | Verfassen (Compose) | Variable

Kriterium: Wert später änderbar · Verfassen (Compose): nein · Variable: ja, über „Variable festlegen"

Kriterium: Eigener Initialisierungsschritt nötig · Verfassen (Compose): nein · Variable: ja, „Variable initialisieren"

Kriterium: Erlaubte Position im Flow · Verfassen (Compose): überall, auch in Schleife und Bedingung · Variable: nur auf oberster Flow-Ebene

Kriterium: Zugriff in Formeln · Verfassen (Compose): outputs('Schrittname') · Variable: variables('Name')

Kriterium: In paralleler Schleife · Verfassen (Compose): Ausgabe entsteht je Iteration und wird dort gelesen · Variable: alle Iterationen teilen dieselbe Variable

Kriterium: Zählt auf das Aktionskontingent · Verfassen (Compose): ja, ein Schritt · Variable: ja, je Initialisieren und je Festlegen

Die Faustregel: Wer einen Wert nur festhalten oder berechnen will, nimmt Compose. Wer einen Wert unterwegs verändern muss, braucht eine Variable.

Microsoft nennt Compose ausdrücklich die leichtere Wahl für Zwischenergebnisse, weil der Schritt keine Deklaration braucht. Variablen sind für Zähler und für Zustand über mehrere Schritte hinweg gedacht.

Welcher Datenvorgang passt zu welchem Zweck?

Vier Datenvorgänge decken die meisten Fälle ab, und jeder hat einen klaren Zuständigkeitsbereich.

Baustein | Zweck | Typische Eingabe

Baustein: Verfassen · Zweck: einen Wert festhalten oder berechnen · Typische Eingabe: beliebiger Wert oder Ausdruck

Baustein: JSON analysieren · Zweck: einen JSON-Text in benannte Felder zerlegen · Typische Eingabe: JSON-Text plus Schema

Baustein: Auswählen · Zweck: die Form jedes Objekts in einem Array ändern · Typische Eingabe: Array plus Feldzuordnung

Baustein: Filtern · Zweck: ein Array auf passende Einträge reduzieren · Typische Eingabe: Array plus Bedingung

Typische Fehler und Ursachen

Fünf Fehler treten bei „Verfassen" besonders häufig auf, und alle haben eine dokumentierte Ursache.

1. `outputs()` findet den Schritt nicht. Ursache: Der Schrittname enthält Leerzeichen, in der Definition steht dort ein Unterstrich. Lösung: Schreiben Sie outputs('Offene_Freigaben') statt outputs('Offene Freigaben'). Quelle: Referenz zu Ausdrucksfunktionen.

2. Zugriff auf ein Compose innerhalb einer Schleife schlägt von außen fehl. Ursache: Der Schritt gehört zum Bereich der Schleife und ist außerhalb nicht adressierbar. Lösung: Sammeln Sie die Werte mit „Auswählen" vor der Schleife, oder lesen Sie die Ergebnisse mit result('Apply_to_each'). Quelle: Funktion result().

3. „Variable initialisieren" lässt sich in einer Schleife nicht anlegen. Ursache: Variablen dürfen nur auf globaler Ebene deklariert werden, nicht in Bereichen, Bedingungen oder Schleifen. Lösung: Setzen Sie die Initialisierung an den Flow-Anfang, oder nutzen Sie an dieser Stelle ein Compose. Quelle: Werte in Variablen speichern.

4. Das Aktionskontingent ist aufgebraucht, obwohl der Flow „nur" Compose nutzt. Ursache: Jede Aktion zählt als Power-Platform-Anfrage, auch ein einfaches Compose. In einer Schleife zählt der Schritt einmal je Element. Lösung: Ziehen Sie unveränderliche Werte vor die Schleife und ersetzen Sie Schleifen durch „Auswählen" oder „Filtern". Quelle: Plattformgrenzen verstehen.

5. Der Lauf bricht mit „Unable to process template language expressions" ab. Ursache: Ein Ausdruck greift auf eine Eigenschaft zu, die im Objekt fehlt oder null ist. Lösung: Setzen Sie den Null-Ignorieren-Operator davor, etwa outputs('Meldung')?['betreff']. Quelle: Schema der Workflow-Definitionssprache.

Häufige Fragen zu „Verfassen"

Warum heißt Compose auf Deutsch „Verfassen"?

Die deutsche Oberfläche übersetzt die englischen Aktionsnamen wörtlich, aus Compose wurde „Verfassen". Gemeint ist das Zusammenstellen eines Wertes, nicht das Schreiben von Text. Suchen Sie bei Problemen immer auch nach dem englischen Begriff Compose, die meisten Anleitungen im Netz verwenden ihn.

Kann „Verfassen" mehrere Werte gleichzeitig speichern?

Ja. Ein Compose nimmt ein komplettes Objekt oder Array auf, etwa ein selbstgebautes JSON mit mehreren Feldern. Auf einzelne Teile greifen Sie per Formel zu, zum Beispiel mit outputs('Meldung')?['betreff']. Für strukturierte Daten aus fremden Quellen ist die Kombination aus Compose und „JSON analysieren" das übliche Muster.

Verlangsamen viele Compose-Schritte meinen Flow?

Praktisch nicht. Compose gehört zu den leichtesten Aktionen und braucht keine Deklaration. Zu bedenken ist das Aktionskontingent: Auch ein Compose zählt als Aktion, in großen Schleifen summiert sich das. Setzen Sie den Baustein innerhalb von Schleifen also nur dort ein, wo Sie ihn wirklich brauchen.

Simon Glowik, Gründer von NordFlux
Über den Autor

Gründer von NordFlux. Sieben Jahre Erfahrung von Web und SEO bis zur Automatisierung im Konzern-Maßstab, heute pragmatisch für den Mittelstand und mit deutscher Datenhoheit.

Zertifizierungen

  • Microsoft zertifiziert — PL-900 und AZ-900
  • UiPath zertifiziert — Automation Developer Associate
Alle Beiträge
Weiterlesen

Verwandte Anleitungen

Kostenlose Erstanalyse

Verfassen oder Variable: Ihr Flow wird schnell unübersichtlich?

Der Compose-Baustein sieht simpel aus, doch wer ihn mit Variablen verwechselt, baut Flows, die bei jeder Änderung schwerer zu warten sind. NordFlux strukturiert Ihre Flows von Anfang an so, dass Zwischenschritte nachvollziehbar bleiben und spätere Anpassungen kein Risiko sind. Im ersten Gespräch schauen wir uns Ihre bestehenden Flows auf Wartbarkeit an.

Power Automate Beratung

  • Sauberer Aufbau mit Compose und Variablen dort, wo es Sinn ergibt
  • Review bestehender Flows auf Nachvollziehbarkeit und Wartbarkeit
  • Übergabe mit Dokumentation, die auch Kollegen ohne Ihr Wissen verstehen