Przejdź do głównej zawartości

Budowanie scenariusza

Płótno w centrum, paleta dodawania i inspektor wokół niego. Bloki przesuwa się myszą, a widok można przesuwać i przybliżać.

Edytor scenariuszy z otwartą paletą dodawania: najczęstsze bloki na górze, następnie kategorie Dodaj, Listy, Loops, Czasomierz, Matematyka, Algorytmika, Formaty danych, Kodowanie, UX

Z palety, uporządkowanej według kategorii: sterowanie, kompozycja (żądania i połączenia), listy, pętle, czas, matematyka, algorytmika, formaty danych, kodowanie, interfejs, narzędzia.

Akcja powiązana z żądaniem (Żądanie HTTP, Żądanie SOAP, wszystkie akcje połączenia) wymaga wskazania żądania projektu, którym steruje.

Wskazanie żądania w akcji tworzy silne powiązanie: akcja odwołuje się do żądania przez jego identyfikator, a nie przez kopię. Wynika z tego, że:

  • żądanie pozostaje współdzielone — jego zmiana (adres URL, nagłówki, treść) zmienia to, co przy następnym wykonaniu odtworzą wszystkie scenariusze, które go używają;
  • powiązanie przetrwa zmianę nazwy lub przeniesienie żądania w drzewie: nie opiera się ani na nazwie, ani na ścieżce;
  • po stronie żądania smartbar zawiera przycisk „Użycie w scenariuszach” — wymienia scenariusze, które je wywołują, i pozwala do nich przejść. To odruch, który warto mieć przed zmianą współdzielonego żądania;
  • brakujące żądanie (usunięte albo nieobecne przy otwarciu projektu) powoduje niepowodzenie walidacji scenariusza: przycisk uruchomienia pozostaje zablokowany, a błędny blok zostaje oznaczony — nigdy nie ma scenariusza uszkodzonego w ciszy.

Aby powtórzyć to samo żądanie bez ingerencji w jego zapisaną wersję, nie należy go modyfikować: służą do tego nadpisania (szybkie ustawienie, nadpisania akcji, połączenie) opisane w sekcji Nadpisywanie żądania.

Każdy blok ma własne pola, wypełniane bezpośrednio na bloku albo w inspektorze. Pola przyjmują wartości typowane — ciąg znaków, liczbę, wartość logiczną, datę, wyrażenie Handlebars, zmienną, własną listę, sekret… — zob. Zmienne i środowiska.

Ctrl+Space wywołuje autouzupełnianie zmiennych i helperów w polach, które je obsługują.

Połączenie powstaje przez przeciągnięcie od portu wyjściowego do portu wejściowego.

Dwie reguły, które warto znać:

  1. Port wejściowy przyjmuje tylko jedno połączenie — z wyjątkiem portu in, który przyjmuje ich dowolnie wiele i działa wtedy jako bariera.
  2. Wyjście czysto sygnałowe nie może zasilić wejścia czysto wartościowego. Wszystko pozostałe jest dozwolone: wyjście przenoszące wartość służy również jako wyzwalacz.

Szczegóły: Porty i połączenia.

Połączenie może nieść selektor: ścieżkę stosowaną do przesyłanej wartości.

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

Dzięki temu nie trzeba wstawiać bloku przekształcającego między każdym wywołaniem a jego odbiorcą. Selektor ustawia się przy tworzeniu połączenia albo później; opróżnienie pola usuwa go.

Akcja powiązana z żądaniem może je zmodyfikować bez ingerencji w samo żądanie. Cztery warstwy, w tej kolejności:

  1. żądanie w postaci zapisanej;
  2. szybkie ustawienie (quick config) wskazane na akcji — w ten sposób wykorzystuje się ponownie zapisany wariant żądania wprost w scenariuszu, bez wpisywania go od nowa;
  3. nadpisania wprowadzone na akcji;
  4. wartość przychodząca przez połączenie na porcie nadpisań.

To czysty sposób na powtórzenie tego samego wywołania z trzema zestawami danych.

Menu kontekstowe bloku zawiera opcję „Powtarzaj przy każdym odebranym zdarzeniu”. Po włączeniu zamienia ona wszystkie podłączone wejścia w nieblokujące bramki „lub”: blok wyzwala się ponownie przy każdej wartości odebranej na dowolnym porcie, zamiast czekać, aż będą obecne wszystkie.

Jest to niezbędne przy przetwarzaniu strumienia (każdy komunikat MQTT, każde zdarzenie SSE), a także odblokowuje cykl domknięcia.

  • Blok Input / Param deklaruje parametry scenariusza. Dostarcza się je przy uruchomieniu, w wierszu poleceń (--param name=value) albo są wymagane w czasie wykonania w trybie interaktywnym.
  • Blok Output / Return udostępnia wynik wywołującemu — przydatne, gdy scenariusz jest wywoływany przez inny za pośrednictwem akcji Uruchom scenariusz.

Restorm potrafi automatycznie uporządkować graf (rozmieszczenie); bloki nadal można potem przesuwać ręcznie. Ctrl+Z cofa, Ctrl+Shift+Z przywraca.

Przycisk uruchomienia jest zablokowany, dopóki pozostają błędy walidacji: nieprawidłowe połączenie, brakujące żądanie, puste pole obowiązkowe. Błędne bloki są oznaczane.