Zum Inhalt springen

Ein Szenario aufbauen

Die Zeichenfläche in der Mitte, die Hinzufügen-Palette und der Inspektor drumherum. Die Bausteine werden mit der Maus verschoben, die Ansicht wird verschoben und gezoomt.

Der Szenario-Editor mit geöffneter Hinzufügen-Palette: die gängigen Bausteine oben, dann die Kategorien Hinzufügen, Listen, Loops, Timer, Mathe, Algorithmik, Datenformate, Kodierung, UX

Aus der Palette, gegliedert nach Kategorien: Steuerung, Komposition (Anfragen und Verbindungen), Listen, Schleifen, Zeit, Mathematik, Algorithmik, Datenformate, Kodierung, Oberfläche, Werkzeuge.

Eine mit einer Anfrage verknüpfte Aktion (HTTP-Anfrage, SOAP-Anfrage, alle Verbindungsaktionen) verlangt, die Projektanfrage zu benennen, die sie steuert.

Eine Anfrage in einer Aktion zu benennen erzeugt eine feste Verknüpfung: Die Aktion referenziert die Anfrage über ihren Identifikator, nicht über eine Kopie. Daraus folgt:

  • die Anfrage bleibt gemeinsam genutzt — sie zu ändern (URL, Header, Body) ändert bei ihrer nächsten Ausführung das, was alle Szenarien spielen, die sie verwenden;
  • die Verknüpfung übersteht das Umbenennen oder Verschieben der Anfrage im Baum: Sie beruht weder auf dem Namen noch auf dem Pfad;
  • von der Anfrage aus bietet die smartbar eine Schaltfläche „In Szenarien verwendet“ — sie listet die Szenarien auf, die sie aufrufen, und ermöglicht das Springen dorthin. Das ist der Reflex, den man haben sollte, bevor man eine gemeinsam genutzte Anfrage ändert;
  • eine fehlende Anfrage (gelöscht, oder beim Öffnen des Projekts nicht vorhanden) lässt die Validierung des Szenarios scheitern: Die Play-Schaltfläche bleibt gesperrt, und der fehlerhafte Baustein wird markiert — nie ein still kaputtes Szenario.

Um dieselbe Anfrage abzuspielen, ohne ihre gespeicherte Version anzufassen, ändern Sie sie nicht: Verwenden Sie die Overrides (Schnelleinstellung, Aktions-Overrides, Verbindung), beschrieben unter Eine Anfrage überschreiben.

Jeder Baustein hat seine Felder, die direkt am Baustein oder im Inspektor eingegeben werden. Die Felder akzeptieren typisierte Werte — Zeichenkette, Zahl, Boolean, Datum, Handlebars-Ausdruck, Variable, benutzerdefinierte Liste, Secret … — siehe Variablen und Umgebungen.

Ctrl+Space löst die Autovervollständigung für Variablen und Helper in den Feldern aus, die sie unterstützen.

Ziehen Sie von einem Ausgangsport zu einem Eingangsport.

Zwei Regeln, die Sie kennen sollten:

  1. Ein Eingangsport akzeptiert nur eine einzige Verbindung — außer dem Port in, der beliebig viele akzeptiert und dann als Barriere fungiert.
  2. Ein reiner Signal-Ausgang kann keinen reinen Wert-Eingang speisen. Alles andere ist erlaubt: Ein Ausgang, der einen Wert trägt, dient auch als Auslöser.

Details: Ports und Verbindungen.

Eine Verbindung kann einen Selektor tragen: einen auf den durchlaufenden Wert angewendeten Pfad.

data.items[0].id
body['user-id']
status

Das erspart es, zwischen jedem Aufruf und seinem Konsumenten einen Transformationsbaustein einzuschieben. Der Selektor wird bei der Erstellung der Verbindung oder später eingestellt; ihn zu leeren entfernt ihn.

Eine mit einer Anfrage verknüpfte Aktion kann diese ändern, ohne die Anfrage selbst anzufassen. Vier Schichten, in dieser Reihenfolge:

  1. die Anfrage, so wie sie gespeichert ist;
  2. eine auf der Aktion benannte Schnelleinstellung (quick config) — so wird eine gespeicherte Variante einer Anfrage direkt in einem Szenario wiederverwendet, ohne sie erneut einzugeben;
  3. die auf der Aktion eingegebenen Overrides;
  4. der über eine Verbindung am Override-Port ankommende Wert.

Das ist der saubere Weg, um denselben Aufruf mit drei Datensätzen erneut abzuspielen.

Das Kontextmenü eines Bausteins bietet „Bei jedem empfangenen Ereignis erneut auslösen“. Aktiviert, verwandelt die Option alle verdrahteten Eingänge in nicht blockierende „Oder“-Tore: Der Baustein wird bei jedem an einem beliebigen Port empfangenen Wert erneut ausgelöst, statt zu warten, bis alle vorliegen.

Das ist unerlässlich, um einen Stream zu verarbeiten (jede MQTT-Nachricht, jedes SSE-Ereignis), und es ist auch das, was einen Vervollständigungszyklus freischaltet.

  • Ein Baustein Input / Param deklariert die Parameter des Szenarios. Sie werden beim Start geliefert, über die Kommandozeile (--param name=value), oder im interaktiven Modus zur Laufzeit abgefragt.
  • Ein Baustein Output / Return stellt dem Aufrufer ein Ergebnis bereit — nützlich, wenn das Szenario von einem anderen über die Aktion Szenario ausführen aufgerufen wird.

Restorm kann einen Graphen automatisch anordnen (Layout); die Bausteine bleiben danach von Hand verschiebbar. Ctrl+Z macht rückgängig, Ctrl+Shift+Z stellt wieder her.

Die Play-Schaltfläche ist gesperrt, solange Validierungsfehler bestehen: ungültige Verbindung, fehlende Anfrage, leeres Pflichtfeld. Fehlerhafte Bausteine werden markiert.